wc3movie: return partial packets if not all data can be read.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 11 Apr 2009 20:48:56 +0000 (20:48 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 11 Apr 2009 20:48:56 +0000 (20:48 +0000)
This is consistent with other demuxer's behaviour and avoids a memleak.
It also returns the error from av_get_packet instead of always AVERROR(EIO).

Originally committed as revision 18446 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/wc3movie.c

index 8e5dd38..42f50d4 100644 (file)
@@ -320,8 +320,6 @@ static int wc3_read_packet(AVFormatContext *s,
             ret= av_get_packet(pb, pkt, size);
             pkt->stream_index = wc3->video_stream_index;
             pkt->pts = wc3->pts;
-            if (ret != size)
-                ret = AVERROR(EIO);
             packet_read = 1;
             break;
 
@@ -349,8 +347,6 @@ static int wc3_read_packet(AVFormatContext *s,
             ret= av_get_packet(pb, pkt, size);
             pkt->stream_index = wc3->audio_stream_index;
             pkt->pts = wc3->pts;
-            if (ret != size)
-                ret = AVERROR(EIO);
 
             /* time to advance pts */
             wc3->pts++;