From patchwork Fri Dec 8 03:28:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Birkbeck X-Patchwork-Id: 6594 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.94 with SMTP id m30csp40822jah; Thu, 7 Dec 2017 19:35:05 -0800 (PST) X-Google-Smtp-Source: AGs4zMYZ5dPDQ9SJeJQ7aF71/CnHrP2KTqFgugKWHuzEUALOahlHp0bnPEKQgbPG9pr0NiKQ0Kyt X-Received: by 10.223.201.139 with SMTP id f11mr26387397wrh.283.1512704105855; Thu, 07 Dec 2017 19:35:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512704105; cv=none; d=google.com; s=arc-20160816; b=hwfVoJVdMfaX24wzeFEQMr0Bm1hMH8jkkqOw7ZtcvXullkMVM2i6OqPWpNS12Q+hgf FYOEn/+otyuXDDJR47ZuOXeKVQkNgtmPQ1rZTKug4dp3OBHzoCn1PV86i27JUrS53Ryc m9+4amOzH2Z7AjXp32nzDGuuNpC8X4IsETHYrn6DxChToWCPKIgdHiM/1cV7ACKhEP6c Jl0L7rfWUe8g8zFMaR6V15rBwV8wr6O69hZ0krmCe+Rf7H8dYiuEM4kBLLQRNQEBrByf Z2Veyn/oAEQGSwPwCLmqA4OBRFxwuDZaIwm6p4cj6yT9X3HuceXiUjHy8jwQZUA5dx4h s6XA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :message-id:date:from:references:in-reply-to:mime-version :dkim-signature:delivered-to:arc-authentication-results; bh=8YMrlELfup8ZATVSkkMaTgdoMvE66T5L7YCIwQaz9pc=; b=Ov4FePOjMiFFw5GzRkeI18YfJlQSuJRYg7rLh9XaTIk61Rx/lnwxbULltdPIY2FssK WqyjRLHS18K3gixsU4YK8NloZPshRpbfhpcs4upSfnt5wQxwepS7VWQYAuS21ctCk3VE 9Vd1sOskZv0AQ6+nYcTbqyuH3YhTc+/kFOw7sBo0MlnMDwWnm58t3G8YZga/clgvmDtr QF1oLI5tt9FudDWyEFl5nyt+qqUw2zyLZvGY7OdnC+LmZRGCXO2loC0FJC0vZquTxLXg XM/M0BWe29KO6SBhSbZuenktUywHRzMTsWvQThayUjWvThnYe9d4aLEi2/M5GZrubv5d etqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=AyJNCpxE; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f57si5226871wra.422.2017.12.07.19.35.05; Thu, 07 Dec 2017 19:35:05 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=AyJNCpxE; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7642B68A3F8; Fri, 8 Dec 2017 05:34:58 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ua0-f176.google.com (mail-ua0-f176.google.com [209.85.217.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 16C9768A144 for ; Fri, 8 Dec 2017 05:34:51 +0200 (EET) Received: by mail-ua0-f176.google.com with SMTP id p33so6733465uag.9 for ; Thu, 07 Dec 2017 19:34:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=Ic1nWW8ZMh2IOyNyo1N7avxNItAe4ZV0SydT6FnLGS4=; b=AyJNCpxE88EoGCQnHk5S4p0VpRKz6Fblv1WZhreI8AaUaXr3lzF3WB2mbOKiz9HCtq /SzVtebJejin+YeFIYXk0coD6mE+S+wpJNEARm49L615diROPm5/8l2M2hTq8IFkT3+m Inkj2OZLM+IMbAOgjK1V71+gFvWYHA/CyOveWdUKHj06Lwh13iCvSn4hlIWxCdNQbtCq m8NaozI8LEATkK1sF6q3w4AwOsczjnu0Cd0UXcFQp6DFZMvNxUNSiTtQOFa8ZPRT7Yss 1c+t6h63/1ecQ4za2uihCyNU7OHT9/wZtsEr8Gn4jAKMYm0UCqYWziNhl0IrDE2cRPBh ATwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=Ic1nWW8ZMh2IOyNyo1N7avxNItAe4ZV0SydT6FnLGS4=; b=HVwyy3hEsG5S8nT/Lrf5Mn7Tfog/bbqIMjq5J3Ap9guXYKxIh7lOdqG94BGGPfibmF yxdOi5Dcv/iMW8Z9baGTveDxlciH52dckI5KS6i6sswQzWtuC1wxdF1n1KCKDnB/+g/l SQOgWw/2+aXEqapO1k0AKh9PPHtA+24oRc9SHJ9/0TVl9c8Tlb8o6v+oITsuPHGO3wik xKEx6YW7/vnQ3VaW+uEB57cSRrrooHbrieQ2tBU77fzOklG21XzoQ8r49tOutuv2EVmj 3wxXhWCsRyI5q6QOU/VpNZQWu/xDTUskfq6kJeuLJ9pQjXvSdQFz2vrgfF2m+RZD6QFt coPw== X-Gm-Message-State: AKGB3mKcMP+6hZUs+6IqlXciI3IZ3+AWUcL/NGZkTlffHo2mNUUVjz0H 7D8/joufL7FJqCI+bjlSnilMWuoDnUpjZwKGzFNbQw== X-Received: by 10.176.80.188 with SMTP id c57mr16289259uaa.162.1512703736355; Thu, 07 Dec 2017 19:28:56 -0800 (PST) MIME-Version: 1.0 Received: by 10.176.30.77 with HTTP; Thu, 7 Dec 2017 19:28:55 -0800 (PST) In-Reply-To: References: <20171129011437.4125-1-neil.birkbeck@gmail.com> <20171130031921.GS4636@nb4> <20171130175233.GA4636@nb4> From: Neil Birkbeck Date: Thu, 7 Dec 2017 19:28:55 -0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.20 Subject: Re: [FFmpeg-devel] [PATCH] swscale/utils: Remove bpc==8 gating init_range_convert X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" On Sat, Dec 2, 2017 at 5:25 PM, Carl Eugen Hoyos wrote: > 2017-12-01 20:08 GMT+01:00 Neil Birkbeck : > > On Thu, Nov 30, 2017 at 9:52 AM, Michael Niedermayer wrote: > > >> > For that sample, I feel like it may be incorrectly tagged as pc/full. > >> > >> is it stored in the file or taken from: > >> ff_generate_avci_extradata() > >> maybe theres a bug in the AVCIntra handling > > > > It seems avci100_1080i_extradata may be the one that is signalling full > > range for the AVCI100.mov sample. I tested changing the range flag: > > - 0x3c, 0x60, 0x20, 0x20, 0x28, 0x00, 0x00, 0x03, > > + 0x3c, 0x20, 0x20, 0x20, 0x28, 0x00, 0x00, 0x03, > > If you believe it is safe (or a bug), please change it. > I've looked at a few avci-100 files that I could find, and the ones I came across had data that appeared to be tv range. Unless there is some spec that says it should be pc/full, I'd say tv (or unspecified) may be a better default. Let me look into the other avci modes to confirm. I also attached an updated patch with fate tests. In it, for each configuration {8-bit/10-bit, scaled/unscaled}, the checksum should be the same when in_range is set explicitly (or implicitly). And output explicit to tv or unset is is the same. There is still the issue of whether having out_range be "unspecified" should give "tv" range (that is what happens for 8-bit at the moment). Samples are here: https://github.com/nbirkbeck/ffmpeg-test-samples/tree/master/color-range/data In the patch, I'd put them in ffmpeg-synthetic/color. From caa75c6d5d323415647c93d1c7c1d5326f8cf825 Mon Sep 17 00:00:00 2001 From: Neil Birkbeck Date: Tue, 28 Nov 2017 15:56:12 -0800 Subject: [PATCH] swscale/utils: Remove bpc==8 gating init_range_convert On higher bit depth YUV inputs with range metadata signaled as PC/full levels, this change makes the results of scaling without explicitly setting the input range on vf_scale as if it were explicitly set. For example, the results with implicit color settings from the frame: -vf scale=-1:-1:out_range=mpeg,format=yuv420p Are the same as the correct result when set explicitly in the scaler: -vf scale=-1:-1:in_range=jpeg:out_range=mpeg,format=yuv420p The results are consistent with a similar yuv420p(pc) test input (e.g., implicit and explicit setting of in_range on vf_scale both work). Fate passes without the checks (or with a more specific check for >= 8). If this seems sane, I'll write some tests. I tried to reproduce the old results from before and after the commit that I think the previous comment was referring to 4959a4fcf76e7c595dbb23c4e3bf59abf2e60ea4 but failed to repro (I may be testing the wrong thing). Using the samples from (https://trac.ffmpeg.org/ticket/2939), without the check: ffmpeg -i /tmp/progressive.jpg -vf format=rgb24 /tmp/progressive.png is still treated as full range input (treating it as studio causes clipping in the rgb). There are still some other edge cases where range conversion doesn't work unless explicitly set (e.g., when no scale is happening) New fate samples from: https://github.com/nbirkbeck/ffmpeg-test-samples/tree/master/color-range/data Signed-off-by: Neil Birkbeck --- libswscale/utils.c | 4 +- tests/fate/filter-video.mak | 67 ++++++++++++++++++++++ .../filter-scale-yuv444p-pc-scaled-in-pc-out-tv | 10 ++++ ...filter-scale-yuv444p-pc-scaled-in-pc-out-unspec | 10 ++++ ...filter-scale-yuv444p-pc-scaled-in-unspec-out-tv | 10 ++++ ...er-scale-yuv444p-pc-scaled-in-unspec-out-unspec | 10 ++++ .../filter-scale-yuv444p-pc-unscaled-in-pc-out-tv | 10 ++++ ...lter-scale-yuv444p-pc-unscaled-in-pc-out-unspec | 10 ++++ ...lter-scale-yuv444p-pc-unscaled-in-unspec-out-tv | 10 ++++ ...-scale-yuv444p-pc-unscaled-in-unspec-out-unspec | 10 ++++ .../filter-scale-yuv444p10-pc-scaled-in-pc-out-tv | 10 ++++ ...lter-scale-yuv444p10-pc-scaled-in-pc-out-unspec | 10 ++++ ...lter-scale-yuv444p10-pc-scaled-in-unspec-out-tv | 10 ++++ ...-scale-yuv444p10-pc-scaled-in-unspec-out-unspec | 10 ++++ ...filter-scale-yuv444p10-pc-unscaled-in-pc-out-tv | 10 ++++ ...er-scale-yuv444p10-pc-unscaled-in-pc-out-unspec | 10 ++++ ...er-scale-yuv444p10-pc-unscaled-in-unspec-out-tv | 10 ++++ ...cale-yuv444p10-pc-unscaled-in-unspec-out-unspec | 10 ++++ 18 files changed, 228 insertions(+), 3 deletions(-) create mode 100644 tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-pc-out-tv create mode 100644 tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-pc-out-unspec create mode 100644 tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-unspec-out-tv create mode 100644 tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-unspec-out-unspec create mode 100644 tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-pc-out-tv create mode 100644 tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-pc-out-unspec create mode 100644 tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-unspec-out-tv create mode 100644 tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-unspec-out-unspec create mode 100644 tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-pc-out-tv create mode 100644 tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-pc-out-unspec create mode 100644 tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-unspec-out-tv create mode 100644 tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-unspec-out-unspec create mode 100644 tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-pc-out-tv create mode 100644 tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-pc-out-unspec create mode 100644 tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-unspec-out-tv create mode 100644 tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-unspec-out-unspec diff --git a/libswscale/utils.c b/libswscale/utils.c index 4df09306d3..f900e3bdef 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -883,9 +883,7 @@ int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4], c->srcRange = srcRange; c->dstRange = dstRange; - //The srcBpc check is possibly wrong but we seem to lack a definitive reference to test this - //and what we have in ticket 2939 looks better with this check - if (need_reinit && (c->srcBpc == 8 || !isYUV(c->srcFormat))) + if (need_reinit) ff_sws_init_range_convert(c); c->dstFormatBpp = av_get_bits_per_pixel(desc_dst); diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak index c19f301ff8..283be001ec 100644 --- a/tests/fate/filter-video.mak +++ b/tests/fate/filter-video.mak @@ -464,6 +464,73 @@ FATE_FILTER_VSYNTH-$(CONFIG_SCALE_FILTER) += fate-filter-scalechroma fate-filter-scalechroma: tests/data/vsynth1.yuv fate-filter-scalechroma: CMD = framecrc -flags bitexact -s 352x288 -pix_fmt yuv444p -i tests/data/vsynth1.yuv -pix_fmt yuv420p -sws_flags +bitexact -vf scale=out_v_chr_pos=33:out_h_chr_pos=151 +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p10-pc-unscaled-in-unspec-out-unspec +fate-filter-scale-yuv444p10-pc-unscaled-in-unspec-out-unspec: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 +fate-filter-scale-yuv444p10-pc-unscaled-in-unspec-out-unspec: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=-1:-1,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p10-pc-unscaled-in-unspec-out-tv +fate-filter-scale-yuv444p10-pc-unscaled-in-unspec-out-tv: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 +fate-filter-scale-yuv444p10-pc-unscaled-in-unspec-out-tv: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=-1:-1:out_range=tv,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p10-pc-unscaled-in-pc-out-unspec +fate-filter-scale-yuv444p10-pc-unscaled-in-pc-out-unspec: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 +fate-filter-scale-yuv444p10-pc-unscaled-in-pc-out-unspec: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=-1:-1:in_range=pc,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p10-pc-unscaled-in-pc-out-tv +fate-filter-scale-yuv444p10-pc-unscaled-in-pc-out-tv: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 +fate-filter-scale-yuv444p10-pc-unscaled-in-pc-out-tv: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=-1:-1:in_range=pc:out_range=tv,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p10-pc-scaled-in-unspec-out-unspec +fate-filter-scale-yuv444p10-pc-scaled-in-unspec-out-unspec: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 +fate-filter-scale-yuv444p10-pc-scaled-in-unspec-out-unspec: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=256:48,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p10-pc-scaled-in-unspec-out-tv +fate-filter-scale-yuv444p10-pc-scaled-in-unspec-out-tv: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 +fate-filter-scale-yuv444p10-pc-scaled-in-unspec-out-tv: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=256:48:out_range=tv,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p10-pc-scaled-in-pc-out-tv +fate-filter-scale-yuv444p10-pc-scaled-in-pc-out-tv: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 +fate-filter-scale-yuv444p10-pc-scaled-in-pc-out-tv: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 -sws_flags +bitexact -vf scale=256:48:in_range=pc:out_range=tv,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p10-pc-scaled-in-pc-out-unspec +fate-filter-scale-yuv444p10-pc-scaled-in-pc-out-unspec: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 +fate-filter-scale-yuv444p10-pc-scaled-in-pc-out-unspec: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p10_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=256:48:in_range=pc,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p-pc-unscaled-in-unspec-out-unspec +fate-filter-scale-yuv444p-pc-unscaled-in-unspec-out-unspec: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 +fate-filter-scale-yuv444p-pc-unscaled-in-unspec-out-unspec: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=-1:-1,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p-pc-unscaled-in-unspec-out-tv +fate-filter-scale-yuv444p-pc-unscaled-in-unspec-out-tv: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 +fate-filter-scale-yuv444p-pc-unscaled-in-unspec-out-tv: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=-1:-1:out_range=tv,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p-pc-unscaled-in-pc-out-unspec +fate-filter-scale-yuv444p-pc-unscaled-in-pc-out-unspec: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 +fate-filter-scale-yuv444p-pc-unscaled-in-pc-out-unspec: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=-1:-1:in_range=pc,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p-pc-unscaled-in-pc-out-tv +fate-filter-scale-yuv444p-pc-unscaled-in-pc-out-tv: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 +fate-filter-scale-yuv444p-pc-unscaled-in-pc-out-tv: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=-1:-1:in_range=pc:out_range=tv,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p-pc-scaled-in-unspec-out-unspec +fate-filter-scale-yuv444p-pc-scaled-in-unspec-out-unspec: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 +fate-filter-scale-yuv444p-pc-scaled-in-unspec-out-unspec: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=256:48,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p-pc-scaled-in-unspec-out-tv +fate-filter-scale-yuv444p-pc-scaled-in-unspec-out-tv: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 +fate-filter-scale-yuv444p-pc-scaled-in-unspec-out-tv: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=256:48:out_range=tv,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p-pc-scaled-in-pc-out-unspec +fate-filter-scale-yuv444p-pc-scaled-in-pc-out-unspec: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 +fate-filter-scale-yuv444p-pc-scaled-in-pc-out-unspec: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=256:48:in_range=pc,format=yuv420p + +FATE_FILTER_SCALE_RANGE += fate-filter-scale-yuv444p-pc-scaled-in-pc-out-tv +fate-filter-scale-yuv444p-pc-scaled-in-pc-out-tv: $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 +fate-filter-scale-yuv444p-pc-scaled-in-pc-out-tv: CMD = framemd5 -flags bitexact -i $(TARGET_SAMPLES)/ffmpeg-synthetic/color/color_gradient_yuv444p_pc.mp4 -flags +bitexact -sws_flags +accurate_rnd+bitexact -vf scale=256:48:in_range=pc:out_range=tv,format=yuv420p + +FATE_FILTER_VSYNTH-$(CONFIG_SCALE_FILTER) += $(FATE_FILTER_SCALE_RANGE) +fate-filter-scale-yuv444p: $(FATE_FILTER_SCALE_RANGE) + FATE_FILTER_VSYNTH-$(CONFIG_VFLIP_FILTER) += fate-filter-vflip fate-filter-vflip: CMD = video_filter "vflip" diff --git a/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-pc-out-tv b/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-pc-out-tv new file mode 100644 index 0000000000..d47a939446 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-pc-out-tv @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 256x48 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 18432, 52b748b1c1534972ce5a76bfdc2381c4 diff --git a/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-pc-out-unspec b/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-pc-out-unspec new file mode 100644 index 0000000000..d47a939446 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-pc-out-unspec @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 256x48 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 18432, 52b748b1c1534972ce5a76bfdc2381c4 diff --git a/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-unspec-out-tv b/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-unspec-out-tv new file mode 100644 index 0000000000..d47a939446 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-unspec-out-tv @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 256x48 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 18432, 52b748b1c1534972ce5a76bfdc2381c4 diff --git a/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-unspec-out-unspec b/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-unspec-out-unspec new file mode 100644 index 0000000000..d47a939446 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p-pc-scaled-in-unspec-out-unspec @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 256x48 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 18432, 52b748b1c1534972ce5a76bfdc2381c4 diff --git a/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-pc-out-tv b/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-pc-out-tv new file mode 100644 index 0000000000..96138568a4 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-pc-out-tv @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 512x96 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 73728, 79de32824aeec6331400ac1c6daed36d diff --git a/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-pc-out-unspec b/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-pc-out-unspec new file mode 100644 index 0000000000..96138568a4 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-pc-out-unspec @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 512x96 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 73728, 79de32824aeec6331400ac1c6daed36d diff --git a/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-unspec-out-tv b/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-unspec-out-tv new file mode 100644 index 0000000000..96138568a4 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-unspec-out-tv @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 512x96 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 73728, 79de32824aeec6331400ac1c6daed36d diff --git a/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-unspec-out-unspec b/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-unspec-out-unspec new file mode 100644 index 0000000000..96138568a4 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p-pc-unscaled-in-unspec-out-unspec @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 512x96 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 73728, 79de32824aeec6331400ac1c6daed36d diff --git a/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-pc-out-tv b/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-pc-out-tv new file mode 100644 index 0000000000..5645499b68 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-pc-out-tv @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 256x48 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 18432, 81a97e1446adf963e68d55131e939c6f diff --git a/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-pc-out-unspec b/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-pc-out-unspec new file mode 100644 index 0000000000..5645499b68 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-pc-out-unspec @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 256x48 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 18432, 81a97e1446adf963e68d55131e939c6f diff --git a/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-unspec-out-tv b/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-unspec-out-tv new file mode 100644 index 0000000000..5645499b68 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-unspec-out-tv @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 256x48 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 18432, 81a97e1446adf963e68d55131e939c6f diff --git a/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-unspec-out-unspec b/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-unspec-out-unspec new file mode 100644 index 0000000000..5645499b68 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p10-pc-scaled-in-unspec-out-unspec @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 256x48 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 18432, 81a97e1446adf963e68d55131e939c6f diff --git a/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-pc-out-tv b/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-pc-out-tv new file mode 100644 index 0000000000..075f0a0308 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-pc-out-tv @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 512x96 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 73728, f021b8d0eea2f66d6f44bbdbba63ae3d diff --git a/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-pc-out-unspec b/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-pc-out-unspec new file mode 100644 index 0000000000..075f0a0308 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-pc-out-unspec @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 512x96 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 73728, f021b8d0eea2f66d6f44bbdbba63ae3d diff --git a/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-unspec-out-tv b/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-unspec-out-tv new file mode 100644 index 0000000000..075f0a0308 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-unspec-out-tv @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 512x96 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 73728, f021b8d0eea2f66d6f44bbdbba63ae3d diff --git a/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-unspec-out-unspec b/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-unspec-out-unspec new file mode 100644 index 0000000000..075f0a0308 --- /dev/null +++ b/tests/ref/fate/filter-scale-yuv444p10-pc-unscaled-in-unspec-out-unspec @@ -0,0 +1,10 @@ +#format: frame checksums +#version: 2 +#hash: MD5 +#tb 0: 1/25 +#media_type 0: video +#codec_id 0: rawvideo +#dimensions 0: 512x96 +#sar 0: 0/1 +#stream#, dts, pts, duration, size, hash +0, 0, 0, 1, 73728, f021b8d0eea2f66d6f44bbdbba63ae3d -- 2.15.1.424.g9478a66081-goog