diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2018-07-25 17:21:04 +0200 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2018-08-06 18:34:49 +0200 |
commit | ce7ca726b2cae0eeb4a4e688c5c7d0ea05776832 (patch) | |
tree | fb24b0fd3ed7fdf892a55f3367d4d5e8d6867b62 | |
parent | 076b19660e7c9466d2d78ff9ae66b97ff2b6aa1e (diff) | |
download | ffmpeg-ce7ca726b2cae0eeb4a4e688c5c7d0ea05776832.tar.gz |
vf_tonemap: Fix logic for detecting the maximum peak of untagged sources
When there is no metadata attached to a frame, take into account both
the PQ and HLG transfers, and change the HLG default value to 10:
the value of 12 is the maximum range in scene referred light, but
the reference OOTF maps this from 0 to 1000 cd/m² on the ideal HLG
monitor.
This matches what vf_tonemap_opencl does.
-rw-r--r-- | libavfilter/vf_tonemap.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libavfilter/vf_tonemap.c b/libavfilter/vf_tonemap.c index 10308bdb16..10fd7ea016 100644 --- a/libavfilter/vf_tonemap.c +++ b/libavfilter/vf_tonemap.c @@ -131,10 +131,10 @@ static double determine_signal_peak(AVFrame *in) peak = av_q2d(metadata->max_luminance) / REFERENCE_WHITE; } - /* smpte2084 needs the side data above to work correctly - * if missing, assume that the original transfer was arib-std-b67 */ + // For untagged source, use peak of 10000 if SMPTE ST.2084 + // otherwise assume HLG with reference display peak 1000. if (!peak) - peak = 12; + peak = in->color_trc == AVCOL_TRC_SMPTE2084 ? 100.0f : 10.0f; return peak; } |