summaryrefslogtreecommitdiff
path: root/libavfilter/vf_tonemap_opencl.c
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2018-07-25 16:44:50 +0200
committerVittorio Giovara <vittorio.giovara@gmail.com>2018-08-06 18:35:52 +0200
commite467179cfbe270c4b59b10f859b6925668d59583 (patch)
tree0966e8ab8d44bdbe65e15dc83f6ce1361d587f5b /libavfilter/vf_tonemap_opencl.c
parentce7ca726b2cae0eeb4a4e688c5c7d0ea05776832 (diff)
vf_tonemap[_opencl]: Move determine_signal_peak() to a shared file
The two functions are identical. Use the shared LumaCoeffients type too.
Diffstat (limited to 'libavfilter/vf_tonemap_opencl.c')
-rw-r--r--libavfilter/vf_tonemap_opencl.c28
1 files changed, 1 insertions, 27 deletions
diff --git a/libavfilter/vf_tonemap_opencl.c b/libavfilter/vf_tonemap_opencl.c
index 241f95e6c3..7455ebb9fb 100644
--- a/libavfilter/vf_tonemap_opencl.c
+++ b/libavfilter/vf_tonemap_opencl.c
@@ -40,7 +40,6 @@
// - more format support
#define DETECTION_FRAMES 63
-#define REFERENCE_WHITE 100.0f
enum TonemapAlgorithm {
TONEMAP_NONE,
@@ -343,31 +342,6 @@ fail:
return err;
}
-static double determine_signal_peak(AVFrame *in)
-{
- AVFrameSideData *sd = av_frame_get_side_data(in, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL);
- double peak = 0;
-
- if (sd) {
- AVContentLightMetadata *clm = (AVContentLightMetadata *)sd->data;
- peak = clm->MaxCLL / REFERENCE_WHITE;
- }
-
- sd = av_frame_get_side_data(in, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA);
- if (!peak && sd) {
- AVMasteringDisplayMetadata *metadata = (AVMasteringDisplayMetadata *)sd->data;
- if (metadata->has_luminance)
- peak = av_q2d(metadata->max_luminance) / REFERENCE_WHITE;
- }
-
- // For untagged source, use peak of 10000 if SMPTE ST.2084
- // otherwise assume HLG with reference display peak 1000.
- if (!peak)
- peak = in->color_trc == AVCOL_TRC_SMPTE2084 ? 100.0f : 10.0f;
-
- return peak;
-}
-
static void update_metadata(AVFrame *in, double peak) {
AVFrameSideData *sd = av_frame_get_side_data(in, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL);
@@ -415,7 +389,7 @@ static int tonemap_opencl_filter_frame(AVFilterLink *inlink, AVFrame *input)
goto fail;
if (!peak)
- peak = determine_signal_peak(input);
+ peak = ff_determine_signal_peak(input);
if (ctx->trc != -1)
output->color_trc = ctx->trc;