From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 3E1B64216E for ; Wed, 23 Feb 2022 15:04:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 89D1A68B28F; Wed, 23 Feb 2022 17:04:32 +0200 (EET) Received: from mail-oi1-f173.google.com (mail-oi1-f173.google.com [209.85.167.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D164068A8A5 for ; Wed, 23 Feb 2022 17:04:24 +0200 (EET) Received: by mail-oi1-f173.google.com with SMTP id i5so18602341oih.1 for ; Wed, 23 Feb 2022 07:04:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=52cHc05KpU9gzZnWMkEZNRMUvGGCUWGnq5g0h5aQ324=; b=LMd7kx2cwCGBKCef6l0O6B0Bv8QW/EYf8M/HE84Y6Vibmz4t6WjzepjkXvAau4T1Ev zzA7d1oLrIoj6HikorOf11O/yQ1VsqMs8liJNE/rX5k/re772UsXScJwuChbwrG5gdfJ NwT4qaGKBOs5dZ86FHv9Txllz2dGbvlzjeedlS3ph8tLiRsaUJfGazOakwsXkOsN1n/0 1VSKU6R4Qg9WPHu2/MW1iuUlnhyjo3LzTEcypdM5s3vOIbetm6ZWyX/r2Rb/dftiS2h5 qSj7yqROtIGHeqSD592aiTM8nBRRrhBaKQ4qnQrDLTJMuoTdnpTeW94H3q6OpMjaGYqb Vffw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=52cHc05KpU9gzZnWMkEZNRMUvGGCUWGnq5g0h5aQ324=; b=FwV/s2k45u1yKE0V3jI/jQTm/dyNVt4lLi6gqRLE2mrVe2dcVXe5E2cJ6UhESH/QP9 lEeMH0e9BKF+P+VaJlIrtt4Ohq1Y4vqd/ck65B28YUlF4SMcaxk0uY3FsspXGgcBnwgj 5ZaNI4MKnU312cnPH/MvjDiN1m8DtfhcoLpDlgE3qAwnwQ0iB7vS/eu++9On3Ixqzm6P 0deYH3ScNuij9K+WH29j/9puJtikgaZqYUGqXgj6HPOA7d0eq0xCOwbfaY12KltRoQHt K1cbDI6Uzaeyl4LUzWb3zCbNnnhCcsCCgfRJ06/BHGpdHmUXv+D0ShtGBPVnHYU7oe+2 04eQ== X-Gm-Message-State: AOAM531/fmJcmHqQw0AXc6gU6c1Qn1DzfmaVBmrxlVzlg14z0vyqFSOW iVbbBPK8B3a0njkOw2xEH2R2rxA1n6Eryg== X-Google-Smtp-Source: ABdhPJxX2i39QjONTvxiNL8xtiXLe8U+XC9W13ho0jj3YxVB173nD51RKkhW7UgBU+hPIttGBhmchw== X-Received: by 2002:aca:bb88:0:b0:2d4:eb52:4513 with SMTP id l130-20020acabb88000000b002d4eb524513mr43355oif.163.1645628663127; Wed, 23 Feb 2022 07:04:23 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id o2sm8571449otl.9.2022.02.23.07.04.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Feb 2022 07:04:22 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 23 Feb 2022 12:03:53 -0300 Message-Id: <20220223150355.944-2-jamrial@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220223150355.944-1-jamrial@gmail.com> References: <20220223150355.944-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/4 v2] ffmpeg: ensure a keyframe was not seen before skipping packets 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: A keyframe could be buffered in the bsf and not be output until more packets had been fed to it. Signed-off-by: James Almer --- Changed the check from pkt to !eof, since a packet is always provided. fftools/ffmpeg.c | 4 +++- fftools/ffmpeg.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 44043ef203..2b61c0d5aa 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -890,6 +890,8 @@ static void output_packet(OutputFile *of, AVPacket *pkt, /* apply the output bitstream filters */ if (ost->bsf_ctx) { + if (!eof && pkt->flags & AV_PKT_FLAG_KEY) + ost->seen_kf = 1; ret = av_bsf_send_packet(ost->bsf_ctx, eof ? NULL : pkt); if (ret < 0) goto finish; @@ -2035,7 +2037,7 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p } if ((!ost->frame_number && !(pkt->flags & AV_PKT_FLAG_KEY)) && - !ost->copy_initial_nonkeyframes) + !ost->copy_initial_nonkeyframes && !ost->seen_kf) return; if (!ost->frame_number && !ost->copy_prior_start) { diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h index 82f3db6b6d..6a19dc9c7c 100644 --- a/fftools/ffmpeg.h +++ b/fftools/ffmpeg.h @@ -534,6 +534,7 @@ typedef struct OutputStream { int inputs_done; const char *attachment_filename; + int seen_kf; int copy_initial_nonkeyframes; int copy_prior_start; char *disposition; -- 2.35.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".