diff options
author | John Stebbins <[email protected]> | 2019-12-22 13:08:36 -0800 |
---|---|---|
committer | John Stebbins <[email protected]> | 2019-12-22 13:08:36 -0800 |
commit | efeaeb4c7d20980a57ff8a872d51748a8b396ee4 (patch) | |
tree | 79f1a235ff2ee2a8ea9c167f9797406c6bebb22e /libhb/stream.c | |
parent | 948f1b7b8840a6fe85e1d75cfcc85a0fd9dc97d9 (diff) |
bd: add processing of "secondary" audio tracks
There are actually 2 types. One "secondary" audio type is designated
by a distinct stream id. The other "secondary" audio type is disignated
by being in a separate "secondary" audio list.
Maybe fixes https://github.com/HandBrake/HandBrake/issues/2501
Diffstat (limited to 'libhb/stream.c')
-rw-r--r-- | libhb/stream.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/libhb/stream.c b/libhb/stream.c index f7e5ac854..b2d816517 100644 --- a/libhb/stream.c +++ b/libhb/stream.c @@ -95,7 +95,7 @@ static const stream2codec_t st2codec[256] = { // BD E-AC3 Secondary audio st(0xa1, U, 0, 0, "E-AC3"), // BD DTS-HD Secondary audio - st(0xa2, U, 0, 0, "DTS-HD LBR"), + st(0xa2, U, HB_ACODEC_DCA_HD, AV_CODEC_ID_DTS, "DTS-HD LBR"), st(0xea, V, WORK_DECAVCODECV, AV_CODEC_ID_VC1, "VC-1"), }; @@ -4288,11 +4288,16 @@ static void hb_ts_resolve_pid_types(hb_stream_t *stream) stream->pes.list[pes_idx].codec_param = AV_CODEC_ID_EAC3; continue; } - // 0xa2 is DTS-HD LBR used in HD-DVD and bluray for - // secondary audio streams. FFmpeg can not decode yet. - // Having it in the audio list causes delays during scan - // while we try to get stream parameters. So skip - // this type for now. + if ( stype == 0xa2 && + stream->reg_desc == STR4_TO_UINT32("HDMV") ) + { + // Blueray DTS-HD LBR audio + // This is no interleaved DTS core + update_ts_streams( stream, pid, 0, stype, A, &pes_idx ); + stream->pes.list[pes_idx].codec = HB_ACODEC_DCA_HD; + stream->pes.list[pes_idx].codec_param = AV_CODEC_ID_DTS; + continue; + } if ( stype == 0x85 && stream->reg_desc == STR4_TO_UINT32("HDMV") ) { |