summaryrefslogtreecommitdiff
path: root/libavformat/raw.c
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2009-10-02 06:40:50 +0000
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2009-10-02 06:40:50 +0000
commitc3db0bc61d83598d42a5a7bbc03377360ff81fb9 (patch)
treeb811ff4888619dbdf9569b75eceeec1042be240c /libavformat/raw.c
parent593b50cedf1df99a48772f4510689bb5df46eda5 (diff)
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/raw.c')
-rw-r--r--libavformat/raw.c17
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;