comparison eacdata.c @ 5897:d7f41380f52c libavformat

eacdata: fix a memleak, return partial packets and use proper return values.
author reimar
date Sat, 27 Mar 2010 19:09:46 +0000
parents 655d9d34f862
children 536e5527c1e0
comparison
equal deleted inserted replaced
5896:395592984ef0 5897:d7f41380f52c
81 static int cdata_read_packet(AVFormatContext *s, AVPacket *pkt) 81 static int cdata_read_packet(AVFormatContext *s, AVPacket *pkt)
82 { 82 {
83 CdataDemuxContext *cdata = s->priv_data; 83 CdataDemuxContext *cdata = s->priv_data;
84 int packet_size = 76*cdata->channels; 84 int packet_size = 76*cdata->channels;
85 85
86 if (av_get_packet(s->pb, pkt, packet_size) != packet_size) 86 int ret = av_get_packet(s->pb, pkt, packet_size);
87 return AVERROR(EIO); 87 if (ret < 0)
88 return ret;
88 pkt->pts = cdata->audio_pts++; 89 pkt->pts = cdata->audio_pts++;
89 return 1; 90 return 0;
90 } 91 }
91 92
92 AVInputFormat ea_cdata_demuxer = { 93 AVInputFormat ea_cdata_demuxer = {
93 "ea_cdata", 94 "ea_cdata",
94 NULL_IF_CONFIG_SMALL("Electronic Arts cdata"), 95 NULL_IF_CONFIG_SMALL("Electronic Arts cdata"),