|
|
@ -156,6 +156,32 @@ typedef struct AC3EncodeContext { |
|
|
|
static uint8_t exponent_group_tab[3][256]; |
|
|
|
static uint8_t exponent_group_tab[3][256]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* List of supported channel layouts. |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
static const int64_t ac3_channel_layouts[] = { |
|
|
|
|
|
|
|
AV_CH_LAYOUT_MONO, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_STEREO, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_2_1, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_SURROUND, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_2_2, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_QUAD, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_4POINT0, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_5POINT0, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_5POINT0_BACK, |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_MONO | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_STEREO | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_2_1 | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_SURROUND | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_2_2 | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_QUAD | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_4POINT0 | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
AV_CH_LAYOUT_5POINT1, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_5POINT1_BACK, |
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Adjust the frame size to make the average bit rate match the target bit rate. |
|
|
|
* Adjust the frame size to make the average bit rate match the target bit rate. |
|
|
|
* This is only needed for 11025, 22050, and 44100 sample rates. |
|
|
|
* This is only needed for 11025, 22050, and 44100 sample rates. |
|
|
@ -2052,24 +2078,5 @@ AVCodec ac3_encoder = { |
|
|
|
NULL, |
|
|
|
NULL, |
|
|
|
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE}, |
|
|
|
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE}, |
|
|
|
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"), |
|
|
|
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"), |
|
|
|
.channel_layouts = (const int64_t[]){ |
|
|
|
.channel_layouts = ac3_channel_layouts, |
|
|
|
AV_CH_LAYOUT_MONO, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_STEREO, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_2_1, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_SURROUND, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_2_2, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_QUAD, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_4POINT0, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_5POINT0, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_5POINT0_BACK, |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_MONO | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_STEREO | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_2_1 | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_SURROUND | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_2_2 | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_QUAD | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
(AV_CH_LAYOUT_4POINT0 | AV_CH_LOW_FREQUENCY), |
|
|
|
|
|
|
|
AV_CH_LAYOUT_5POINT1, |
|
|
|
|
|
|
|
AV_CH_LAYOUT_5POINT1_BACK, |
|
|
|
|
|
|
|
0 }, |
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|