diff mbox series

[FFmpeg-devel] avcodec/flac_parser: ensure there are more headers for scoring

Message ID CAPYw7P4CTyCVvHr2cCkAef1yMUJeQVbyu9CKv=FVJfs38qxVqQ@mail.gmail.com
State New
Headers show
Series [FFmpeg-devel] avcodec/flac_parser: ensure there are more headers for scoring | expand

Checks

Context Check Description
yinshiyou/configure_loongarch64 warning Failed to apply patch
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Paul B Mahol Sept. 5, 2022, 4:23 p.m. UTC
Patch attached.
diff mbox series

Patch

From 81656532bdf649b43e3ac777637433b033b56d03 Mon Sep 17 00:00:00 2001
From: Paul B Mahol <onemda@gmail.com>
Date: Mon, 5 Sep 2022 18:12:10 +0200
Subject: [PATCH] avcodec/flac_parser: ensure there are more headers for
 scoring

Previously invalid frame may be returned, happened when seeking.

Fixes #7684

Signed-off-by: Paul B Mahol <onemda@gmail.com>
---
 libavcodec/flac_parser.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/flac_parser.c b/libavcodec/flac_parser.c
index a1d9cd7f29..11cd5540cf 100644
--- a/libavcodec/flac_parser.c
+++ b/libavcodec/flac_parser.c
@@ -600,7 +600,7 @@  static int score_header(FLACParseContext *fpc, FLACHeaderMarker *header)
 static void score_sequences(FLACParseContext *fpc)
 {
     FLACHeaderMarker *curr;
-    int best_score = 0;//FLAC_HEADER_NOT_SCORED_YET;
+    int best_score = FLAC_HEADER_NOT_SCORED_YET;
     /* First pass to clear all old scores. */
     for (curr = fpc->headers; curr; curr = curr->next)
         curr->max_score = FLAC_HEADER_NOT_SCORED_YET;
@@ -682,7 +682,7 @@  static int flac_parse(AVCodecParserContext *s, AVCodecContext *avctx,
     }
 
     fpc->avctx = avctx;
-    if (fpc->best_header_valid)
+    if (fpc->best_header_valid && fpc->nb_headers_buffered >= FLAC_MIN_HEADERS)
         return get_best_header(fpc, poutbuf, poutbuf_size);
 
     /* If a best_header was found last call remove it with the buffer data. */
-- 
2.37.2