This change turns out to be a subset of a much bigger change that Paul put together back in December and which didn't get enough review coverage for him to comfortably push. I didn't know about that, so I redid a bunch of stuff, but the end result is what I think is a logical subset of the complete YUVJ purge which can be reviewed and pushed on its own.
Unlike Paul's complete set of changes, this does not include any replacement of YUVJ code with color_range code and doesn't include any range negotiation. It is strictly just passing the range from one end to the other, assuming a range value is set by some means. This is more useful than you may think as many demuxers and decoders set the range, and many encoders and muxers respect the range. 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 correctly pass the colour range through a pipeline so that it it influences encoder behaviour, and is recorded in the container, where relevant. Philip Langdale (3): 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 doc/APIchanges | 5 +++++ 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 | 2 ++ libavfilter/buffersink.c | 1 + libavfilter/buffersink.h | 1 + libavfilter/buffersrc.c | 23 +++++++++++++++++++++-- libavfilter/buffersrc.h | 5 +++++ libavfilter/version.h | 4 ++-- 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 +++++++++++++++++++-- libavfilter/video.c | 1 + 18 files changed, 87 insertions(+), 7 deletions(-) -- 2.14.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel