mirror of https://git.ffmpeg.org/ffmpeg.git
lavf/dv: Do not return EIO for every error (like EOF).
Fixes ticket #4818. Reviewed-by: Ronald S. Bultje Reviewed-by: Paul B Mahol
This commit is contained in:
parent
9dbc50b4cd
commit
3eae98c1ac
|
@ -553,12 +553,17 @@ static int dv_read_packet(AVFormatContext *s, AVPacket *pkt)
|
|||
size = avpriv_dv_get_packet(c->dv_demux, pkt);
|
||||
|
||||
if (size < 0) {
|
||||
int ret;
|
||||
int64_t pos = avio_tell(s->pb);
|
||||
if (!c->dv_demux->sys)
|
||||
return AVERROR(EIO);
|
||||
size = c->dv_demux->sys->frame_size;
|
||||
if (avio_read(s->pb, c->buf, size) <= 0)
|
||||
ret = avio_read(s->pb, c->buf, size);
|
||||
if (ret < 0) {
|
||||
return ret;
|
||||
} else if (ret == 0) {
|
||||
return AVERROR(EIO);
|
||||
}
|
||||
|
||||
size = avpriv_dv_produce_packet(c->dv_demux, pkt, c->buf, size, pos);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue