summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRodeo <[email protected]>2012-02-01 22:50:26 +0000
committerRodeo <[email protected]>2012-02-01 22:50:26 +0000
commitf193c9e172af839d920180e59c9c5dc28125fe82 (patch)
tree506df3a392073e42b00709ec371319be6b4167f0
parent29b5e839a306b41279935fa13a41aee9d256c7a0 (diff)
Use libdca to decode DTS-ES audio. While the Libav DTS decoder gives us an extra channel, we can't do anything with it for the time being.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4430 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--libhb/stream.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/libhb/stream.c b/libhb/stream.c
index b89836b14..93167ba92 100644
--- a/libhb/stream.c
+++ b/libhb/stream.c
@@ -3847,23 +3847,17 @@ static int probe_dts_profile( hb_pes_stream_t *pes )
}
switch (info.profile)
{
+ /* When we improve handling of channels > 5.1, we should move
+ * DTS_ES down to use libav for decode */
case FF_PROFILE_DTS:
+ case FF_PROFILE_DTS_ES:
case FF_PROFILE_DTS_96_24:
pes->codec = HB_ACODEC_DCA;
pes->stream_type = 0x82;
pes->stream_kind = A;
break;
- case FF_PROFILE_DTS_ES:
- pes->stream_type = 0;
- pes->stream_kind = A;
- break;
-
case FF_PROFILE_DTS_HD_HRA:
- pes->stream_type = 0;
- pes->stream_kind = A;
- break;
-
case FF_PROFILE_DTS_HD_MA:
pes->stream_type = 0;
pes->stream_kind = A;
@@ -4909,8 +4903,11 @@ static void add_ffmpeg_audio( hb_title_t *title, hb_stream_t *stream, int id )
{
audio->config.in.codec = HB_ACODEC_AC3;
}
+ /* When we improve handling of channels > 5.1, we should move
+ * DTS_ES down to use libav for decode */
else if ( codec->codec_id == CODEC_ID_DTS &&
( codec->profile == FF_PROFILE_DTS ||
+ codec->profile == FF_PROFILE_DTS_ES ||
codec->profile == FF_PROFILE_DTS_96_24 ) )
{
audio->config.in.codec = HB_ACODEC_DCA;
@@ -4918,8 +4915,7 @@ static void add_ffmpeg_audio( hb_title_t *title, hb_stream_t *stream, int id )
else
{
if ( codec->codec_id == CODEC_ID_DTS &&
- ( codec->profile == FF_PROFILE_DTS_ES ||
- codec->profile == FF_PROFILE_DTS_HD_MA ||
+ ( codec->profile == FF_PROFILE_DTS_HD_MA ||
codec->profile == FF_PROFILE_DTS_HD_HRA ) )
{
audio->config.in.codec = HB_ACODEC_DCA_HD;