我试图用C / C ++编写简单的音频流/媒体播放器。问题是我必须玩的一些流是HE-AAC。这是我从原始数据中检测音频类型的代码:
int Audio_GetType(const uint8_t *pData)
{
if ((pData[0] == 0xFF) && ((pData[1] & 0xE0) == 0xE0))
{
if ((((pData[1] & 0x06) >> 1) != 0x00) &&
(((pData[2] & 0xF0) >> 4) != 0x0F) &&
(((pData[2] & 0x0C) >> 2) != 0x03))
{
return TYPE_MP3;
}
}
if ((pData[0] == 0xFF) && ((pData[1] & 0xF0) == 0xF0))
{
return TYPE_AAC;
}
if ((pData[0] == 0x0B) && (pData[1] == 0x77))
{
return TYPE_AC3;
}
return TYPE_INVALID;
}
如果流是HE-AAC,有谁可以告诉我如何获得?例如,我可以找到与0xFF
同步的(pData[0] == 0xFF) && ((pData[1] & 0xF0) == 0xF0)
同步的ADTS AAC。
我怎么知道该流是HE-AAC?