[FFmpeg-devel] [PATCH] swresample/rematrix: handle 22.2 as a 9 channel layout

Jan Ekström jeebjp at gmail.com
Thu Aug 13 01:26:58 EEST 2020


This is as far as 22.2 follows the same channel order as
WaveFormatExtensible's channel mask (and the AV_CH_* defines).

After LFE2 the side channels would follow, but that offset of
one stops us from utilizing them without further tweaks.

This change was verified by using swresample to downmix to 5.1,
and then feeding that to WASAPI.
---
 libswresample/rematrix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libswresample/rematrix.c b/libswresample/rematrix.c
index d0c4a212b3..94b3de88f6 100644
--- a/libswresample/rematrix.c
+++ b/libswresample/rematrix.c
@@ -143,7 +143,7 @@ av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout
 
     if (in_ch_layout == AV_CH_LAYOUT_22POINT2 &&
         out_ch_layout != AV_CH_LAYOUT_22POINT2) {
-        in_ch_layout = AV_CH_LAYOUT_5POINT1_BACK;
+        in_ch_layout = (AV_CH_LAYOUT_7POINT1_WIDE_BACK|AV_CH_BACK_CENTER);
         av_get_channel_layout_string(buf, sizeof(buf), -1, in_ch_layout);
         av_log(log_context, AV_LOG_WARNING,
                "Full-on remixing from 22.2 has not yet been implemented! "
-- 
2.26.2



More information about the ffmpeg-devel mailing list