diff --git a/audio/alsa-plugins/files/patch-a52_pcm__a52.c b/audio/alsa-plugins/files/patch-a52_pcm__a52.c new file mode 100644 index 000000000000..84b2a5a57293 --- /dev/null +++ b/audio/alsa-plugins/files/patch-a52_pcm__a52.c @@ -0,0 +1,25 @@ +--- a52/pcm_a52.c.orig 2024-06-10 09:18:39 UTC ++++ a52/pcm_a52.c +@@ -1202,7 +1202,22 @@ SND_PCM_PLUGIN_DEFINE_FUNC(a52) + rec->io.flags = SND_PCM_IOPLUG_FLAG_BOUNDARY_WA; + #endif + #ifdef USE_AVCODEC_FRAME ++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(61, 13, 100) ++ { ++ const enum AVSampleFormat *sample_fmts = NULL; ++ err = avcodec_get_supported_config(NULL, rec->codec, ++ AV_CODEC_CONFIG_SAMPLE_FORMAT, ++ 0, (const void **)&sample_fmts, ++ NULL); ++ if (err < 0 || !sample_fmts) { ++ err = -EINVAL; ++ goto error; ++ } ++ rec->av_format = sample_fmts[0]; ++ } ++#else + rec->av_format = rec->codec->sample_fmts[0]; ++#endif + rec->is_planar = av_sample_fmt_is_planar(rec->av_format); + #else + rec->av_format = AV_SAMPLE_FMT_S16;