diff mbox series

[FFmpeg-devel,1/2] avisynth: pass audio channel layout

Message ID 20230716051246.7793-2-qyot27@gmail.com
State Accepted
Commit 1e36e1f258a72880e4c74d4af760b4371c9acd43
Headers show
Series avisynth: pass audio channel layout | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Stephen Hutchinson July 16, 2023, 5:12 a.m. UTC
---
 libavformat/avisynth.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Stephen Hutchinson July 19, 2023, 11:36 p.m. UTC | #1
On 7/16/23 1:12 AM, Stephen Hutchinson wrote:
> ---
>   libavformat/avisynth.c | 6 ++++++
>   1 file changed, 6 insertions(+)
> 
> 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;

Pushed.
diff mbox series

Patch

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;