From patchwork Sat Jul 20 23:27:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 14013 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 379A8448C2C for ; Sun, 21 Jul 2019 02:33:49 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 118DA68ACCE; Sun, 21 Jul 2019 02:33:49 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4CD5F68AC84 for ; Sun, 21 Jul 2019 02:33:42 +0300 (EEST) Received: by mail-pl1-f196.google.com with SMTP id a93so17322227pla.7 for ; Sat, 20 Jul 2019 16:33:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=HJs/5JyMxbPcmG6vy2UjFuoU6vTcdiMtxb0uqyP8n34=; b=NbS4tW7sDTgxyu4ubb7fzabQvqbY/KCD1EKKVgWTxXBDRW1bzsgB+ldgoKmVyEIZaq f64NrgWJhHhkgy6EIjBho+ZdxJTPNVC8nrasI3e4eBv2Yacju3YR5KjisHbL0nh4s6H3 dPKef6irGSh3jBWYWSFsBxrCA/847hlGOkFFh/8XVj04AJEuxrMHJ+4o1/92xsASRo6s yJMghBLnEuXU1+5JX6Bni2h4HwxuV1ksAyyddGnfysnpYecaFtr9o0kd44L1DQgQNPqa Vgwpb5r1/DsojI8d90hryDdkteXk0wUDTVw4XQnT52NJS4Gh8nEWA7FEwIAj18EZdMHs lRsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=HJs/5JyMxbPcmG6vy2UjFuoU6vTcdiMtxb0uqyP8n34=; b=UMl/QguYAbCZmLYjOTrzactzkt1Kyko9cf3GaFUalJLUBYUr5CvGKYdgtwTrS0x6VI Q7/RZ7Q9cJ1L4AxBJF76I1IP1Fa2DncfLP9SY+wYXsvbmYrjkG5xCIkvelrkVPQw/2xu ShxuX105Ps0zcPlD4abrPNASlDXH5RtU5TAljai8aA/dnLLghXlgupfsen7Nu185r/kG DZQJdXhO/gUNgGWbJwVf9hTypNSC607WlTZzZJvsxdlfdpRu6VtoGP4Z0O24/QKFxzOk SXaNSdqkJ+Xv4wxpOvTYaqttdxvS48tD+sXVWg9T022wFuh/vLiFVwn9iM3gMp41OWq7 2LKw== X-Gm-Message-State: APjAAAWNWBL0ZyQQoLIlyjEZTY5xKO1kZ/ZggWs+63PV6DqyHJKMPBRV feNtKalwprkx6QgmLNBzfG+SGpFy X-Google-Smtp-Source: APXvYqwmScEVdku09ciFTH2puXnodv1NHxSWN27WnTR04o/R/BsMaA9AVgyj+21bw8xG3hC2SwPXWw== X-Received: by 2002:a17:902:ab8f:: with SMTP id f15mr65134330plr.159.1563665246120; Sat, 20 Jul 2019 16:27:26 -0700 (PDT) Received: from vpn.localdomain ([47.90.99.151]) by smtp.gmail.com with ESMTPSA id p65sm34696272pfp.58.2019.07.20.16.27.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 20 Jul 2019 16:27:25 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Sun, 21 Jul 2019 07:27:20 +0800 Message-Id: <20190720232720.12046-1-lance.lmwang@gmail.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <1563231238-20966-1-git-send-email-lance.lmwang@gmail.com> References: <1563231238-20966-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v3 3/3] lavf/f_select: make the more pixel format usable to avoid autoscale to rgb 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 Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang Below is the tested results for the new added pixel format without autoscale to rgb24: 1. AV_PIX_FMT_YUVJ420P time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \ "sws_flags=+accurate_rnd+bitexact;movie=../fate-suite/svq3/Vertical400kbit.sorenson3.mov,select=gt(scene\,.25)" master: pkt_pts=1620|tag:lavfi.scene_score=1.000000 pkt_pts=4140|tag:lavfi.scene_score=0.875036 pkt_pts=5800|tag:lavfi.scene_score=1.000000 pkt_pts=6720|tag:lavfi.scene_score=0.461625 pkt_pts=8160|tag:lavfi.scene_score=1.000000 pkt_pts=9760|tag:lavfi.scene_score=1.000000 pkt_pts=14080|tag:lavfi.scene_score=0.838916 pkt_pts=15700|tag:lavfi.scene_score=1.000000 pkt_pts=18500|tag:lavfi.scene_score=0.474948 pkt_pts=20040|tag:lavfi.scene_score=0.379700 pkt_pts=21760|tag:lavfi.scene_score=1.000000 ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f 0.71s user 0.01s system 99% cpu 0.721 total patch applied: pkt_pts=1620|tag:lavfi.scene_score=1.000000 pkt_pts=4140|tag:lavfi.scene_score=0.668643 pkt_pts=5800|tag:lavfi.scene_score=0.996721 pkt_pts=6720|tag:lavfi.scene_score=0.357390 pkt_pts=8160|tag:lavfi.scene_score=0.886268 pkt_pts=9760|tag:lavfi.scene_score=0.926219 pkt_pts=14080|tag:lavfi.scene_score=0.650033 pkt_pts=15700|tag:lavfi.scene_score=1.000000 pkt_pts=18500|tag:lavfi.scene_score=0.316402 pkt_pts=20040|tag:lavfi.scene_score=0.269509 pkt_pts=21760|tag:lavfi.scene_score=1.000000 ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f 0.19s user 0.01s system 81% cpu 0.240 total 2. AV_PIX_FMT_YUV420P time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \ "sws_flags=+accurate_rnd+bitexact;movie=../Passengers_Breakfast_1080-sdr.mkv,select=gt(scene\,.2)" master: pkt_pts=3587|tag:lavfi.scene_score=0.462364 pkt_pts=4838|tag:lavfi.scene_score=0.419519 pkt_pts=6548|tag:lavfi.scene_score=0.397027 pkt_pts=9968|tag:lavfi.scene_score=0.419245 pkt_pts=12471|tag:lavfi.scene_score=0.413084 pkt_pts=16225|tag:lavfi.scene_score=0.506370 pkt_pts=19645|tag:lavfi.scene_score=0.507538 pkt_pts=22314|tag:lavfi.scene_score=0.504319 pkt_pts=24817|tag:lavfi.scene_score=0.417544 pkt_pts=25651|tag:lavfi.scene_score=0.413916 pkt_pts=26652|tag:lavfi.scene_score=0.487707 18.58s user 0.07s system 99% cpu 18.663 total patch applied: pkt_pts=3587|tag:lavfi.scene_score=0.272173 pkt_pts=4838|tag:lavfi.scene_score=0.247841 pkt_pts=6548|tag:lavfi.scene_score=0.233134 pkt_pts=9968|tag:lavfi.scene_score=0.247253 pkt_pts=12471|tag:lavfi.scene_score=0.244129 pkt_pts=16225|tag:lavfi.scene_score=0.302531 pkt_pts=19645|tag:lavfi.scene_score=0.303560 pkt_pts=22314|tag:lavfi.scene_score=0.301861 pkt_pts=24817|tag:lavfi.scene_score=0.249331 pkt_pts=25651|tag:lavfi.scene_score=0.247096 pkt_pts=26652|tag:lavfi.scene_score=0.287728 10.90s user 0.06s system 99% cpu 10.967 total 3. AV_PIX_FMT_YUV422P time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \ "sws_flags=+accurate_rnd+bitexact;movie=../Passengers_Breakfast_1080-sdr.mkv,format=yuv422p,select=gt(scene\,.2)" master: patched applied: pkt_pts=3587|tag:lavfi.scene_score=0.224017 pkt_pts=4838|tag:lavfi.scene_score=0.204225 pkt_pts=9968|tag:lavfi.scene_score=0.204636 pkt_pts=12471|tag:lavfi.scene_score=0.202772 pkt_pts=16225|tag:lavfi.scene_score=0.248765 pkt_pts=19645|tag:lavfi.scene_score=0.250144 pkt_pts=22314|tag:lavfi.scene_score=0.248802 pkt_pts=24817|tag:lavfi.scene_score=0.208362 pkt_pts=25651|tag:lavfi.scene_score=0.205777 pkt_pts=26652|tag:lavfi.scene_score=0.230742 4. AV_PIX_FMT_YUV420P10 time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \ "sws_flags=+accurate_rnd+bitexact;movie=../Passengers_Breakfast_4k.mkv,select=gt(scene\,.2)" master: pkt_pts=3587|tag:lavfi.scene_score=0.269890 pkt_pts=4838|tag:lavfi.scene_score=0.248957 pkt_pts=6548|tag:lavfi.scene_score=0.234619 pkt_pts=9969|tag:lavfi.scene_score=0.224912 pkt_pts=12471|tag:lavfi.scene_score=0.225158 pkt_pts=16225|tag:lavfi.scene_score=0.289809 pkt_pts=19645|tag:lavfi.scene_score=0.285013 pkt_pts=22314|tag:lavfi.scene_score=0.280295 pkt_pts=24817|tag:lavfi.scene_score=0.206486 pkt_pts=25651|tag:lavfi.scene_score=0.208556 pkt_pts=26652|tag:lavfi.scene_score=0.249577 ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f 76.03s user 0.22s system 99% cpu 1:16.27 total patch applied pkt_pts=3587|tag:lavfi.scene_score=0.269890 pkt_pts=4838|tag:lavfi.scene_score=0.248957 pkt_pts=6548|tag:lavfi.scene_score=0.234619 pkt_pts=9969|tag:lavfi.scene_score=0.224912 pkt_pts=12471|tag:lavfi.scene_score=0.225158 pkt_pts=16225|tag:lavfi.scene_score=0.289809 pkt_pts=19645|tag:lavfi.scene_score=0.285013 pkt_pts=22314|tag:lavfi.scene_score=0.280295 pkt_pts=24817|tag:lavfi.scene_score=0.206486 pkt_pts=25651|tag:lavfi.scene_score=0.208556 pkt_pts=26652|tag:lavfi.scene_score=0.249577 ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f 50.27s user 0.20s system 99% cpu 50.476 total 5. AV_PIX_FMT_RGBA, AV_PIX_FMT_ABGR, AV_PIX_FMT_BGRA, AV_PIX_FMT_GRAY8 are tested by format= with the fate sample: Vertical400kbit.sorenson3.mov like below: time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \ "sws_flags=+accurate_rnd+bitexact;movie=../fate-suite/svq3/Vertical400kbit.sorenson3.mov,format=rgba,select=gt(scene\,.25)" patch applied: pkt_pts=1620|tag:lavfi.scene_score=1.000000 pkt_pts=4140|tag:lavfi.scene_score=0.656277 pkt_pts=5800|tag:lavfi.scene_score=1.000000 pkt_pts=6720|tag:lavfi.scene_score=0.346218 pkt_pts=8160|tag:lavfi.scene_score=0.987686 pkt_pts=9760|tag:lavfi.scene_score=1.000000 pkt_pts=14080|tag:lavfi.scene_score=0.629187 pkt_pts=15700|tag:lavfi.scene_score=1.000000 pkt_pts=18500|tag:lavfi.scene_score=0.356211 pkt_pts=20040|tag:lavfi.scene_score=0.284775 pkt_pts=21760|tag:lavfi.scene_score=1.000000 6. AV_PIX_FMT_YUVJ422P time ./ffprobe -of compact=p=0 -show_entries frame=pkt_pts:frame_tags -bitexact -f lavfi \ "sws_flags=+accurate_rnd+bitexact;movie=../fate-suite/svq3/Vertical400kbit.sorenson3.mov,format=yuvj422p,select=gt(scene\,.25)" patch applied: pkt_pts=1620|tag:lavfi.scene_score=0.838281 pkt_pts=4140|tag:lavfi.scene_score=0.541382 pkt_pts=5800|tag:lavfi.scene_score=0.780588 pkt_pts=6720|tag:lavfi.scene_score=0.298274 pkt_pts=8160|tag:lavfi.scene_score=0.699106 pkt_pts=9760|tag:lavfi.scene_score=0.730136 pkt_pts=14080|tag:lavfi.scene_score=0.537742 pkt_pts=15700|tag:lavfi.scene_score=0.811946 pkt_pts=18500|tag:lavfi.scene_score=0.263382 pkt_pts=21760|tag:lavfi.scene_score=0.880773 Reviewed-by: Marton Balint Signed-off-by: Limin Wang --- libavfilter/f_select.c | 6 +++++- tests/ref/fate/filter-metadata-scenedetect | 16 ++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c index b872cee..c6a625f 100644 --- a/libavfilter/f_select.c +++ b/libavfilter/f_select.c @@ -498,7 +498,11 @@ static int query_formats(AVFilterContext *ctx) } else { int ret; static const enum AVPixelFormat pix_fmts[] = { - AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, + AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_RGBA, + AV_PIX_FMT_ABGR, AV_PIX_FMT_BGRA, AV_PIX_FMT_GRAY8, + AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P, + AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVJ422P, + AV_PIX_FMT_YUV420P10, AV_PIX_FMT_NONE }; AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); diff --git a/tests/ref/fate/filter-metadata-scenedetect b/tests/ref/fate/filter-metadata-scenedetect index 67c23b3..7ce2d67 100644 --- a/tests/ref/fate/filter-metadata-scenedetect +++ b/tests/ref/fate/filter-metadata-scenedetect @@ -1,11 +1,11 @@ pkt_pts=1620|tag:lavfi.scene_score=1.000000 -pkt_pts=4140|tag:lavfi.scene_score=0.875036 -pkt_pts=5800|tag:lavfi.scene_score=1.000000 -pkt_pts=6720|tag:lavfi.scene_score=0.461625 -pkt_pts=8160|tag:lavfi.scene_score=1.000000 -pkt_pts=9760|tag:lavfi.scene_score=1.000000 -pkt_pts=14080|tag:lavfi.scene_score=0.838916 +pkt_pts=4140|tag:lavfi.scene_score=0.668643 +pkt_pts=5800|tag:lavfi.scene_score=0.996721 +pkt_pts=6720|tag:lavfi.scene_score=0.357390 +pkt_pts=8160|tag:lavfi.scene_score=0.886268 +pkt_pts=9760|tag:lavfi.scene_score=0.926219 +pkt_pts=14080|tag:lavfi.scene_score=0.650033 pkt_pts=15700|tag:lavfi.scene_score=1.000000 -pkt_pts=18500|tag:lavfi.scene_score=0.474948 -pkt_pts=20040|tag:lavfi.scene_score=0.379700 +pkt_pts=18500|tag:lavfi.scene_score=0.316402 +pkt_pts=20040|tag:lavfi.scene_score=0.269509 pkt_pts=21760|tag:lavfi.scene_score=1.000000