[FFmpeg-cvslog] swresample/rematrix: treat 22.2 as 5.1 (back) when mixing

Jan Ekström git at videolan.org
Tue Aug 4 00:36:38 EEST 2020


ffmpeg | branch: master | Jan Ekström <jeebjp at gmail.com> | Sat Aug  1 01:55:39 2020 +0300| [f5390a9f86d68ced52a39e00eca70d15d25accc7] | committer: Jan Ekström

swresample/rematrix: treat 22.2 as 5.1 (back) when mixing

Only this sub-set of channels actually follows the bit mask order
in the official 22.2 channel mapping. Additionally, the 5.1 channels
are there for backwards compatibility with the previous system.

This enables the utilization of 22.2 content until a proper down/up
matrix is added into swresample.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f5390a9f86d68ced52a39e00eca70d15d25accc7
---

 libswresample/rematrix.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/libswresample/rematrix.c b/libswresample/rematrix.c
index 983355ba36..d0c4a212b3 100644
--- a/libswresample/rematrix.c
+++ b/libswresample/rematrix.c
@@ -141,6 +141,16 @@ av_cold int swr_build_matrix(uint64_t in_ch_layout_param, uint64_t out_ch_layout
     )
         in_ch_layout = AV_CH_LAYOUT_STEREO;
 
+    if (in_ch_layout == AV_CH_LAYOUT_22POINT2 &&
+        out_ch_layout != AV_CH_LAYOUT_22POINT2) {
+        in_ch_layout = AV_CH_LAYOUT_5POINT1_BACK;
+        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! "
+               "Processing the input as '%s'\n",
+               buf);
+    }
+
     if(!sane_layout(in_ch_layout)){
         av_get_channel_layout_string(buf, sizeof(buf), -1, in_ch_layout_param);
         av_log(log_context, AV_LOG_ERROR, "Input channel layout '%s' is not supported\n", buf);



More information about the ffmpeg-cvslog mailing list