History

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.

Rodger Combs committed 10 years ago

Commit b4daa2c1 parent 1b9e90e4 files · +10 −0Browse files

Unified · Split

4 files
  1. configure +1 −0
  2. libavcodec/Makefile +1 −0
  3. libavcodec/allcodecs.c +1 −0
  4. libavcodec/audiotoolboxdec.c +7 −0
configure+1−0
@@ -2650,6 +2650,7 @@ ac3_at_decoder_deps="audiotoolbox" · 2649 unmodified lines
2650adpcm_ima_qt_at_decoder_deps="audiotoolbox"2650adpcm_ima_qt_at_decoder_deps="audiotoolbox"
2651alac_at_decoder_deps="audiotoolbox"2651alac_at_decoder_deps="audiotoolbox"
2652amr_nb_at_decoder_deps="audiotoolbox"2652amr_nb_at_decoder_deps="audiotoolbox"
2653eac3_at_decoder_deps="audiotoolbox"
2653gsm_ms_at_decoder_deps="audiotoolbox"2654gsm_ms_at_decoder_deps="audiotoolbox"
2654ilbc_at_decoder_deps="audiotoolbox"2655ilbc_at_decoder_deps="audiotoolbox"
2655mp1_at_decoder_deps="audiotoolbox"2656mp1_at_decoder_deps="audiotoolbox"
libavcodec/Makefile+1−0
@@ -806,6 +806,7 @@ OBJS-$(CONFIG_AC3_AT_DECODER) += audiotoolboxdec.o · 805 unmodified lines
806OBJS-$(CONFIG_ADPCM_IMA_QT_AT_DECODER) += audiotoolboxdec.o806OBJS-$(CONFIG_ADPCM_IMA_QT_AT_DECODER) += audiotoolboxdec.o
807OBJS-$(CONFIG_ALAC_AT_DECODER) += audiotoolboxdec.o807OBJS-$(CONFIG_ALAC_AT_DECODER) += audiotoolboxdec.o
808OBJS-$(CONFIG_AMR_NB_AT_DECODER) += audiotoolboxdec.o808OBJS-$(CONFIG_AMR_NB_AT_DECODER) += audiotoolboxdec.o
809OBJS-$(CONFIG_EAC3_AT_DECODER) += audiotoolboxdec.o
809OBJS-$(CONFIG_GSM_MS_AT_DECODER) += audiotoolboxdec.o810OBJS-$(CONFIG_GSM_MS_AT_DECODER) += audiotoolboxdec.o
810OBJS-$(CONFIG_ILBC_AT_DECODER) += audiotoolboxdec.o811OBJS-$(CONFIG_ILBC_AT_DECODER) += audiotoolboxdec.o
811OBJS-$(CONFIG_MP1_AT_DECODER) += audiotoolboxdec.o812OBJS-$(CONFIG_MP1_AT_DECODER) += audiotoolboxdec.o
libavcodec/allcodecs.c+1−0
@@ -568,6 +568,7 @@ void avcodec_register_all(void) · 567 unmodified lines
568 REGISTER_DECODER(ADPCM_IMA_QT_AT, adpcm_ima_qt_at);568 REGISTER_DECODER(ADPCM_IMA_QT_AT, adpcm_ima_qt_at);
569 REGISTER_ENCDEC (ALAC_AT, alac_at);569 REGISTER_ENCDEC (ALAC_AT, alac_at);
570 REGISTER_DECODER(AMR_NB_AT, amr_nb_at);570 REGISTER_DECODER(AMR_NB_AT, amr_nb_at);
571 REGISTER_DECODER(EAC3_AT, eac3_at);
571 REGISTER_DECODER(GSM_MS_AT, gsm_ms_at);572 REGISTER_DECODER(GSM_MS_AT, gsm_ms_at);
572 REGISTER_ENCDEC (ILBC_AT, ilbc_at);573 REGISTER_ENCDEC (ILBC_AT, ilbc_at);
573 REGISTER_DECODER(MP1_AT, mp1_at);574 REGISTER_DECODER(MP1_AT, mp1_at);
libavcodec/audiotoolboxdec.c+7−0
@@ -30,6 +30,10 @@ · 29 unmodified lines
30#include "libavutil/opt.h"30#include "libavutil/opt.h"
31#include "libavutil/log.h"31#include "libavutil/log.h"
32 32
33#ifndef __MAC_10_11
34#define kAudioFormatEnhancedAC3 'ec-3'
35#endif
36
33typedef struct ATDecodeContext {37typedef struct ATDecodeContext {
34 AVClass *av_class;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 return kAudioFormatAppleLossless;62 return kAudioFormatAppleLossless;
59 case AV_CODEC_ID_AMR_NB:63 case AV_CODEC_ID_AMR_NB:
60 return kAudioFormatAMR;64 return kAudioFormatAMR;
65 case AV_CODEC_ID_EAC3:
66 return kAudioFormatEnhancedAC3;
61 case AV_CODEC_ID_GSM_MS:67 case AV_CODEC_ID_GSM_MS:
62 return kAudioFormatMicrosoftGSM;68 return kAudioFormatMicrosoftGSM;
63 case AV_CODEC_ID_ILBC:69 case AV_CODEC_ID_ILBC:
@@ -512,6 +518,7 @@ FFAT_DEC(ac3, AV_CODEC_ID_AC3) · 448 unmodified lines
512FFAT_DEC(adpcm_ima_qt, AV_CODEC_ID_ADPCM_IMA_QT)518FFAT_DEC(adpcm_ima_qt, AV_CODEC_ID_ADPCM_IMA_QT)
513FFAT_DEC(alac, AV_CODEC_ID_ALAC)519FFAT_DEC(alac, AV_CODEC_ID_ALAC)
514FFAT_DEC(amr_nb, AV_CODEC_ID_AMR_NB)520FFAT_DEC(amr_nb, AV_CODEC_ID_AMR_NB)
521FFAT_DEC(eac3, AV_CODEC_ID_EAC3)
515FFAT_DEC(gsm_ms, AV_CODEC_ID_GSM_MS)522FFAT_DEC(gsm_ms, AV_CODEC_ID_GSM_MS)
516FFAT_DEC(ilbc, AV_CODEC_ID_ILBC)523FFAT_DEC(ilbc, AV_CODEC_ID_ILBC)
517FFAT_DEC(mp1, AV_CODEC_ID_MP1)524FFAT_DEC(mp1, AV_CODEC_ID_MP1)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t