diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2018-07-25 16:44:50 +0200 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2018-08-06 18:35:52 +0200 |
commit | e467179cfbe270c4b59b10f859b6925668d59583 (patch) | |
tree | 0966e8ab8d44bdbe65e15dc83f6ce1361d587f5b /libavfilter/vf_tonemap_opencl.c | |
parent | ce7ca726b2cae0eeb4a4e688c5c7d0ea05776832 (diff) | |
download | ffmpeg-e467179cfbe270c4b59b10f859b6925668d59583.tar.gz |
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.c | 28 |
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; |