diff mbox series

[FFmpeg-devel] avcodec/audiotoolboxdec: Properly fill out_format

Message ID 20211231052309.42415-1-kode54@gmail.com
State New
Headers show
Series [FFmpeg-devel] avcodec/audiotoolboxdec: Properly fill out_format | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished
andriy/make_ppc success Make finished
andriy/make_fate_ppc fail Make fate failed

Commit Message

Christopher Snowhill Dec. 31, 2021, 5:23 a.m. UTC
Monterey needs mBytesPerFrame and mBytesPerPacket to be set, and I'm
surprised this didn't break any previous system versions.

Fixes bug #9564: Cannot decode xHE-AAC with audiotoolbox (aac_at) on
Mac OS Monterey. Fixes likely bug that none of the AudioToolbox
decoders work on Monterey.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
---
 libavcodec/audiotoolboxdec.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

James Almer April 24, 2022, 10:12 p.m. UTC | #1
On 12/31/2021 2:23 AM, Christopher Snowhill wrote:
> Monterey needs mBytesPerFrame and mBytesPerPacket to be set, and I'm
> surprised this didn't break any previous system versions.
> 
> Fixes bug #9564: Cannot decode xHE-AAC with audiotoolbox (aac_at) on
> Mac OS Monterey. Fixes likely bug that none of the AudioToolbox
> decoders work on Monterey.
> 
> Signed-off-by: Christopher Snowhill <kode54@gmail.com>
> ---
>   libavcodec/audiotoolboxdec.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/libavcodec/audiotoolboxdec.c b/libavcodec/audiotoolboxdec.c
> index 9939fef218..4abcb63a03 100644
> --- a/libavcodec/audiotoolboxdec.c
> +++ b/libavcodec/audiotoolboxdec.c
> @@ -370,6 +370,11 @@ static av_cold int ffat_create_decoder(AVCodecContext *avctx,
>       avctx->sample_rate = out_format.mSampleRate = in_format.mSampleRate;
>       avctx->channels = out_format.mChannelsPerFrame = in_format.mChannelsPerFrame;
>   
> +    out_format.mBytesPerFrame =
> +        out_format.mChannelsPerFrame * (out_format.mBitsPerChannel / 8);
> +    out_format.mBytesPerPacket =
> +        out_format.mBytesPerFrame * out_format.mFramesPerPacket;
> +
>       if (avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_QT)
>           in_format.mFramesPerPacket = 64;

Applied.
diff mbox series

Patch

diff --git a/libavcodec/audiotoolboxdec.c b/libavcodec/audiotoolboxdec.c
index 9939fef218..4abcb63a03 100644
--- a/libavcodec/audiotoolboxdec.c
+++ b/libavcodec/audiotoolboxdec.c
@@ -370,6 +370,11 @@  static av_cold int ffat_create_decoder(AVCodecContext *avctx,
     avctx->sample_rate = out_format.mSampleRate = in_format.mSampleRate;
     avctx->channels = out_format.mChannelsPerFrame = in_format.mChannelsPerFrame;
 
+    out_format.mBytesPerFrame =
+        out_format.mChannelsPerFrame * (out_format.mBitsPerChannel / 8);
+    out_format.mBytesPerPacket =
+        out_format.mBytesPerFrame * out_format.mFramesPerPacket;
+
     if (avctx->codec_id == AV_CODEC_ID_ADPCM_IMA_QT)
         in_format.mFramesPerPacket = 64;