Hi,

On 22/09/2016 23:03, Sophia Wang wrote:
Signed-off-by: Sophia Wang <s...@google.com>
---
  libavformat/matroskadec.c | 13 ++++++++-----
  1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 77b8a5d..936690d 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -738,13 +738,16 @@ static int matroska_read_close(AVFormatContext *s);
  static int matroska_resync(MatroskaDemuxContext *matroska, int64_t last_pos)
  {
      AVIOContext *pb = matroska->ctx->pb;
+    int64_t ret;
      uint32_t id;
      matroska->current_id = 0;
      matroska->num_levels = 0;
/* seek to next position to resync from */
-    if (avio_seek(pb, last_pos + 1, SEEK_SET) < 0)
-        goto eof;
+    if ((ret = avio_seek(pb, last_pos + 1, SEEK_SET)) < 0) {
+        matroska->done = 1;
+        return ret;

doesn't this generate a warning, returning an int64 from a function supposed to return an int?

+    }
id = avio_rb32(pb); @@ -760,7 +763,6 @@ static int matroska_resync(MatroskaDemuxContext *matroska, int64_t last_pos)
          id = (id << 8) | avio_r8(pb);
      }
-eof:
      matroska->done = 1;
      return AVERROR_EOF;
  }
@@ -3317,13 +3319,14 @@ static int matroska_parse_cluster(MatroskaDemuxContext 
*matroska)
  static int matroska_read_packet(AVFormatContext *s, AVPacket *pkt)
  {
      MatroskaDemuxContext *matroska = s->priv_data;
+    int ret = 0;
while (matroska_deliver_packet(matroska, pkt)) {
          int64_t pos = avio_tell(matroska->ctx->pb);
          if (matroska->done)
-            return AVERROR_EOF;
+            return (ret < 0) ? ret : AVERROR_EOF;
          if (matroska_parse_cluster(matroska) < 0)
-            matroska_resync(matroska, pos);
+            ret = matroska_resync(matroska, pos);
      }
return 0;

You might want to return ret instead of 0 here.

--
Ben

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to