|
|
|
@@ -166,8 +166,21 @@ static int latm_write_packet(AVFormatContext *s, AVPacket *pkt) |
|
|
|
|
|
|
|
/* The LATM payload is written unaligned */ |
|
|
|
|
|
|
|
i = 0; |
|
|
|
if (pkt->size && (pkt->data[0] & 0xe1) == 0x81) { |
|
|
|
// Convert byte-aligned DSE to non-aligned. |
|
|
|
// Due to the input format encoding we know that |
|
|
|
// it is naturally byte-aligned in the input stream, |
|
|
|
// so there are no padding bits to account for. |
|
|
|
// To avoid having to add padding bits and rearrange |
|
|
|
// the whole stream we just remove the byte-align flag. |
|
|
|
// This allows us to remux our FATE AAC samples into latm |
|
|
|
// files that are still playable with minimal effort. |
|
|
|
put_bits(&bs, 8, pkt->data[0] & 0xfe); |
|
|
|
i++; |
|
|
|
} |
|
|
|
/* PayloadMux() */ |
|
|
|
for (i = 0; i < pkt->size; i++) |
|
|
|
for (; i < pkt->size; i++) |
|
|
|
put_bits(&bs, 8, pkt->data[i]); |
|
|
|
|
|
|
|
avpriv_align_put_bits(&bs); |
|
|
|
|