eacdata: fix a memleak, return partial packets and use proper return values.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 27 Mar 2010 19:09:46 +0000 (19:09 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 27 Mar 2010 19:09:46 +0000 (19:09 +0000)
Originally committed as revision 22702 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/eacdata.c

index 5e2594c..5fa2286 100644 (file)
@@ -83,10 +83,11 @@ static int cdata_read_packet(AVFormatContext *s, AVPacket *pkt)
     CdataDemuxContext *cdata = s->priv_data;
     int packet_size = 76*cdata->channels;
 
-    if (av_get_packet(s->pb, pkt, packet_size) != packet_size)
-        return AVERROR(EIO);
+    int ret = av_get_packet(s->pb, pkt, packet_size);
+    if (ret < 0)
+        return ret;
     pkt->pts = cdata->audio_pts++;
-    return 1;
+    return 0;
 }
 
 AVInputFormat ea_cdata_demuxer = {