aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/decoder/plugins/FfmpegDecoderPlugin.cxx30
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;