Browse Source

bfi: Avoid divisions by zero

If a zero-length video packet is to be returned, just return
AVERROR(EAGAIN) and switch back to the audio stream.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
tags/n2.1
Martin Storsjö 12 years ago
parent
commit
9fc7184d1a
1 changed files with 4 additions and 3 deletions
  1. +4
    -3
      libavformat/bfi.c

+ 4
- 3
libavformat/bfi.c View File

@@ -140,9 +140,7 @@ static int bfi_read_packet(AVFormatContext * s, AVPacket * pkt)

pkt->pts = bfi->audio_frame;
bfi->audio_frame += ret;
}

else {
} else if (bfi->video_size > 0) {

//Tossing a video packet at the video decoder.
ret = av_get_packet(pb, pkt, bfi->video_size);
@@ -154,6 +152,9 @@ static int bfi_read_packet(AVFormatContext * s, AVPacket * pkt)

/* One less frame to read. A cursory decrement. */
bfi->nframes--;
} else {
/* Empty video packet */
ret = AVERROR(EAGAIN);
}

bfi->avflag = !bfi->avflag;


Loading…
Cancel
Save