Mercurial > libavformat.hg
changeset 4849:92468cd5b594 libavformat
Make electronicarts demuxer return partial frames, this is the default
behaviour of av_get_packet and should not be override without good reason.
As a side effect this fixes the memleak described in issue 956.
Also return the exact error code from av_get_packet instead of AVERROR(EIO).
author | reimar |
---|---|
date | Sat, 11 Apr 2009 10:38:56 +0000 |
parents | 69c5cb7c0487 |
children | 50df4a8b9733 |
files | electronicarts.c |
diffstat | 1 files changed, 4 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/electronicarts.c Fri Apr 10 17:12:36 2009 +0000 +++ b/electronicarts.c Sat Apr 11 10:38:56 2009 +0000 @@ -470,9 +470,8 @@ chunk_size -= 12; } ret = av_get_packet(pb, pkt, chunk_size); - if (ret != chunk_size) - ret = AVERROR(EIO); - else { + if (ret < 0) + return ret; pkt->stream_index = ea->audio_stream_index; pkt->pts = 90000; pkt->pts *= ea->audio_frame_counter; @@ -493,7 +492,6 @@ ea->audio_frame_counter += chunk_size / (ea->bytes * ea->num_channels); } - } packet_read = 1; break; @@ -531,12 +529,10 @@ case MV0F_TAG: get_video_packet: ret = av_get_packet(pb, pkt, chunk_size); - if (ret != chunk_size) - ret = AVERROR_IO; - else { + if (ret < 0) + return ret; pkt->stream_index = ea->video_stream_index; pkt->flags |= key; - } packet_read = 1; break;