转自:http://blog.sina.com.cn/s/blog_99cc8f0d0101udhk.html
通过av_get_channel_layout_nb_channels()和av_get_default_channel_layout()这些函数可以得到channels和channellayout的转换。
libavutil中的audioconvert.c定义channellayout和channels的相关map:
channel_layout_map[]
{ "mono", 1, AV_CH_LAYOUT_MONO
},
{
"stereo", 2, AV_CH_LAYOUT_STEREO },
{
"2.1", 3, AV_CH_LAYOUT_2POINT1
},
{
"3.0", 3, AV_CH_LAYOUT_SURROUND
},
{
"3.0(back)", 3, AV_CH_LAYOUT_2_1
},
{
"4.0", 4, AV_CH_LAYOUT_4POINT0
},
{
"quad", 4, AV_CH_LAYOUT_QUAD
},
{
"quad(side)", 4, AV_CH_LAYOUT_2_2
},
{
"3.1", 4, AV_CH_LAYOUT_3POINT1
},
{
"5.0", 5, AV_CH_LAYOUT_5POINT0_BACK
},
{
"5.0(side)", 5, AV_CH_LAYOUT_5POINT0
},
{
"4.1", 5, AV_CH_LAYOUT_4POINT1
},
{
"5.1", 6, AV_CH_LAYOUT_5POINT1_BACK
},
{
"5.1(side)", 6, AV_CH_LAYOUT_5POINT1
},
{
"6.0", 6, AV_CH_LAYOUT_6POINT0
},
{
"6.0(front)", 6, AV_CH_LAYOUT_6POINT0_FRONT
},
{
"hexagonal", 6, AV_CH_LAYOUT_HEXAGONAL
},
{
"6.1", 7, AV_CH_LAYOUT_6POINT1
},
{
"6.1", 7, AV_CH_LAYOUT_6POINT1_BACK
},
{
"6.1(front)", 7, AV_CH_LAYOUT_6POINT1_FRONT
},
{
"7.0", 7, AV_CH_LAYOUT_7POINT0
},
{
"7.0(front)", 7, AV_CH_LAYOUT_7POINT0_FRONT
},
{
"7.1", 8, AV_CH_LAYOUT_7POINT1
},
{
"7.1(wide)", 8, AV_CH_LAYOUT_7POINT1_WIDE
},
{
"octagonal", 8, AV_CH_LAYOUT_OCTAGONAL
},
{
"downmix", 2, AV_CH_LAYOUT_STEREO_DOWNMIX,
},