diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2009-10-02 06:40:50 +0000 |
---|---|---|
committer | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2009-10-02 06:40:50 +0000 |
commit | c3db0bc61d83598d42a5a7bbc03377360ff81fb9 (patch) | |
tree | b811ff4888619dbdf9569b75eceeec1042be240c /libavformat | |
parent | 593b50cedf1df99a48772f4510689bb5df46eda5 (diff) | |
download | ffmpeg-c3db0bc61d83598d42a5a7bbc03377360ff81fb9.tar.gz |
Return any error return values from av_get_packet, get_buffer etc. unchanged
in the raw demuxers.
Also remove special handling of 0-size reads, if they are due to an error/eof,
these are already converted to the appropriate error by get_buffer.
Originally committed as revision 20137 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/raw.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/libavformat/raw.c b/libavformat/raw.c index 260b690664..ed5f1ca73d 100644 --- a/libavformat/raw.c +++ b/libavformat/raw.c @@ -120,9 +120,8 @@ static int raw_read_packet(AVFormatContext *s, AVPacket *pkt) ret= av_get_packet(s->pb, pkt, size); pkt->stream_index = 0; - if (ret <= 0) { - return AVERROR(EIO); - } + if (ret < 0) + return ret; bps= av_get_bits_per_sample(s->streams[0]->codec->codec_id); assert(bps); // if false there IS a bug elsewhere (NOT in this function) @@ -144,9 +143,9 @@ int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt) pkt->pos= url_ftell(s->pb); pkt->stream_index = 0; ret = get_partial_buffer(s->pb, pkt->data, size); - if (ret <= 0) { + if (ret < 0) { av_free_packet(pkt); - return AVERROR(EIO); + return ret; } pkt->size = ret; return ret; @@ -171,8 +170,8 @@ static int rawvideo_read_packet(AVFormatContext *s, AVPacket *pkt) pkt->dts= pkt->pos / packet_size; pkt->stream_index = 0; - if (ret <= 0) - return AVERROR(EIO); + if (ret < 0) + return ret; return 0; } #endif @@ -206,9 +205,9 @@ static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt) pkt->pos = url_ftell(s->pb); pkt->stream_index = 0; ret = get_buffer(s->pb, pkt->data, size); - if (ret <= 0) { + if (ret < 0) { av_free_packet(pkt); - return AVERROR(EIO); + return ret; } pkt->size = ret; return ret; |