From patchwork Thu Apr 13 16:29:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 41172 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4645:b0:e3:3194:9d20 with SMTP id eb5csp476920pzb; Fri, 14 Apr 2023 05:54:27 -0700 (PDT) X-Google-Smtp-Source: AKy350ZbEHtXyOUob1oCevMEzB8jBUCPOO8c6HM6YSe8gq1ufj1POCsuOIiVBxnV/cbaMeDtjhYP X-Received: by 2002:a17:906:528b:b0:949:5d1f:64ea with SMTP id c11-20020a170906528b00b009495d1f64eamr6689978ejm.9.1681476867657; Fri, 14 Apr 2023 05:54:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681476867; cv=none; d=google.com; s=arc-20160816; b=K0BfmvbXfAuxNqrPpmW/eDsOLOIPh1Xqzll80h4W0L9QLM6MbCKfAT2IMS8zIDQ/AO nLlKSg1RO9g52iNo2H/lsUAhoUUAfNHDJj1XjIRr5IUVBAHiy4+qvKxnVsfuBd9Ltqli EG1PaFdQNEg+IE2bewDQzp3371JRve125W95kh1StfJq+Lu+cMs16vkRhbmQ3hUD659u mj7hqaqiapFOVhHUq36r4teVueTR+K0bY4CyfaZrfiVfBGEemzYIPwH+3F29U63WO2KT TvLq7m0F4vH92ziXiuUVg+AX8Ag0RZfYtxi9qn1ODxpd20TFe+DpKovkQ+VcZQ94X8Lz +VHg== 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=513rrHkMLeTj5qDS8celG5LPwsDewQO1Wrbgk8G7Qkw=; b=Y0zKTcvI5EOmqVKQDDTvATGJ0gyedyw48xh6/a0PUr0v8int0BIVFwf4WLLedR9sQ/ am4Ky4BYQgL1J9euZxXk0VqnnwjitFr+JeiD9Ge3cmrHlUK8DDjcyeEMk3KnP85D0dlq UFQ3xeJTXQGJqbqd1IyVlOwPeO5fqs4nTOc4i5+9eL7DllqyOUqwMvT21FWD55kXjn9p UHdZwGJPq15DxgbYePx5AARLziGTzaFfaNHDZUuUDnQMJsiIwoILdlU4mxFNYir6b1BK 73K47fYWcJ/86RloYAK6X1soVyZzaD9t9feRYgA0MHTZqrlpJ691yeEhryocwGwOkiCW gkHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=qny5Z+c+; 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 vw16-20020a170907059000b0094d0f572567si4143285ejb.1024.2023.04.14.05.54.25; Fri, 14 Apr 2023 05:54:27 -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=qny5Z+c+; 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 C2FCC68BE34; Fri, 14 Apr 2023 15:54:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D1CE3689C15 for ; Fri, 14 Apr 2023 15:54:15 +0300 (EEST) Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-63b5c4c769aso362574b3a.3 for ; Fri, 14 Apr 2023 05:54:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681476854; x=1684068854; 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=HuGCZFO3NylIWX9S/3ymXdGWzdtu7AJKwI3jts9yg/U=; b=qny5Z+c+DVgPs2uAZZ1V9jFk4RfARJEQ5hOb6uPLlMIKxu5qzSoPKWAHNbbIw9SIlI usHSgEpzY42pewchJLDDtMvOrzRBO2mJeB6EySjxIRjuLq5XXAc9r8SQ0SuYabfJWcXq toFzXIUTTGOZLhp5H5ZAQq4J64wbllOwVOwVFRQKEcMUmPNDM0XM/2WG8+Z0Xzp8bJ0S 8ipNDKl30PPCCegqGsdBwIJysU77DlXBJSq7DzwFQaJyQamXlRVY6wqChLENS+9+i9yX 4dY3AWrJYrWXJFyvBvnzdjsQ/8gGsqEVhyGp8uMgZ8gkzd/Git/bEDOqXLt9ZWysR7su RgXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681476854; x=1684068854; 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=HuGCZFO3NylIWX9S/3ymXdGWzdtu7AJKwI3jts9yg/U=; b=fegaQiJnV3mpnG6uBq5wPPGM8UR/FVEL7VhRICO0QRsgLnmGO+fdsMW7Jgii3JzLZI i0gApyg9cB1EDOvO7MKNSjfRsiescHZFwAHJPlsQDS5vNY/AtMAHELb838H0jEkmtqma QnGEh6Q41Or1HFV+tllbXAaTFoXcOCq051EjtCXqdjMcyd5ycs+xLkJ+1fT49EhG8H6v ygzyXq+j3r6b3HWfKuFRNvSME/enY5qjsuOgpE1Wkyk4vWytZWv5AmPaejk646wXeBes /GT5t0Ck46I5AaR/UdwaK8sA9UT1jWwMR51tNW5qdd5BNVKEF8dqL1xuUXZohsx8y28+ adyw== X-Gm-Message-State: AAQBX9d8JQX4KVvcSmFdltG9HZS+kkkfeiP/bvPwkljQ7YWXV5G57SXM EtqB5aSDMMiVLmPAN7E+BwNkXToTseA= X-Received: by 2002:a05:6871:725:b0:17f:f665:bc07 with SMTP id f37-20020a056871072500b0017ff665bc07mr2173541oap.52.1681403399951; Thu, 13 Apr 2023 09:29:59 -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.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Apr 2023 09:29:59 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 13 Apr 2023 13:29:39 -0300 Message-Id: <20230413162940.61095-4-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 4/5] fftools: use the new AVFrame keyframe flag 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: of48vLA5DFsQ Signed-off-by: James Almer --- fftools/ffmpeg.c | 2 +- fftools/ffmpeg_enc.c | 6 +++--- fftools/ffprobe.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 6e44542776..1004428a7f 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -1432,7 +1432,7 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output, int64_ av_ts2timestr(best_effort_timestamp, &ist->st->time_base), av_ts2str(decoded_frame->duration), av_ts2timestr(decoded_frame->duration, &ist->st->time_base), - decoded_frame->key_frame, decoded_frame->pict_type, + !!(decoded_frame->flags & AV_FRAME_FLAG_KEY), decoded_frame->pict_type, ist->st->time_base.num, ist->st->time_base.den); } diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c index a0779c45ae..36023fda63 100644 --- a/fftools/ffmpeg_enc.c +++ b/fftools/ffmpeg_enc.c @@ -959,11 +959,11 @@ static enum AVPictureType forced_kf_apply(void *logctx, KeyframeForceCtx *kf, goto force_keyframe; } } else if (kf->type == KF_FORCE_SOURCE && - in_picture->key_frame == 1 && !dup_idx) { + (in_picture->flags & AV_FRAME_FLAG_KEY) && !dup_idx) { goto force_keyframe; } else if (kf->type == KF_FORCE_SOURCE_NO_DROP && !dup_idx) { kf->dropped_keyframe = 0; - if ((in_picture->key_frame == 1) || kf->dropped_keyframe) + if ((in_picture->flags & AV_FRAME_FLAG_KEY) || kf->dropped_keyframe) goto force_keyframe; } @@ -1039,7 +1039,7 @@ static void do_video_out(OutputFile *of, } } ost->last_dropped = nb_frames == nb_frames_prev && next_picture; - ost->kf.dropped_keyframe = ost->last_dropped && next_picture && next_picture->key_frame; + ost->kf.dropped_keyframe = ost->last_dropped && next_picture && (next_picture->flags & AV_FRAME_FLAG_KEY); /* duplicates frame if needed */ for (i = 0; i < nb_frames; i++) { diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index d6e5a79c7e..f682b57e0e 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -2594,7 +2594,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream, if (s) print_str ("media_type", s); else print_str_opt("media_type", "unknown"); print_int("stream_index", stream->index); - print_int("key_frame", frame->key_frame); + print_int("key_frame", !!(frame->flags & AV_FRAME_FLAG_KEY)); print_ts ("pts", frame->pts); print_time("pts_time", frame->pts, &stream->time_base); print_ts ("pkt_dts", frame->pkt_dts);