Today, we have a colour range property on decoders and encoders. The decoder sets the property on itself to reflect what it is decoding, and the user sets it on the encoder to reflect what is being encoded.
However, we don't support a way to pass it through filter chains and 'ffmpeg' does not make any attempt to set it on the encoder. This set of changes introduces a way to do this, by defining a new filter link property, and allowing it to be set on a buffersrc and read back from a buffersink. We then extend the various relevant filters to set the property when they manipulate the colour range, and finally, we get 'ffmpeg' to get and set the range appropriately. After this change, it is now possible to, for example. transcode full range mjpeg to h.264, correctly, either by retaining the range, or by compressing the range using a filter. Philip Langdale (4): avutil/opt: Add option type for Colour Range avfilter: Add support for colour range as a link parameter avfilter: Set output link colour range where appropriate fftools/ffmpeg: Support passing colour range from decoder to encoder fftools/ffmpeg.c | 2 ++ fftools/ffmpeg_filter.c | 1 + libavfilter/avf_showcqt.c | 1 + libavfilter/avf_showspectrum.c | 1 + libavfilter/avfilter.c | 2 ++ libavfilter/avfilter.h | 1 + libavfilter/buffersink.c | 1 + libavfilter/buffersink.h | 1 + libavfilter/buffersrc.c | 10 ++++++++-- libavfilter/buffersrc.h | 5 +++++ libavfilter/vf_colorspace.c | 4 ++++ libavfilter/vf_scale.c | 8 +++++++- libavfilter/vf_setparams.c | 11 +++++++++++ libavfilter/vf_waveform.c | 1 + libavfilter/vf_zscale.c | 21 +++++++++++++++++++-- libavutil/opt.c | 41 ++++++++++++++++++++++++++++++++++++++++- libavutil/opt.h | 3 +++ 17 files changed, 108 insertions(+), 6 deletions(-) -- 2.14.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel