[FFmpeg-cvslog] r18428 - trunk/libavformat/electronicarts.c
reimar
subversion
Sat Apr 11 12:38:57 CEST 2009
Author: reimar
Date: Sat Apr 11 12:38:56 2009
New Revision: 18428
Log:
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).
Modified:
trunk/libavformat/electronicarts.c
Modified: trunk/libavformat/electronicarts.c
==============================================================================
--- trunk/libavformat/electronicarts.c Sat Apr 11 00:29:56 2009 (r18427)
+++ trunk/libavformat/electronicarts.c Sat Apr 11 12:38:56 2009 (r18428)
@@ -470,9 +470,8 @@ static int ea_read_packet(AVFormatContex
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 @@ static int ea_read_packet(AVFormatContex
ea->audio_frame_counter += chunk_size /
(ea->bytes * ea->num_channels);
}
- }
packet_read = 1;
break;
@@ -531,12 +529,10 @@ static int ea_read_packet(AVFormatContex
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;
More information about the ffmpeg-cvslog
mailing list