On Sat, 16 Dec 2017, Paul B Mahol wrote:

On 12/16/17, Marton Balint <c...@passwd.hu> wrote:


On Sat, 16 Dec 2017, Paul B Mahol wrote:

Signed-off-by: Paul B Mahol <one...@gmail.com>
---
fftools/ffplay.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index 10a917194d..f023c81575 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -1822,6 +1822,7 @@ fail:
static int configure_video_filters(AVFilterGraph *graph, VideoState *is,
const char *vfilters, AVFrame *frame)
{
    enum AVPixelFormat pix_fmts[FF_ARRAY_ELEMS(sdl_texture_format_map)];
+    enum AVColorRange color_ranges[2] = { AVCOL_RANGE_MPEG,
AVCOL_RANGE_UNSPECIFIED };
    char sws_flags_str[512] = "";
    char buffersrc_args[256];
    int ret;
@@ -1876,7 +1877,10 @@ static int configure_video_filters(AVFilterGraph
*graph, VideoState *is, const c
    if ((ret = av_opt_set_int_list(filt_out, "pix_fmts", pix_fmts,
AV_PIX_FMT_NONE, AV_OPT_SEARCH_CHILDREN)) < 0)
        goto fail;

-    last_filter = filt_out;
+    if ((ret = av_opt_set_int_list(filt_out, "color_ranges",
color_ranges, AVCOL_RANGE_UNSPECIFIED, AV_OPT_SEARCH_CHILDREN)) < 0)
+        goto fail;
+
+     last_filter = filt_out;

I am afraid this wont work, because ffplay supports full range RGB as
well. Unless there is a way to specify allowed pixel format / color range
combinations (which is the only way to mimic existing behaviour as far as
I see), you have to use hacks like configure the filter graph once without
a range restriction, and if you get an invalid pixel format / color range
combination, you have to configure the graph again with the supported
color range list for that pixel format, hoping that the pixel format will
remain the same.

If you actually checked output, it will appear same as before patchset.

If this works, that means color_ranges are ignored for RGB. We can do that, but please document every color_range field explicitly that they only affect YUV, nothing else.

Also there is a stray whitespace addition in the last line:
" last_filter = filt_out"

Regards,
Marton
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to