avformat/mov_chan: use the newly added channel ids for more exact mapping

Also make the iso_channel_position table consistent with what the AAC decoder
uses in avcodec/aac/aacdec_usac.c.

Fate changes are caused by the change of how 7.1 layout is mapped, previously
it included Side Surround channels, now it includes the Surround channels.

Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Marton Balint 2024-06-03 21:15:16 +02:00
parent a4901a56c6
commit e405afdd0a
2 changed files with 9 additions and 15 deletions

View File

@ -85,12 +85,8 @@ enum {
iso_Lc = AV_CHAN_FRONT_LEFT_OF_CENTER, iso_Lc = AV_CHAN_FRONT_LEFT_OF_CENTER,
iso_Rc = AV_CHAN_FRONT_RIGHT_OF_CENTER, iso_Rc = AV_CHAN_FRONT_RIGHT_OF_CENTER,
iso_Cs = AV_CHAN_BACK_CENTER, iso_Cs = AV_CHAN_BACK_CENTER,
/* Side and surround are not exactly the same, but in order to have
* consistent 5.1/7.1 layouts we map them to the side channels. */
iso_Ls = AV_CHAN_SIDE_LEFT, iso_Ls = AV_CHAN_SIDE_LEFT,
iso_Lss = AV_CHAN_SIDE_LEFT,
iso_Rs = AV_CHAN_SIDE_RIGHT, iso_Rs = AV_CHAN_SIDE_RIGHT,
iso_Rss = AV_CHAN_SIDE_RIGHT,
iso_Ts = AV_CHAN_TOP_CENTER, iso_Ts = AV_CHAN_TOP_CENTER,
iso_Lv = AV_CHAN_TOP_FRONT_LEFT, iso_Lv = AV_CHAN_TOP_FRONT_LEFT,
iso_Cv = AV_CHAN_TOP_FRONT_CENTER, iso_Cv = AV_CHAN_TOP_FRONT_CENTER,
@ -110,6 +106,8 @@ enum {
iso_Cb = AV_CHAN_BOTTOM_FRONT_CENTER, iso_Cb = AV_CHAN_BOTTOM_FRONT_CENTER,
iso_Lb = AV_CHAN_BOTTOM_FRONT_LEFT, iso_Lb = AV_CHAN_BOTTOM_FRONT_LEFT,
iso_Rb = AV_CHAN_BOTTOM_FRONT_RIGHT, iso_Rb = AV_CHAN_BOTTOM_FRONT_RIGHT,
iso_Lss = AV_CHAN_SIDE_SURROUND_LEFT,
iso_Rss = AV_CHAN_SIDE_SURROUND_RIGHT,
/* The following have no exact counterparts */ /* The following have no exact counterparts */
iso_Lvs = AV_CHAN_NONE, iso_Lvs = AV_CHAN_NONE,
iso_Rvs = AV_CHAN_NONE, iso_Rvs = AV_CHAN_NONE,
@ -622,12 +620,10 @@ static const enum AVChannel iso_channel_position[] = {
AV_CHAN_LOW_FREQUENCY, AV_CHAN_LOW_FREQUENCY,
// 4: left surround // 4: left surround
// TODO AV_CHAN_SIDE_LEFT,
AV_CHAN_NONE,
// 5: right surround // 5: right surround
// TODO AV_CHAN_SIDE_RIGHT,
AV_CHAN_NONE,
// 6: left front centre // 6: left front centre
AV_CHAN_FRONT_LEFT_OF_CENTER, AV_CHAN_FRONT_LEFT_OF_CENTER,
@ -651,10 +647,10 @@ static const enum AVChannel iso_channel_position[] = {
AV_CHAN_SURROUND_DIRECT_RIGHT, AV_CHAN_SURROUND_DIRECT_RIGHT,
// 13: left side surround // 13: left side surround
AV_CHAN_SIDE_LEFT, AV_CHAN_SIDE_SURROUND_LEFT,
// 14: right side surround // 14: right side surround
AV_CHAN_SIDE_RIGHT, AV_CHAN_SIDE_SURROUND_RIGHT,
// 15: left wide front // 15: left wide front
AV_CHAN_WIDE_LEFT, AV_CHAN_WIDE_LEFT,
@ -702,12 +698,10 @@ static const enum AVChannel iso_channel_position[] = {
AV_CHAN_BOTTOM_FRONT_CENTER, AV_CHAN_BOTTOM_FRONT_CENTER,
// 30: left vertical height surround // 30: left vertical height surround
// TODO AV_CHAN_TOP_SURROUND_LEFT,
AV_CHAN_NONE,
// 31: right vertical height surround // 31: right vertical height surround
// TODO AV_CHAN_TOP_SURROUND_RIGHT,
AV_CHAN_NONE,
// 32, 33, 34, 35, reserved // 32, 33, 34, 35, reserved
AV_CHAN_NONE, AV_CHAN_NONE,

View File

@ -1,4 +1,4 @@
462668dd69e7ce4fde4934d1d5978531 *tests/data/fate/mov-mp4-pcm.mp4 0c6802135e9eb442201c0c1b001259d6 *tests/data/fate/mov-mp4-pcm.mp4
10587977 tests/data/fate/mov-mp4-pcm.mp4 10587977 tests/data/fate/mov-mp4-pcm.mp4
#tb 0: 1/44100 #tb 0: 1/44100
#media_type 0: audio #media_type 0: audio