From 3cdcd29150341dd26a8c61772f8473ab20a85fdd Mon Sep 17 00:00:00 2001 From: Good Guy Date: Fri, 29 Dec 2023 15:50:43 -0700 Subject: [PATCH] Credit Andrea/Andrew - allow for out-of-range values for HDR video; so no clipping using RGBA-float and X11 driver in Histogram and Color3way plugins --- cinelerra-5.1/cinelerra/overlayframe.h | 3 ++- cinelerra-5.1/ffmpeg/video/av1_vaapi.webm | 8 ++------ cinelerra-5.1/plugins/color3way/color3way.C | 4 ++-- cinelerra-5.1/plugins/histogram/histogram.C | 2 +- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/cinelerra-5.1/cinelerra/overlayframe.h b/cinelerra-5.1/cinelerra/overlayframe.h index 13c2e4bd..4775e8df 100644 --- a/cinelerra-5.1/cinelerra/overlayframe.h +++ b/cinelerra-5.1/cinelerra/overlayframe.h @@ -32,6 +32,7 @@ #include #include #include +#include #define DIRECT_COPY 0 #define BILINEAR 1 @@ -237,7 +238,7 @@ static inline int64_t aclip(int64_t v, int mx) { return v < 0 ? 0 : v > mx ? mx : v; } static inline float aclip(float v, float mx) { - return v < 0 ? 0 : v > mx ? mx : v; + return v < -FLT_MAX+1 ? -FLT_MAX : v > FLT_MAX-1 ? FLT_MAX : v; } static inline float aclip(float v, int mx) { return v < 0 ? 0 : v > mx ? mx : v; diff --git a/cinelerra-5.1/ffmpeg/video/av1_vaapi.webm b/cinelerra-5.1/ffmpeg/video/av1_vaapi.webm index cc80552f..b274e783 100644 --- a/cinelerra-5.1/ffmpeg/video/av1_vaapi.webm +++ b/cinelerra-5.1/ffmpeg/video/av1_vaapi.webm @@ -1,8 +1,4 @@ webm av1_vaapi -# Nvidia 4000+ series (better nvenc/vdpau) -# AMD Radeon 7000+ series -# Intel Xe2, Arc+ series -cin_hw_dev=vaapi -g=30 -# profile=high #(main, professional) +g=300 +#profile= rc_mode=QVBR diff --git a/cinelerra-5.1/plugins/color3way/color3way.C b/cinelerra-5.1/plugins/color3way/color3way.C index 7685257b..417b7451 100644 --- a/cinelerra-5.1/plugins/color3way/color3way.C +++ b/cinelerra-5.1/plugins/color3way/color3way.C @@ -278,10 +278,10 @@ void Color3WayUnit::process_package(LoadPackage *package) PROCESS(unsigned char, 0xff, 4, 1) break; case BC_RGB_FLOAT: - PROCESS(float, 1.0, 3, 0) + PROCESS(float, 100.0, 3, 0) break; case BC_RGBA_FLOAT: - PROCESS(float, 1.0, 4, 0) + PROCESS(float, 100.0, 4, 0) break; } } diff --git a/cinelerra-5.1/plugins/histogram/histogram.C b/cinelerra-5.1/plugins/histogram/histogram.C index c78c3c7c..4b55f429 100644 --- a/cinelerra-5.1/plugins/histogram/histogram.C +++ b/cinelerra-5.1/plugins/histogram/histogram.C @@ -234,7 +234,7 @@ float HistogramMain::calculate_level(float input, int mode, int use_value) if( !EQUIV(config.gamma[mode], 0) ) { output = pow(output, 1.0 / config.gamma[mode]); - CLAMP(output, 0, 1.0); + CLAMP(output, 0, 100.0); } // Apply value curve -- 2.26.2