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;
}
03-06
2616
08-06
1011
08-27
1535
10-15
2803