diff options
Diffstat (limited to 'multimedia/gst-plugins-bad/libfdk-aac-2.0.0-1.patch')
-rw-r--r-- | multimedia/gst-plugins-bad/libfdk-aac-2.0.0-1.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/multimedia/gst-plugins-bad/libfdk-aac-2.0.0-1.patch b/multimedia/gst-plugins-bad/libfdk-aac-2.0.0-1.patch new file mode 100644 index 0000000000..1d820af3b9 --- /dev/null +++ b/multimedia/gst-plugins-bad/libfdk-aac-2.0.0-1.patch @@ -0,0 +1,47 @@ +From 19d34f6b5e1633d5ec4bb2832c58470f0c829cab Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Wed, 5 Dec 2018 10:10:39 +0100 +Subject: [PATCH] fdkaacdec: Use WAV channel mapping instead of interleave + setting + +The latter is going away in libfdk-aac 2.0.0. Instead, MPEG-style output +is always non-interleaved and WAV-style output is always interleaved. +Earlier libfdk-aac also defaults interleaving accordingly. + +Since our reordering looks at the associated PCE indices instead of the +actual channel order, we're agnostic to the mapping. + +For https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/825 +--- + ext/fdkaac/gstfdkaacdec.c | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +diff --git a/ext/fdkaac/gstfdkaacdec.c b/ext/fdkaac/gstfdkaacdec.c +index c27183752..f5136b334 100644 +--- a/ext/fdkaac/gstfdkaacdec.c ++++ b/ext/fdkaac/gstfdkaacdec.c +@@ -151,17 +151,13 @@ gst_fdkaacdec_set_format (GstAudioDecoder * dec, GstCaps * caps) + gst_buffer_unref (codec_data); + } + ++ /* Choose WAV channel mapping to get interleaving even with libfdk-aac 2.0.0 ++ * The pChannelIndices retain the indices from the standard MPEG mapping so ++ * we're agnostic to the actual order. */ + if ((err = + aacDecoder_SetParam (self->dec, AAC_PCM_OUTPUT_CHANNEL_MAPPING, +- 0)) != AAC_DEC_OK) { +- GST_ERROR_OBJECT (self, "Failed to set output channel mapping: %d", err); +- return FALSE; +- } +- +- if ((err = +- aacDecoder_SetParam (self->dec, AAC_PCM_OUTPUT_INTERLEAVED, + 1)) != AAC_DEC_OK) { +- GST_ERROR_OBJECT (self, "Failed to set interleaved output: %d", err); ++ GST_ERROR_OBJECT (self, "Failed to set output channel mapping: %d", err); + return FALSE; + } + +-- +2.18.1 + |