分享一个AAC音频创建ADTS的函数

int CreateAdts(unsigned char * data, int aac_body_size , unsigned char * aac_seq_header,int aac_seq_header_len) {
    if (aac_seq_header_len < 2 || !data || !aac_seq_header)
        return 0;
    int adts_len = 7;
    int aac_packet_size = aac_body_size + adts_len;
    int    obj_type, sr_index, ch_conf;
    unsigned char b0 = aac_seq_header[0];
    unsigned char b1 = aac_seq_header[1];
    obj_type = b0 >> 3;
    sr_index = ((b0 << 1) & 0x0f) | ((b1 & 0x80) >> 7);
    ch_conf = (b1 >> 3) & 0x0f;
    data[0] = 0xff;
    data[1] = 0xf1;
    data[2] = (((obj_type - 1) << 6) | (sr_index << 2) | ((ch_conf & 0x04) >> 2));
    data[3] = (((ch_conf & 0x03) << 6) | ((aac_packet_size >> 11) & 0x03));
    data[4] = (aac_packet_size >> 3);
    data[5] = ((aac_packet_size << 5) | 0x1f);
    data[6] = 0xfc;
    return adts_len;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值