From 4433c3f1ee358933c28caaa2e7884c30487d6dfe Mon Sep 17 00:00:00 2001
From: dork <62394594+dorian-K@users.noreply.github.com>
Date: Wed, 24 Apr 2024 22:04:30 +0200
Subject: [PATCH] Backport 'Fix missing audio channels from Sony camera'

---
 transcode.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/transcode.c b/transcode.c
index f5b9f67..1f33526 100644
--- a/transcode.c
+++ b/transcode.c
@@ -66,17 +66,20 @@ static void setup_input_stream(char *stream, AVFormatContext *demux,
 	else if (type == AVMEDIA_TYPE_AUDIO)
 	{
 		// Set channel layout to default if not set
-		if(decs[idx]->ch_layout.order == AV_CHANNEL_ORDER_UNSPEC)
+		if(!decs[idx]->channel_layout)
+			decs[idx]->channel_layout = av_get_default_channel_layout(decs[idx]->channels);
+		/*if(decs[idx]->ch_layout.order == AV_CHANNEL_ORDER_UNSPEC)
 			av_channel_layout_default(&decs[idx]->ch_layout, decs[idx]->ch_layout.nb_channels);
 
 		char ch_layout[64];
 		err = av_channel_layout_describe(&decs[idx]->ch_layout, ch_layout, sizeof(ch_layout));
 		if (err < 0)
-			job_failed("Could not describe channel layout: %s", av_err2str(err));
+			job_failed("Could not describe channel layout: %s", av_err2str(err));*/
+		
 
 		p = mprintf("time_base=%d/%d:sample_rate=%d:sample_fmt=%d:channel_layout=%s:channels=%d",
 			demux->streams[idx]->time_base.num, demux->streams[idx]->time_base.den,
-			decs[idx]->sample_rate, decs[idx]->sample_fmt, ch_layout,
+			decs[idx]->sample_rate, decs[idx]->sample_fmt, decs[idx]->channel_layout,
 			decs[idx]->channels);
 		err = avfilter_graph_create_filter(&srcs[idx],
 				avfilter_get_by_name("abuffer"), 0, p, 0, fg);
-- 
GitLab