diff options
author | James Almer <jamrial@gmail.com> | 2016-11-05 06:04:27 +0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2016-11-05 06:04:27 +0300 |
commit | 55061bbc558e22db04a40e4efed46d9c15b124b6 (patch) | |
tree | 7ee2cc06946f4d8c6417b1dfc9bed302959f8695 /ffmpeg.c | |
parent | 51e329918dc1826de7451541cb15bef3b9bfe138 (diff) |
ffmpeg: don't overwrite av_bsf_receive_packet return value before checking it
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'ffmpeg.c')
-rw-r--r-- | ffmpeg.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -800,6 +800,12 @@ static void output_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost) while (idx) { /* get a packet from the previous filter up the chain */ ret = av_bsf_receive_packet(ost->bsf_ctx[idx - 1], pkt); + if (ret == AVERROR(EAGAIN)) { + ret = 0; + idx--; + continue; + } else if (ret < 0) + goto finish; /* HACK! - aac_adtstoasc updates extradata after filtering the first frame when * the api states this shouldn't happen after init(). Propagate it here to the * muxer and to the next filters in the chain to workaround this. @@ -811,12 +817,6 @@ static void output_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost) goto finish; ost->bsf_extradata_updated[idx - 1] |= 1; } - if (ret == AVERROR(EAGAIN)) { - ret = 0; - idx--; - continue; - } else if (ret < 0) - goto finish; /* send it to the next filter down the chain or to the muxer */ if (idx < ost->nb_bitstream_filters) { |