Commit a337b36b authored by Aurelien Jacobs's avatar Aurelien Jacobs Committed by Rostislav Pehlivanov

aptx: implement the aptX bluetooth codec

The encoder was reverse engineered from binary library and from
EP0398973B1 patent (long expired).
The decoder was simply deduced from the encoder.
parent 81c021c6
...@@ -993,6 +993,8 @@ following image formats are supported: ...@@ -993,6 +993,8 @@ following image formats are supported:
@item Amazing Studio PAF Audio @tab @tab X @item Amazing Studio PAF Audio @tab @tab X
@item Apple lossless audio @tab X @tab X @item Apple lossless audio @tab X @tab X
@tab QuickTime fourcc 'alac' @tab QuickTime fourcc 'alac'
@item aptX @tab X @tab X
@tab Used in Bluetooth A2DP
@item ATRAC1 @tab @tab X @item ATRAC1 @tab @tab X
@item ATRAC3 @tab @tab X @item ATRAC3 @tab @tab X
@item ATRAC3+ @tab @tab X @item ATRAC3+ @tab @tab X
......
...@@ -188,6 +188,8 @@ OBJS-$(CONFIG_AMV_ENCODER) += mjpegenc.o mjpegenc_common.o \ ...@@ -188,6 +188,8 @@ OBJS-$(CONFIG_AMV_ENCODER) += mjpegenc.o mjpegenc_common.o \
OBJS-$(CONFIG_ANM_DECODER) += anm.o OBJS-$(CONFIG_ANM_DECODER) += anm.o
OBJS-$(CONFIG_ANSI_DECODER) += ansi.o cga_data.o OBJS-$(CONFIG_ANSI_DECODER) += ansi.o cga_data.o
OBJS-$(CONFIG_APE_DECODER) += apedec.o OBJS-$(CONFIG_APE_DECODER) += apedec.o
OBJS-$(CONFIG_APTX_DECODER) += aptx.o
OBJS-$(CONFIG_APTX_ENCODER) += aptx.o
OBJS-$(CONFIG_APNG_DECODER) += png.o pngdec.o pngdsp.o OBJS-$(CONFIG_APNG_DECODER) += png.o pngdec.o pngdsp.o
OBJS-$(CONFIG_APNG_ENCODER) += png.o pngenc.o OBJS-$(CONFIG_APNG_ENCODER) += png.o pngenc.o
OBJS-$(CONFIG_SSA_DECODER) += assdec.o ass.o OBJS-$(CONFIG_SSA_DECODER) += assdec.o ass.o
......
...@@ -406,6 +406,7 @@ static void register_all(void) ...@@ -406,6 +406,7 @@ static void register_all(void)
REGISTER_DECODER(AMRNB, amrnb); REGISTER_DECODER(AMRNB, amrnb);
REGISTER_DECODER(AMRWB, amrwb); REGISTER_DECODER(AMRWB, amrwb);
REGISTER_DECODER(APE, ape); REGISTER_DECODER(APE, ape);
REGISTER_ENCDEC (APTX, aptx);
REGISTER_DECODER(ATRAC1, atrac1); REGISTER_DECODER(ATRAC1, atrac1);
REGISTER_DECODER(ATRAC3, atrac3); REGISTER_DECODER(ATRAC3, atrac3);
REGISTER_DECODER(ATRAC3AL, atrac3al); REGISTER_DECODER(ATRAC3AL, atrac3al);
......
This diff is collapsed.
...@@ -632,6 +632,7 @@ enum AVCodecID { ...@@ -632,6 +632,7 @@ enum AVCodecID {
AV_CODEC_ID_ATRAC3AL, AV_CODEC_ID_ATRAC3AL,
AV_CODEC_ID_ATRAC3PAL, AV_CODEC_ID_ATRAC3PAL,
AV_CODEC_ID_DOLBY_E, AV_CODEC_ID_DOLBY_E,
AV_CODEC_ID_APTX,
/* subtitle codecs */ /* subtitle codecs */
AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs. AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs.
......
...@@ -2859,6 +2859,13 @@ static const AVCodecDescriptor codec_descriptors[] = { ...@@ -2859,6 +2859,13 @@ static const AVCodecDescriptor codec_descriptors[] = {
.long_name = NULL_IF_CONFIG_SMALL("ADPCM MTAF"), .long_name = NULL_IF_CONFIG_SMALL("ADPCM MTAF"),
.props = AV_CODEC_PROP_LOSSY, .props = AV_CODEC_PROP_LOSSY,
}, },
{
.id = AV_CODEC_ID_APTX,
.type = AVMEDIA_TYPE_AUDIO,
.name = "aptx",
.long_name = NULL_IF_CONFIG_SMALL("aptX (Audio Processing Technology for Bluetooth)"),
.props = AV_CODEC_PROP_LOSSY,
},
/* subtitle codecs */ /* subtitle codecs */
{ {
......
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