[FFmpeg-devel] avcodec/audiotoolboxdec: Fix decoding 24 Bit ALAC

Submitted by Davis on July 8, 2019, 4:35 p.m.

Details

Message ID 20190708163521.20068-1-macdavis1992@gmail.com
State New
Headers show

Commit Message

Davis July 8, 2019, 4:35 p.m.
"avctx->bits_per_raw_sample" always returns 0.
Tested with 24 Bit ALAC. The result is bit-perfect.
Fix #7287.
---
 libavcodec/audiotoolboxdec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

mypopy@gmail.com July 9, 2019, 9:01 a.m.
On Tue, Jul 9, 2019 at 12:37 AM Davis <macdavis1992@gmail.com> wrote:
>
> "avctx->bits_per_raw_sample" always returns 0.
> Tested with 24 Bit ALAC. The result is bit-perfect.
> Fix #7287.
> ---
>  libavcodec/audiotoolboxdec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavcodec/audiotoolboxdec.c b/libavcodec/audiotoolboxdec.c
> index 5c0a9de8f6..95bf9acc42 100644
> --- a/libavcodec/audiotoolboxdec.c
> +++ b/libavcodec/audiotoolboxdec.c
> @@ -302,7 +302,7 @@ static av_cold int ffat_create_decoder(AVCodecContext *avctx, AVPacket *pkt)
>      OSStatus status;
>      int i;
>
> -    enum AVSampleFormat sample_fmt = (avctx->bits_per_raw_sample == 32) ?
> +    enum AVSampleFormat sample_fmt = (avctx->bits_per_coded_sample > 16) ?
LGTM
>                                       AV_SAMPLE_FMT_S32 : AV_SAMPLE_FMT_S16;
>
>      AudioStreamBasicDescription in_format = {
> --

Patch hide | download patch | download mbox

diff --git a/libavcodec/audiotoolboxdec.c b/libavcodec/audiotoolboxdec.c
index 5c0a9de8f6..95bf9acc42 100644
--- a/libavcodec/audiotoolboxdec.c
+++ b/libavcodec/audiotoolboxdec.c
@@ -302,7 +302,7 @@  static av_cold int ffat_create_decoder(AVCodecContext *avctx, AVPacket *pkt)
     OSStatus status;
     int i;
 
-    enum AVSampleFormat sample_fmt = (avctx->bits_per_raw_sample == 32) ?
+    enum AVSampleFormat sample_fmt = (avctx->bits_per_coded_sample > 16) ?
                                      AV_SAMPLE_FMT_S32 : AV_SAMPLE_FMT_S16;
 
     AudioStreamBasicDescription in_format = {