瀏覽代碼

avformat/flacdec: Fix seeking close to EOF

Fixes Ticket5428

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer 9 年之前
父節點
當前提交
d0b21b28a3
共有 1 個文件被更改,包括 6 次插入3 次删除
  1. 6 3
      libavformat/flacdec.c

+ 6 - 3
libavformat/flacdec.c

@@ -259,8 +259,10 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde
         if (ret < 0){
             if (ret == AVERROR(EAGAIN))
                 continue;
-            else
-                break;
+            else {
+                av_packet_unref(&pkt);
+                av_assert1(!pkt.size);
+            }
         }
         av_init_packet(&out_pkt);
         av_parser_parse2(parser, st->internal->avctx,
@@ -277,7 +279,8 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde
                 pts = parser->pts;
                 break;
             }
-        }
+        } else if (ret < 0)
+            break;
     }
     av_parser_close(parser);
     return pts;