From 5f7a045d3898332149ecbe3dba7b14ba030da463 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 11 May 2023 03:24:57 +0200 Subject: [PATCH] Remove incorrect silencing (#2526). On switching to the new FFmpeg send/receive API in e29ce33a36c2e20444d57196defc86d5072bce81 the channels variable in deinterleave_audio() was switched from stream channels to frame channels. I'm not sure if this is right, but it does mean that audio has `channels` channels, so calling make_silent() up to the stream channel count is clearly wrong if the stream has more channels than the frame. --- src/lib/ffmpeg_decoder.cc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc index 85f79b513..9f505ea43 100644 --- a/src/lib/ffmpeg_decoder.cc +++ b/src/lib/ffmpeg_decoder.cc @@ -361,13 +361,9 @@ deinterleave_audio(shared_ptr stream, AVFrame* frame) { auto p = reinterpret_cast (frame->data); DCPOMATIC_ASSERT(channels <= stream->channels()); - /* Sometimes there aren't as many channels in the frame as in the stream */ for (int i = 0; i < channels; ++i) { memcpy (data[i], p[i], frames * sizeof(float)); } - for (int i = channels; i < stream->channels(); ++i) { - audio->make_silent (i); - } } break; -- 2.30.2