diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-02-15 11:35:40 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-02-15 11:35:40 +0100 |
commit | 8123e19e61d760532012cdab374f8c2299a15789 (patch) | |
tree | 7284bd9f01016457d44dac0342d0d759dc83c97b | |
parent | 1567ec43a3bd4b392405abd33a83454d8db8e3b5 (diff) | |
download | ffmpeg-8123e19e61d760532012cdab374f8c2299a15789.tar.gz |
avcodec/dcadec: Move remaining tables to dcadata.h
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/dcadata.h | 89 | ||||
-rw-r--r-- | libavcodec/dcadec.c | 89 |
2 files changed, 89 insertions, 89 deletions
diff --git a/libavcodec/dcadata.h b/libavcodec/dcadata.h index 979b6dffbd..125fc1799f 100644 --- a/libavcodec/dcadata.h +++ b/libavcodec/dcadata.h @@ -7663,6 +7663,95 @@ static const float dca_default_coeffs[10][6][2] = { * where Ch(n) represents the subband samples in the (n)th audio channel. */ +static const uint32_t map_xxch_to_native[28] = { + AV_CH_FRONT_CENTER, + AV_CH_FRONT_LEFT, + AV_CH_FRONT_RIGHT, + AV_CH_SIDE_LEFT, + AV_CH_SIDE_RIGHT, + AV_CH_LOW_FREQUENCY, + AV_CH_BACK_CENTER, + AV_CH_BACK_LEFT, + AV_CH_BACK_RIGHT, + AV_CH_SIDE_LEFT, /* side surround left -- dup sur side L */ + AV_CH_SIDE_RIGHT, /* side surround right -- dup sur side R */ + AV_CH_FRONT_LEFT_OF_CENTER, + AV_CH_FRONT_RIGHT_OF_CENTER, + AV_CH_TOP_FRONT_LEFT, + AV_CH_TOP_FRONT_CENTER, + AV_CH_TOP_FRONT_RIGHT, + AV_CH_LOW_FREQUENCY, /* lfe2 -- duplicate lfe1 position */ + AV_CH_FRONT_LEFT_OF_CENTER, /* side front left -- dup front cntr L */ + AV_CH_FRONT_RIGHT_OF_CENTER,/* side front right -- dup front cntr R */ + AV_CH_TOP_CENTER, /* overhead */ + AV_CH_TOP_FRONT_LEFT, /* side high left -- dup */ + AV_CH_TOP_FRONT_RIGHT, /* side high right -- dup */ + AV_CH_TOP_BACK_CENTER, + AV_CH_TOP_BACK_LEFT, + AV_CH_TOP_BACK_RIGHT, + AV_CH_BACK_CENTER, /* rear low center -- dup */ + AV_CH_BACK_LEFT, /* rear low left -- dup */ + AV_CH_BACK_RIGHT /* read low right -- dup */ +}; + +/* -1 are reserved or unknown */ +static const int dca_ext_audio_descr_mask[] = { + DCA_EXT_XCH, + -1, + DCA_EXT_X96, + DCA_EXT_XCH | DCA_EXT_X96, + -1, + -1, + DCA_EXT_XXCH, + -1, +}; + +/* Tables for mapping dts channel configurations to libavcodec multichannel api. + * Some compromises have been made for special configurations. Most configurations + * are never used so complete accuracy is not needed. + * + * L = left, R = right, C = center, S = surround, F = front, R = rear, T = total, OV = overhead. + * S -> side, when both rear and back are configured move one of them to the side channel + * OV -> center back + * All 2 channel configurations -> AV_CH_LAYOUT_STEREO + */ +static const uint64_t dca_core_channel_layout[] = { + AV_CH_FRONT_CENTER, ///< 1, A + AV_CH_LAYOUT_STEREO, ///< 2, A + B (dual mono) + AV_CH_LAYOUT_STEREO, ///< 2, L + R (stereo) + AV_CH_LAYOUT_STEREO, ///< 2, (L + R) + (L - R) (sum-difference) + AV_CH_LAYOUT_STEREO, ///< 2, LT + RT (left and right total) + AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER, ///< 3, C + L + R + AV_CH_LAYOUT_STEREO | AV_CH_BACK_CENTER, ///< 3, L + R + S + AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER | AV_CH_BACK_CENTER, ///< 4, C + L + R + S + AV_CH_LAYOUT_STEREO | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT, ///< 4, L + R + SL + SR + + AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER | AV_CH_SIDE_LEFT | + AV_CH_SIDE_RIGHT, ///< 5, C + L + R + SL + SR + + AV_CH_LAYOUT_STEREO | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT | + AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER, ///< 6, CL + CR + L + R + SL + SR + + AV_CH_LAYOUT_STEREO | AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT | + AV_CH_FRONT_CENTER | AV_CH_BACK_CENTER, ///< 6, C + L + R + LR + RR + OV + + AV_CH_FRONT_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER | + AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_BACK_CENTER | + AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT, ///< 6, CF + CR + LF + RF + LR + RR + + AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_CENTER | + AV_CH_FRONT_RIGHT_OF_CENTER | AV_CH_LAYOUT_STEREO | + AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT, ///< 7, CL + C + CR + L + R + SL + SR + + AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER | + AV_CH_LAYOUT_STEREO | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT | + AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT, ///< 8, CL + CR + L + R + SL1 + SL2 + SR1 + SR2 + + AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_CENTER | + AV_CH_FRONT_RIGHT_OF_CENTER | AV_CH_LAYOUT_STEREO | + AV_CH_SIDE_LEFT | AV_CH_BACK_CENTER | AV_CH_SIDE_RIGHT, ///< 8, CL + C + CR + L + R + SL + S + SR +}; + static const int8_t dca_lfe_index[] = { 1, 2, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 1, 3, 2, 3 }; diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c index 2df6178bb0..757fdf7260 100644 --- a/libavcodec/dcadec.c +++ b/libavcodec/dcadec.c @@ -98,95 +98,6 @@ enum DCAXxchSpeakerMask { DCA_XXCH_REAR_LOW_RIGHT = 0x8000000, }; -static const uint32_t map_xxch_to_native[28] = { - AV_CH_FRONT_CENTER, - AV_CH_FRONT_LEFT, - AV_CH_FRONT_RIGHT, - AV_CH_SIDE_LEFT, - AV_CH_SIDE_RIGHT, - AV_CH_LOW_FREQUENCY, - AV_CH_BACK_CENTER, - AV_CH_BACK_LEFT, - AV_CH_BACK_RIGHT, - AV_CH_SIDE_LEFT, /* side surround left -- dup sur side L */ - AV_CH_SIDE_RIGHT, /* side surround right -- dup sur side R */ - AV_CH_FRONT_LEFT_OF_CENTER, - AV_CH_FRONT_RIGHT_OF_CENTER, - AV_CH_TOP_FRONT_LEFT, - AV_CH_TOP_FRONT_CENTER, - AV_CH_TOP_FRONT_RIGHT, - AV_CH_LOW_FREQUENCY, /* lfe2 -- duplicate lfe1 position */ - AV_CH_FRONT_LEFT_OF_CENTER, /* side front left -- dup front cntr L */ - AV_CH_FRONT_RIGHT_OF_CENTER,/* side front right -- dup front cntr R */ - AV_CH_TOP_CENTER, /* overhead */ - AV_CH_TOP_FRONT_LEFT, /* side high left -- dup */ - AV_CH_TOP_FRONT_RIGHT, /* side high right -- dup */ - AV_CH_TOP_BACK_CENTER, - AV_CH_TOP_BACK_LEFT, - AV_CH_TOP_BACK_RIGHT, - AV_CH_BACK_CENTER, /* rear low center -- dup */ - AV_CH_BACK_LEFT, /* rear low left -- dup */ - AV_CH_BACK_RIGHT /* read low right -- dup */ -}; - -/* -1 are reserved or unknown */ -static const int dca_ext_audio_descr_mask[] = { - DCA_EXT_XCH, - -1, - DCA_EXT_X96, - DCA_EXT_XCH | DCA_EXT_X96, - -1, - -1, - DCA_EXT_XXCH, - -1, -}; - -/* Tables for mapping dts channel configurations to libavcodec multichannel api. - * Some compromises have been made for special configurations. Most configurations - * are never used so complete accuracy is not needed. - * - * L = left, R = right, C = center, S = surround, F = front, R = rear, T = total, OV = overhead. - * S -> side, when both rear and back are configured move one of them to the side channel - * OV -> center back - * All 2 channel configurations -> AV_CH_LAYOUT_STEREO - */ -static const uint64_t dca_core_channel_layout[] = { - AV_CH_FRONT_CENTER, ///< 1, A - AV_CH_LAYOUT_STEREO, ///< 2, A + B (dual mono) - AV_CH_LAYOUT_STEREO, ///< 2, L + R (stereo) - AV_CH_LAYOUT_STEREO, ///< 2, (L + R) + (L - R) (sum-difference) - AV_CH_LAYOUT_STEREO, ///< 2, LT + RT (left and right total) - AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER, ///< 3, C + L + R - AV_CH_LAYOUT_STEREO | AV_CH_BACK_CENTER, ///< 3, L + R + S - AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER | AV_CH_BACK_CENTER, ///< 4, C + L + R + S - AV_CH_LAYOUT_STEREO | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT, ///< 4, L + R + SL + SR - - AV_CH_LAYOUT_STEREO | AV_CH_FRONT_CENTER | AV_CH_SIDE_LEFT | - AV_CH_SIDE_RIGHT, ///< 5, C + L + R + SL + SR - - AV_CH_LAYOUT_STEREO | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT | - AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER, ///< 6, CL + CR + L + R + SL + SR - - AV_CH_LAYOUT_STEREO | AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT | - AV_CH_FRONT_CENTER | AV_CH_BACK_CENTER, ///< 6, C + L + R + LR + RR + OV - - AV_CH_FRONT_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER | - AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_BACK_CENTER | - AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT, ///< 6, CF + CR + LF + RF + LR + RR - - AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_CENTER | - AV_CH_FRONT_RIGHT_OF_CENTER | AV_CH_LAYOUT_STEREO | - AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT, ///< 7, CL + C + CR + L + R + SL + SR - - AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER | - AV_CH_LAYOUT_STEREO | AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT | - AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT, ///< 8, CL + CR + L + R + SL1 + SL2 + SR1 + SR2 - - AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_CENTER | - AV_CH_FRONT_RIGHT_OF_CENTER | AV_CH_LAYOUT_STEREO | - AV_CH_SIDE_LEFT | AV_CH_BACK_CENTER | AV_CH_SIDE_RIGHT, ///< 8, CL + C + CR + L + R + SL + S + SR -}; - #define DCA_DOLBY 101 /* FIXME */ #define DCA_CHANNEL_BITS 6 |