This is added in 10.11, so we add a #define when building against older SDKs. The decoder actually supports 7.1-channel eac3, but since the parser only reports 6 channels, we end up decoding the 5.1 downmix (same as the internal decoder) for now.
Unified · Split
| @@ -2650,6 +2650,7 @@ ac3_at_decoder_deps="audiotoolbox" · 2649 unmodified lines | ||
| 2650 | 2650 | adpcm_ima_qt_at_decoder_deps="audiotoolbox" |
| 2651 | 2651 | alac_at_decoder_deps="audiotoolbox" |
| 2652 | 2652 | amr_nb_at_decoder_deps="audiotoolbox" |
| 2653 | +eac3_at_decoder_deps="audiotoolbox" | |
| 2653 | 2654 | gsm_ms_at_decoder_deps="audiotoolbox" |
| 2654 | 2655 | ilbc_at_decoder_deps="audiotoolbox" |
| 2655 | 2656 | mp1_at_decoder_deps="audiotoolbox" |
| @@ -806,6 +806,7 @@ OBJS-$(CONFIG_AC3_AT_DECODER) += audiotoolboxdec.o · 805 unmodified lines | ||
| 806 | 806 | OBJS-$(CONFIG_ADPCM_IMA_QT_AT_DECODER) += audiotoolboxdec.o |
| 807 | 807 | OBJS-$(CONFIG_ALAC_AT_DECODER) += audiotoolboxdec.o |
| 808 | 808 | OBJS-$(CONFIG_AMR_NB_AT_DECODER) += audiotoolboxdec.o |
| 809 | +OBJS-$(CONFIG_EAC3_AT_DECODER) += audiotoolboxdec.o | |
| 809 | 810 | OBJS-$(CONFIG_GSM_MS_AT_DECODER) += audiotoolboxdec.o |
| 810 | 811 | OBJS-$(CONFIG_ILBC_AT_DECODER) += audiotoolboxdec.o |
| 811 | 812 | OBJS-$(CONFIG_MP1_AT_DECODER) += audiotoolboxdec.o |
| @@ -568,6 +568,7 @@ void avcodec_register_all(void) · 567 unmodified lines | ||
| 568 | 568 | REGISTER_DECODER(ADPCM_IMA_QT_AT, adpcm_ima_qt_at); |
| 569 | 569 | REGISTER_ENCDEC (ALAC_AT, alac_at); |
| 570 | 570 | REGISTER_DECODER(AMR_NB_AT, amr_nb_at); |
| 571 | + REGISTER_DECODER(EAC3_AT, eac3_at); | |
| 571 | 572 | REGISTER_DECODER(GSM_MS_AT, gsm_ms_at); |
| 572 | 573 | REGISTER_ENCDEC (ILBC_AT, ilbc_at); |
| 573 | 574 | REGISTER_DECODER(MP1_AT, mp1_at); |
| @@ -30,6 +30,10 @@ · 29 unmodified lines | ||
| 30 | 30 | #include "libavutil/opt.h" |
| 31 | 31 | #include "libavutil/log.h" |
| 32 | 32 | |
| 33 | +#ifndef __MAC_10_11 | |
| 34 | +#define kAudioFormatEnhancedAC3 'ec-3' | |
| 35 | +#endif | |
| 36 | + | |
| 33 | 37 | typedef struct ATDecodeContext { |
| 34 | 38 | AVClass *av_class; |
| 35 | 39 | |
| @@ -58,6 +62,8 @@ static UInt32 ffat_get_format_id(enum AVCodecID codec, int profile) · 22 unmodified lines | ||
| 58 | 62 | return kAudioFormatAppleLossless; |
| 59 | 63 | case AV_CODEC_ID_AMR_NB: |
| 60 | 64 | return kAudioFormatAMR; |
| 65 | + case AV_CODEC_ID_EAC3: | |
| 66 | + return kAudioFormatEnhancedAC3; | |
| 61 | 67 | case AV_CODEC_ID_GSM_MS: |
| 62 | 68 | return kAudioFormatMicrosoftGSM; |
| 63 | 69 | case AV_CODEC_ID_ILBC: |
| @@ -512,6 +518,7 @@ FFAT_DEC(ac3, AV_CODEC_ID_AC3) · 448 unmodified lines | ||
| 512 | 518 | FFAT_DEC(adpcm_ima_qt, AV_CODEC_ID_ADPCM_IMA_QT) |
| 513 | 519 | FFAT_DEC(alac, AV_CODEC_ID_ALAC) |
| 514 | 520 | FFAT_DEC(amr_nb, AV_CODEC_ID_AMR_NB) |
| 521 | +FFAT_DEC(eac3, AV_CODEC_ID_EAC3) | |
| 515 | 522 | FFAT_DEC(gsm_ms, AV_CODEC_ID_GSM_MS) |
| 516 | 523 | FFAT_DEC(ilbc, AV_CODEC_ID_ILBC) |
| 517 | 524 | FFAT_DEC(mp1, AV_CODEC_ID_MP1) |