diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/decoder/plugins/FfmpegDecoderPlugin.cxx | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/decoder/plugins/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx index 11b5e85f0..633be1565 100644 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx @@ -335,24 +335,24 @@ ffmpeg_send_packet(Decoder &decoder, InputStream &is, break; } - uint8_t *output_buffer = nullptr; - int audio_size = 0; - if (got_frame) { - audio_size = copy_interleave_frame(codec_context, - frame, - &output_buffer, - buffer); - if (audio_size < 0) { - /* this must be a serious error, - e.g. OOM */ - LogFfmpegError(audio_size); - return DecoderCommand::STOP; - } - } - packet2.data += len; packet2.size -= len; + if (!got_frame) + continue; + + uint8_t *output_buffer = nullptr; + int audio_size = + copy_interleave_frame(codec_context, frame, + &output_buffer, + buffer); + if (audio_size < 0) { + /* this must be a serious error, + e.g. OOM */ + LogFfmpegError(audio_size); + return DecoderCommand::STOP; + } + if (audio_size <= 0) continue; |