From patchwork Thu Apr 13 16:29:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 41174 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4645:b0:e3:3194:9d20 with SMTP id eb5csp537105pzb; Fri, 14 Apr 2023 07:15:24 -0700 (PDT) X-Google-Smtp-Source: AKy350az1iqxvc7lbPKdQq5HXCKLZmXAFN1TzkSiIeq1XoSb3vAQreblZ4qMX7RU7uooTbdOj5ll X-Received: by 2002:a50:eb4b:0:b0:504:b6a6:cbe0 with SMTP id z11-20020a50eb4b000000b00504b6a6cbe0mr6071286edp.12.1681481723875; Fri, 14 Apr 2023 07:15:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681481723; cv=none; d=google.com; s=arc-20160816; b=kRQlsIcwDXtrsWiuXLFyHDHTO2nGJtQhwEeds6szB/7n5fsXktrOeK38nV4ajhCveh GZV2QmVI+0rgB8nKzMl0sxE6SyFHIf76Xf1BU58JLzZH6zRD4GJq7PWqwC0n0fSgw21b wH/wzphQoD5e3UrwLQsZsT4ooGcQELL/ev+/UfvxG3WiUr2FNgA2tYSnHmAhsmn1Uogr 5xlOBmZYKzUsbF8WCBlYGO4vQA/hH6Q2haTqz/IsvIooTWrd2fO+oIcqOX5kRDxxYGH9 QiyALW254s9eQsgqrEHZ0iQU5je/N7D8kjJDW7FrjdD1DUUmJqETGpCeGJ3XLfqM4aFK RFLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=k8QjcabebWSTAlZoTvGxsHdUrPNqDjqN9hpQxyQr1oI=; b=S1BG1J7ST69iXr1Pi3WIVbawCVueTj0TBFWxc393lOeL3V8eJVkRufTS2xAb1fM5F4 dlorfKGhKMMp3IEXicLz6/IoTqnJc+JZ2fO3ghfj2b/TxzJiFExiNfjicMjgD3vV5GqY tQtptiG5JpA3gGf4lVUEVU1XPMibpCBb9T+QX93kOVOKgJRKJLL18oHjzKfOrfwvtR2P HNxFQRFmTHWdPhMXJCNxjv8tDdTfer6giMhEJeZvDW7m52zzbf6G2478eaGZPlwJ34cV 9ZbHpqw8rKwGaRh63c3ieY20pefLFeiZJ7GJc2NH9mDwPZ4pchapBYBC129WtNX0awt/ LSUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=srAMjsNG; 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=QUARANTINE 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 n19-20020aa7c693000000b005046d9d2c82si4389098edq.401.2023.04.14.07.15.23; Fri, 14 Apr 2023 07:15:23 -0700 (PDT) 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=20221208 header.b=srAMjsNG; 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=QUARANTINE 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 2951768BE96; Fri, 14 Apr 2023 17:15:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f171.google.com (mail-oi1-f171.google.com [209.85.167.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 65F0768BE2D for ; Fri, 14 Apr 2023 17:15:14 +0300 (EEST) Received: by mail-oi1-f171.google.com with SMTP id x22so593286oiv.10 for ; Fri, 14 Apr 2023 07:15:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681481713; x=1684073713; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=30Pzwe700J9nx5eqhm6afAaSR0u+tW9XQR7OdbbnhAM=; b=srAMjsNGNzGoLmPZVo1FwPA8OVG0phhu2owqvyfeupzxNDEpE/8arqqP2ThFn61C22 3CyVrNbBM1zrDGB0uvn5jqdBd295l0GObclCMHZP/VoFLSzUaD5qqaxhNxw1Ax5x9nzS DgxktuqLGVMszfc2DxXFcNevxFEafmYfr+SSIaWA6O6DuteIlVA4WGyHMmop1ZLiiDPv PiQsgNgrio6chUN9lxTewJHE5wi4Ik31VG8SZUFZK5KCrSEXPI+4SZlrdNVwj317svNN YTrjuhsmU0t0tSqVvsZfcdPQZ5VmDKnjJsdhbzdubfJXVgLvVYciZGhXuF9hsSUa1Fba CXQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681481713; x=1684073713; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=30Pzwe700J9nx5eqhm6afAaSR0u+tW9XQR7OdbbnhAM=; b=P8+mFnhOAr12hIW9gWQmK12TR35Ot/V03rMAywvVJZhAQr6gaxv+vmQXPRaCHr/Es1 OnGkm/Ndwo/CI2PfI0L7sPXLaID1Nl1MkXwqZkMPPS2u0kYwrP9krz6fym5WsB6Up5lx EHRAa3OsVHDrpq5mjSoMlf94axJskF+ENaC+V4B680gUhhos/91rJNmCFdbTbdLwJ+An vtmpfIi11Nvp6um6ZofqbC1i1jqxR3bcNgm2/SMTja35yRKgIPDijRreX+MgUsZ4zsLD u2H5bEkDoAYqLQOOqjGQJZkC+bc1dqxbnKfwWpOK5mDEdJAhzSBOPiC5XhaWaqxM6Ef/ hO6g== X-Gm-Message-State: AAQBX9cTCWvK9ySdP2iJvAkcHz8YcFTL8uM9pCQrmXoOHEjeYWGArhpF cNjL9lQpIi0uVKCAQZmbuV7NQicV7V8= X-Received: by 2002:a05:6870:8189:b0:177:ab68:aa9a with SMTP id k9-20020a056870818900b00177ab68aa9amr2224235oae.1.1681403398778; Thu, 13 Apr 2023 09:29:58 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id o19-20020a9d5c13000000b006a3f8f7b686sm852589otk.28.2023.04.13.09.29.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Apr 2023 09:29:58 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 13 Apr 2023 13:29:38 -0300 Message-Id: <20230413162940.61095-3-jamrial@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230413162940.61095-1-jamrial@gmail.com> References: <20230413162940.61095-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/5] avfilter: use the new AVFrame key_frame flag in all filters X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: /pmOT9v9MtOb Signed-off-by: James Almer --- libavfilter/avfilter.c | 2 +- libavfilter/buffersrc.c | 3 +++ libavfilter/f_select.c | 4 ++-- libavfilter/vf_blackframe.c | 2 +- libavfilter/vf_coreimage.m | 1 + libavfilter/vf_showinfo.c | 2 +- libavfilter/vsrc_gradients.c | 1 + libavfilter/vsrc_testsrc.c | 1 + 8 files changed, 11 insertions(+), 5 deletions(-) diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 8d5702a0c8..1fe728a42c 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -59,7 +59,7 @@ static void tlog_ref(void *ctx, AVFrame *ref, int end) ref->width, ref->height, !ref->interlaced_frame ? 'P' : /* Progressive */ ref->top_field_first ? 'T' : 'B', /* Top / Bottom */ - ref->key_frame, + !!(ref->flags & AV_FRAME_FLAG_KEY), av_get_picture_type_char(ref->pict_type)); } if (ref->nb_samples) { diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c index a1740da054..a81c331cd5 100644 --- a/libavfilter/buffersrc.c +++ b/libavfilter/buffersrc.c @@ -247,6 +247,9 @@ FF_DISABLE_DEPRECATION_WARNINGS FF_ENABLE_DEPRECATION_WARNINGS #endif + if (frame->key_frame) + frame->flags |= AV_FRAME_FLAG_KEY; + ret = ff_filter_frame(ctx->outputs[0], copy); if (ret < 0) return ret; diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c index d76c248fc5..d544b5533c 100644 --- a/libavfilter/f_select.c +++ b/libavfilter/f_select.c @@ -346,7 +346,7 @@ FF_DISABLE_DEPRECATION_WARNINGS select->var_values[VAR_POS] = frame->pkt_pos == -1 ? NAN : frame->pkt_pos; FF_ENABLE_DEPRECATION_WARNINGS #endif - select->var_values[VAR_KEY] = frame->key_frame; + select->var_values[VAR_KEY] = !!(frame->flags & AV_FRAME_FLAG_KEY); select->var_values[VAR_CONCATDEC_SELECT] = get_concatdec_select(frame, av_rescale_q(frame->pts, inlink->time_base, AV_TIME_BASE_Q)); switch (inlink->type) { @@ -375,7 +375,7 @@ FF_ENABLE_DEPRECATION_WARNINGS select->var_values[VAR_N], select->var_values[VAR_PTS], select->var_values[VAR_T], - frame->key_frame); + !!(frame->flags & AV_FRAME_FLAG_KEY)); switch (inlink->type) { case AVMEDIA_TYPE_VIDEO: diff --git a/libavfilter/vf_blackframe.c b/libavfilter/vf_blackframe.c index e5e185dbea..4bcec86688 100644 --- a/libavfilter/vf_blackframe.c +++ b/libavfilter/vf_blackframe.c @@ -72,7 +72,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) p += frame->linesize[0]; } - if (frame->key_frame) + if (frame->flags & AV_FRAME_FLAG_KEY) s->last_keyframe = s->frame; pblack = s->nblack * 100 / (inlink->w * inlink->h); diff --git a/libavfilter/vf_coreimage.m b/libavfilter/vf_coreimage.m index b1959861de..ea43aad275 100644 --- a/libavfilter/vf_coreimage.m +++ b/libavfilter/vf_coreimage.m @@ -302,6 +302,7 @@ static int request_frame(AVFilterLink *link) frame->pts = ctx->pts; frame->duration = 1; frame->key_frame = 1; + frame->flags |= AV_FRAME_FLAG_KEY; frame->interlaced_frame = 0; frame->pict_type = AV_PICTURE_TYPE_I; frame->sample_aspect_ratio = ctx->sar; diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c index 9caa618b01..ca58d0519c 100644 --- a/libavfilter/vf_showinfo.c +++ b/libavfilter/vf_showinfo.c @@ -724,7 +724,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) frame->width, frame->height, !frame->interlaced_frame ? 'P' : /* Progressive */ frame->top_field_first ? 'T' : 'B', /* Top / Bottom */ - frame->key_frame, + !!(frame->flags & AV_FRAME_FLAG_KEY), av_get_picture_type_char(frame->pict_type)); if (s->calculate_checksums) { diff --git a/libavfilter/vsrc_gradients.c b/libavfilter/vsrc_gradients.c index 3c524b9242..39e9e226ee 100644 --- a/libavfilter/vsrc_gradients.c +++ b/libavfilter/vsrc_gradients.c @@ -398,6 +398,7 @@ static int activate(AVFilterContext *ctx) return AVERROR(ENOMEM); frame->key_frame = 1; + frame->flags |= AV_FRAME_FLAG_KEY; frame->interlaced_frame = 0; frame->pict_type = AV_PICTURE_TYPE_I; frame->sample_aspect_ratio = (AVRational) {1, 1}; diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c index 9760e5fc80..7fb1ef9718 100644 --- a/libavfilter/vsrc_testsrc.c +++ b/libavfilter/vsrc_testsrc.c @@ -185,6 +185,7 @@ static int activate(AVFilterContext *ctx) frame->pts = test->pts; frame->duration = 1; frame->key_frame = 1; + frame->flags |= AV_FRAME_FLAG_KEY; frame->interlaced_frame = 0; frame->pict_type = AV_PICTURE_TYPE_I; frame->sample_aspect_ratio = test->sar;