[FFmpeg-devel] [PATCH 02/11] avformat/flacdec: Also set channels when setting channel_layout

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Mon Aug 30 00:23:23 EEST 2021


This brings the FLAC demuxer in line with all the other demuxers.
Furthermore, if it is not done and the FLAC decoder is disabled,
the FLAC parser will overwrite the channel layout with the standard
channel layout for that number of channels.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
One could actually set channels generically from channel_layout
for all demuxers.

 libavformat/flacdec.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c
index 2060b48c69..d52434d2f9 100644
--- a/libavformat/flacdec.c
+++ b/libavformat/flacdec.c
@@ -19,6 +19,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/channel_layout.h"
 #include "libavcodec/flac.h"
 #include "avformat.h"
 #include "flac_picture.h"
@@ -192,6 +193,7 @@ static int flac_read_header(AVFormatContext *s)
                                "Invalid value of WAVEFORMATEXTENSIBLE_CHANNEL_MASK\n");
                     } else {
                         st->codecpar->channel_layout = mask;
+                        st->codecpar->channels       = av_get_channel_layout_nb_channels(mask);
                         av_dict_set(&s->metadata, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", NULL, 0);
                     }
                 }
-- 
2.30.2



More information about the ffmpeg-devel mailing list