mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avformat/3dostr: Return directly after having read packet
Avoids an avio_skip(s->pb, 0). Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
becfdaaa09
commit
edcd7c735c
@ -110,15 +110,12 @@ static int threedostr_read_header(AVFormatContext *s)
|
||||
|
||||
static int threedostr_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||
{
|
||||
unsigned chunk, size, found_ssmp = 0;
|
||||
unsigned chunk, size;
|
||||
AVStream *st = s->streams[0];
|
||||
int64_t pos;
|
||||
int ret = 0;
|
||||
|
||||
while (!found_ssmp) {
|
||||
if (avio_feof(s->pb))
|
||||
return AVERROR_EOF;
|
||||
|
||||
while (!avio_feof(s->pb)) {
|
||||
pos = avio_tell(s->pb);
|
||||
chunk = avio_rl32(s->pb);
|
||||
size = avio_rb32(s->pb);
|
||||
@ -143,9 +140,7 @@ static int threedostr_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||
pkt->pos = pos;
|
||||
pkt->stream_index = 0;
|
||||
pkt->duration = size / st->codecpar->channels;
|
||||
size = 0;
|
||||
found_ssmp = 1;
|
||||
break;
|
||||
return ret;
|
||||
default:
|
||||
av_log(s, AV_LOG_DEBUG, "skipping unknown chunk: %X\n", chunk);
|
||||
break;
|
||||
@ -154,7 +149,7 @@ static int threedostr_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||
avio_skip(s->pb, size);
|
||||
}
|
||||
|
||||
return ret;
|
||||
return AVERROR_EOF;
|
||||
}
|
||||
|
||||
AVInputFormat ff_threedostr_demuxer = {
|
||||
|
Loading…
Reference in New Issue
Block a user