diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2018-07-25 17:02:45 +0200 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2018-08-06 18:35:52 +0200 |
commit | 572ef567a5288d36b8bc2531309710a0e891d35c (patch) | |
tree | d0aa0e8610c475a533cdc606f07bd6a1f717897c /libavfilter/colorspace.c | |
parent | e467179cfbe270c4b59b10f859b6925668d59583 (diff) |
vf_tonemap_opencl: Move update_metadata() to a shared file
Diffstat (limited to 'libavfilter/colorspace.c')
-rw-r--r-- | libavfilter/colorspace.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libavfilter/colorspace.c b/libavfilter/colorspace.c index d6f6055401..c6682216d6 100644 --- a/libavfilter/colorspace.c +++ b/libavfilter/colorspace.c @@ -118,3 +118,20 @@ double ff_determine_signal_peak(AVFrame *in) return peak; } + +void ff_update_hdr_metadata(AVFrame *in, double peak) +{ + AVFrameSideData *sd = av_frame_get_side_data(in, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL); + + if (sd) { + AVContentLightMetadata *clm = (AVContentLightMetadata *)sd->data; + clm->MaxCLL = (unsigned)(peak * REFERENCE_WHITE); + } + + sd = av_frame_get_side_data(in, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA); + if (sd) { + AVMasteringDisplayMetadata *metadata = (AVMasteringDisplayMetadata *)sd->data; + if (metadata->has_luminance) + metadata->max_luminance = av_d2q(peak * REFERENCE_WHITE, 10000); + } +} |