diff --git a/src/media/media_decoder.cpp b/src/media/media_decoder.cpp index 1f1a8366d942cace95ac62da9174b05cd68be264..f47bd17592ca7dbaa11ca9f1fdbb03f7797d12d4 100644 --- a/src/media/media_decoder.cpp +++ b/src/media/media_decoder.cpp @@ -338,6 +338,10 @@ MediaDecoder::decode(const AudioFrame& decodedFrame) if (frameFinished) { av_packet_unref(&inpacket); + // channel layout is needed if frame will be resampled + if (!frame->channel_layout) + frame->channel_layout = av_get_default_channel_layout(frame->channels); + auto packetTimestamp = frame->pts; // NOTE don't use clock to rescale audio pts, it may create artifacts frame->pts = av_rescale_q_rnd(frame->pts, avStream_->time_base, decoderCtx_->time_base,