mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
mpegtsenc: Fix AC3 Sound issue with Blu-ray Players.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
93d428953c
commit
32aeba1275
@ -921,6 +921,10 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st,
|
||||
st->codec->codec_id == CODEC_ID_MP3 ||
|
||||
st->codec->codec_id == CODEC_ID_AAC)) {
|
||||
*q++ = 0xc0;
|
||||
} else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO &&
|
||||
st->codec->codec_id == CODEC_ID_AC3 &&
|
||||
ts->m2ts_mode) {
|
||||
*q++ = 0xfd;
|
||||
} else {
|
||||
*q++ = 0xbd;
|
||||
if (st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
|
||||
@ -950,6 +954,17 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st,
|
||||
*/
|
||||
header_len += 3;
|
||||
}
|
||||
/* for Blu-ray AC3 Audio the PES Extension flag should be as follow
|
||||
* otherwise it will not play sound on blu-ray
|
||||
*/
|
||||
if (ts->m2ts_mode &&
|
||||
st->codec->codec_type == AVMEDIA_TYPE_AUDIO &&
|
||||
st->codec->codec_id == CODEC_ID_AC3) {
|
||||
/* set PES_extension_flag */
|
||||
pes_extension = 1;
|
||||
flags |= 0x01;
|
||||
header_len += 3;
|
||||
}
|
||||
len = payload_size + header_len + 3;
|
||||
if (private_code != 0)
|
||||
len++;
|
||||
@ -982,6 +997,17 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st,
|
||||
*/
|
||||
*q++ = 0x00 | 0x60;
|
||||
}
|
||||
/* For Blu-ray AC3 Audio Setting extended flags */
|
||||
if (ts->m2ts_mode &&
|
||||
pes_extension &&
|
||||
st->codec->codec_id == CODEC_ID_AC3) {
|
||||
flags = 0x01; /* set PES_extension_flag_2 */
|
||||
*q++ = flags;
|
||||
*q++ = 0x80 | 0x01; /* marker bit + extension length */
|
||||
*q++ = 0x00 | 0x71; /* for AC3 Audio (specifically on blue-rays) */
|
||||
}
|
||||
|
||||
|
||||
if (private_code != 0)
|
||||
*q++ = private_code;
|
||||
is_start = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user