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.
{
auto p = reinterpret_cast<float**> (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;