Runt
2025-04-04 49be01c8fd58a15b16012dc528673343ff7d73b9
app/src/main/cpp/pusher/live_pusher.cpp
@@ -192,15 +192,20 @@
}
void LivePusher::sendAudioHeader() {
    uint8_t *packet = new uint8_t[2];
    packet[0] = 0x12;
    packet[1] = 0x8;
    pushAAC(packet,2,RTMP_GetTime() - start_time);
    free(packet);
    uint8_t *data;int size;
    mediaEncoderCall->getAudioSeqData(&data,&size);
    if(size == 0){
        data = new uint8_t[2];
        data[0] = 0x12;
        data[1] = 0x08;
    }
    pushAAC(data,2,RTMP_GetTime() - start_time);
    free(data);
}
void LivePusher::pushAAC(uint8_t *data, int size, uint32_t time) {
    //LOGE("sendFrame pushAAC 0x%02X 0x%02X 0x%02X 0x%02X %d",data[0],aacData[1],aacData[2],aacData[3],size);
    //LOGE("sendFrame pushAAC 0x%02X 0x%02X 0x%02X 0x%02X %d",data[0],data[1],data[2],data[3],size);
    if(isLive != 1){
        return;
@@ -224,10 +229,8 @@
    output[offset++] = 0xAF; // SoundFormat: AAC, SoundRate: 44.1kHz, SoundSize: 16-bit, SoundType: Stereo
    output[offset++] = data[0] == 0x12 ? 0x00:0x01; //aac raw data
        //flv VideoTagBody --raw aac data
        memcpy(output + offset, data, size); // data + AAC_ADTS_HEADER_SIZE -> data,
        // (adts_len - AAC_ADTS_HEADER_SIZE) -> size
    memcpy(output + offset, data, size); // data + AAC_ADTS_HEADER_SIZE -> data,
    // (adts_len - AAC_ADTS_HEADER_SIZE) -> size
    //previous tag size
    addFooter(output,offset += size,body_len + FLV_TAG_HEAD_LEN);