Commit b4daa2c4 authored by Rodger Combs's avatar Rodger Combs

lavc/audiotoolboxdec: add eac3 decoder

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.
parent 1b9e90ee
...@@ -2650,6 +2650,7 @@ ac3_at_decoder_deps="audiotoolbox" ...@@ -2650,6 +2650,7 @@ ac3_at_decoder_deps="audiotoolbox"
adpcm_ima_qt_at_decoder_deps="audiotoolbox" adpcm_ima_qt_at_decoder_deps="audiotoolbox"
alac_at_decoder_deps="audiotoolbox" alac_at_decoder_deps="audiotoolbox"
amr_nb_at_decoder_deps="audiotoolbox" amr_nb_at_decoder_deps="audiotoolbox"
eac3_at_decoder_deps="audiotoolbox"
gsm_ms_at_decoder_deps="audiotoolbox" gsm_ms_at_decoder_deps="audiotoolbox"
ilbc_at_decoder_deps="audiotoolbox" ilbc_at_decoder_deps="audiotoolbox"
mp1_at_decoder_deps="audiotoolbox" mp1_at_decoder_deps="audiotoolbox"
......
...@@ -806,6 +806,7 @@ OBJS-$(CONFIG_AC3_AT_DECODER) += audiotoolboxdec.o ...@@ -806,6 +806,7 @@ OBJS-$(CONFIG_AC3_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_ADPCM_IMA_QT_AT_DECODER) += audiotoolboxdec.o OBJS-$(CONFIG_ADPCM_IMA_QT_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_ALAC_AT_DECODER) += audiotoolboxdec.o OBJS-$(CONFIG_ALAC_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_AMR_NB_AT_DECODER) += audiotoolboxdec.o OBJS-$(CONFIG_AMR_NB_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_EAC3_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_GSM_MS_AT_DECODER) += audiotoolboxdec.o OBJS-$(CONFIG_GSM_MS_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_ILBC_AT_DECODER) += audiotoolboxdec.o OBJS-$(CONFIG_ILBC_AT_DECODER) += audiotoolboxdec.o
OBJS-$(CONFIG_MP1_AT_DECODER) += audiotoolboxdec.o OBJS-$(CONFIG_MP1_AT_DECODER) += audiotoolboxdec.o
......
...@@ -568,6 +568,7 @@ void avcodec_register_all(void) ...@@ -568,6 +568,7 @@ void avcodec_register_all(void)
REGISTER_DECODER(ADPCM_IMA_QT_AT, adpcm_ima_qt_at); REGISTER_DECODER(ADPCM_IMA_QT_AT, adpcm_ima_qt_at);
REGISTER_ENCDEC (ALAC_AT, alac_at); REGISTER_ENCDEC (ALAC_AT, alac_at);
REGISTER_DECODER(AMR_NB_AT, amr_nb_at); REGISTER_DECODER(AMR_NB_AT, amr_nb_at);
REGISTER_DECODER(EAC3_AT, eac3_at);
REGISTER_DECODER(GSM_MS_AT, gsm_ms_at); REGISTER_DECODER(GSM_MS_AT, gsm_ms_at);
REGISTER_ENCDEC (ILBC_AT, ilbc_at); REGISTER_ENCDEC (ILBC_AT, ilbc_at);
REGISTER_DECODER(MP1_AT, mp1_at); REGISTER_DECODER(MP1_AT, mp1_at);
......
...@@ -30,6 +30,10 @@ ...@@ -30,6 +30,10 @@
#include "libavutil/opt.h" #include "libavutil/opt.h"
#include "libavutil/log.h" #include "libavutil/log.h"
#ifndef __MAC_10_11
#define kAudioFormatEnhancedAC3 'ec-3'
#endif
typedef struct ATDecodeContext { typedef struct ATDecodeContext {
AVClass *av_class; AVClass *av_class;
...@@ -58,6 +62,8 @@ static UInt32 ffat_get_format_id(enum AVCodecID codec, int profile) ...@@ -58,6 +62,8 @@ static UInt32 ffat_get_format_id(enum AVCodecID codec, int profile)
return kAudioFormatAppleLossless; return kAudioFormatAppleLossless;
case AV_CODEC_ID_AMR_NB: case AV_CODEC_ID_AMR_NB:
return kAudioFormatAMR; return kAudioFormatAMR;
case AV_CODEC_ID_EAC3:
return kAudioFormatEnhancedAC3;
case AV_CODEC_ID_GSM_MS: case AV_CODEC_ID_GSM_MS:
return kAudioFormatMicrosoftGSM; return kAudioFormatMicrosoftGSM;
case AV_CODEC_ID_ILBC: case AV_CODEC_ID_ILBC:
...@@ -512,6 +518,7 @@ FFAT_DEC(ac3, AV_CODEC_ID_AC3) ...@@ -512,6 +518,7 @@ FFAT_DEC(ac3, AV_CODEC_ID_AC3)
FFAT_DEC(adpcm_ima_qt, AV_CODEC_ID_ADPCM_IMA_QT) FFAT_DEC(adpcm_ima_qt, AV_CODEC_ID_ADPCM_IMA_QT)
FFAT_DEC(alac, AV_CODEC_ID_ALAC) FFAT_DEC(alac, AV_CODEC_ID_ALAC)
FFAT_DEC(amr_nb, AV_CODEC_ID_AMR_NB) FFAT_DEC(amr_nb, AV_CODEC_ID_AMR_NB)
FFAT_DEC(eac3, AV_CODEC_ID_EAC3)
FFAT_DEC(gsm_ms, AV_CODEC_ID_GSM_MS) FFAT_DEC(gsm_ms, AV_CODEC_ID_GSM_MS)
FFAT_DEC(ilbc, AV_CODEC_ID_ILBC) FFAT_DEC(ilbc, AV_CODEC_ID_ILBC)
FFAT_DEC(mp1, AV_CODEC_ID_MP1) FFAT_DEC(mp1, AV_CODEC_ID_MP1)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment