summaryrefslogtreecommitdiffstats
path: root/libhb/stream.c
diff options
context:
space:
mode:
authorJohn Stebbins <[email protected]>2019-12-22 13:08:36 -0800
committerJohn Stebbins <[email protected]>2019-12-22 13:08:36 -0800
commitefeaeb4c7d20980a57ff8a872d51748a8b396ee4 (patch)
tree79f1a235ff2ee2a8ea9c167f9797406c6bebb22e /libhb/stream.c
parent948f1b7b8840a6fe85e1d75cfcc85a0fd9dc97d9 (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.c17
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") )
{