On 28.05.2018 09:30, Xiang, Haihao wrote:
On Sat, 2018-05-26 at 17:29 +0100, Mark Thompson wrote:
On 25/05/18 07:57, Tobias Rapp wrote:
On 25.05.2018 07:58, Xiang, Haihao wrote:
On Thu, 2018-05-24 at 11:15 +0100, Mark Thompson wrote:
For example:
ffmpeg -i bt709_input.mkv -vf colorspace=bt2020 bt2020_output.mkv
will have the output file marked as BT.709 after this patch, where
previously
it was "unspecified". (Explicitly setting -color_primaries/-color_trc/-
colorspace on the output works in both cases.)
I agree with you it's not worse than before as we don't get the expected
result
in both cases.
Not quite: When a file says "I don't know this property value" you have a
chance to lookup the value somewhere else or use a default. When it says "I
know the value" and gives a wrong value, you completely loose trust.
Right, that is a compelling argument. I agree with you, so I definitely won't
apply the patch in this form.
According the comment in avcodec.h, the color properties in AVCodecContext
should be set by user for encoding. I think ffmpeg is the user in the case
below. Where are the color properties set if we don't set the default values in
init_output_stream_encode()?
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format
vaapi -i input-with-hdr.mkv -c:v hevc_vaapi -profile:v main10 output.h265
Setting color properties in init_output_stream_encode() basically looks
OK, but the question "when" seems more important than "where". It should
be called after some output frame is available, and use that to
initialize the encoder. Currently the current AVFrame is not available
in init_output_stream_encode(), only the buffersink properties.
Hopefully somebody with more knowledge about FFmpeg infrastructure will
make a recommendation on how this should be solved: By adding color
properties and other frame data to the buffersink interface? Or by
making the current/last frame available in init_output_stream_encode()?
Or ...?
It doesn't need to be auto-negotiated like in the mentioned patch series
for color_range, it just needs to be forwarded properly from filter
graph output to the encoder.
Regards,
Tobias
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel