mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
spdifenc: support ac3 core+eac3 dependent streams
Such streams are found on Blu-ray, and identified as EAC3 type in avformat, while the bitstream of the core stream is actually a pure AC3 frame. Adjust the parsing accordingly, since AC3 frames always hold 6 blocks and the numblkscod syntax element is not present.
This commit is contained in:
parent
9825f77ac7
commit
3e9d676192
@ -118,7 +118,8 @@ static int spdif_header_eac3(AVFormatContext *s, AVPacket *pkt)
|
||||
static const uint8_t eac3_repeat[4] = {6, 3, 2, 1};
|
||||
int repeat = 1;
|
||||
|
||||
if ((pkt->data[4] & 0xc0) != 0xc0) /* fscod */
|
||||
int bsid = pkt->data[5] >> 3;
|
||||
if (bsid > 10 && (pkt->data[4] & 0xc0) != 0xc0) /* fscod */
|
||||
repeat = eac3_repeat[(pkt->data[4] & 0x30) >> 4]; /* numblkscod */
|
||||
|
||||
ctx->hd_buf = av_fast_realloc(ctx->hd_buf, &ctx->hd_buf_size, ctx->hd_buf_filled + pkt->size);
|
||||
|
Loading…
Reference in New Issue
Block a user