summaryrefslogtreecommitdiff
path: root/libavformat/avisynth.c
diff options
context:
space:
mode:
authorStephen Hutchinson <qyot27@gmail.com>2023-06-11 20:21:41 -0400
committerStephen Hutchinson <qyot27@gmail.com>2023-07-19 19:33:20 -0400
commit1e36e1f258a72880e4c74d4af760b4371c9acd43 (patch)
treee020425a4f504747ebaad8d0fbb609d909997408 /libavformat/avisynth.c
parent72390c7d809fd636497ba1e3552930c0938c6a44 (diff)
avisynth: pass audio channel layout
Signed-off-by: Stephen Hutchinson <qyot27@gmail.com>
Diffstat (limited to 'libavformat/avisynth.c')
-rw-r--r--libavformat/avisynth.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c
index b426ac343e..027e8c63f6 100644
--- a/libavformat/avisynth.c
+++ b/libavformat/avisynth.c
@@ -62,6 +62,7 @@ typedef struct AviSynthLibrary {
AVSC_DECLARE_FUNC(avs_create_script_environment);
AVSC_DECLARE_FUNC(avs_delete_script_environment);
AVSC_DECLARE_FUNC(avs_get_audio);
+ AVSC_DECLARE_FUNC(avs_get_channel_mask);
AVSC_DECLARE_FUNC(avs_get_error);
AVSC_DECLARE_FUNC(avs_get_frame);
AVSC_DECLARE_FUNC(avs_get_version);
@@ -157,6 +158,7 @@ static av_cold int avisynth_load_library(void)
LOAD_AVS_FUNC(avs_create_script_environment, 0);
LOAD_AVS_FUNC(avs_delete_script_environment, 0);
LOAD_AVS_FUNC(avs_get_audio, 0);
+ LOAD_AVS_FUNC(avs_get_channel_mask, 1);
LOAD_AVS_FUNC(avs_get_error, 1); // New to AviSynth 2.6
LOAD_AVS_FUNC(avs_get_frame, 0);
LOAD_AVS_FUNC(avs_get_version, 0);
@@ -793,6 +795,10 @@ static int avisynth_create_stream_audio(AVFormatContext *s, AVStream *st)
st->duration = avs->vi->num_audio_samples;
avpriv_set_pts_info(st, 64, 1, avs->vi->audio_samples_per_second);
+ if (avs_library.avs_get_version(avs->clip) >= 10)
+ av_channel_layout_from_mask(&st->codecpar->ch_layout,
+ avs_library.avs_get_channel_mask(avs->vi));
+
switch (avs->vi->sample_type) {
case AVS_SAMPLE_INT8:
st->codecpar->codec_id = AV_CODEC_ID_PCM_U8;