projects
/
vuplus_dvbapp
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8682ee1
)
add DTS-HD as known audio format, add detection to pmt parser (no hardware support...
author
ghost
<andreas.monzner@multimedia-labs.de>
Wed, 24 Nov 2010 22:09:52 +0000
(23:09 +0100)
committer
ghost
<andreas.monzner@multimedia-labs.de>
Wed, 24 Nov 2010 22:09:52 +0000
(23:09 +0100)
lib/dvb/decoder.cpp
patch
|
blob
|
history
lib/dvb/decoder.h
patch
|
blob
|
history
lib/dvb/idvb.h
patch
|
blob
|
history
lib/dvb/pmt.cpp
patch
|
blob
|
history
lib/dvb/pmt.h
patch
|
blob
|
history
lib/dvb/tstools.cpp
patch
|
blob
|
history
lib/service/servicedvb.cpp
patch
|
blob
|
history
diff --git
a/lib/dvb/decoder.cpp
b/lib/dvb/decoder.cpp
index
88cd3ee
..
8ed9f43
100644
(file)
--- a/
lib/dvb/decoder.cpp
+++ b/
lib/dvb/decoder.cpp
@@
-203,6
+203,9
@@
int eDVBAudio::startPid(int pid, int type)
case aLPCM:
bypass = 6;
break;
case aLPCM:
bypass = 6;
break;
+ case aDTSHD:
+ bypass = 0x10;
+ break;
}
eDebugNoNewLine("AUDIO_SET_BYPASS(%d) - ", bypass);
}
eDebugNoNewLine("AUDIO_SET_BYPASS(%d) - ", bypass);
diff --git
a/lib/dvb/decoder.h
b/lib/dvb/decoder.h
index
3a0fbac
..
7610b65
100644
(file)
--- a/
lib/dvb/decoder.h
+++ b/
lib/dvb/decoder.h
@@
-13,7
+13,7
@@
private:
ePtr<eDVBDemux> m_demux;
int m_fd, m_fd_demux, m_dev, m_is_freezed;
public:
ePtr<eDVBDemux> m_demux;
int m_fd, m_fd_demux, m_dev, m_is_freezed;
public:
- enum { aMPEG, aAC3, aDTS, aAAC, aAACHE, aLPCM };
+ enum { aMPEG, aAC3, aDTS, aAAC, aAACHE, aLPCM
, aDTSHD
};
eDVBAudio(eDVBDemux *demux, int dev);
enum { aMonoLeft, aStereo, aMonoRight };
void setChannel(int channel);
eDVBAudio(eDVBDemux *demux, int dev);
enum { aMonoLeft, aStereo, aMonoRight };
void setChannel(int channel);
diff --git
a/lib/dvb/idvb.h
b/lib/dvb/idvb.h
index
f15cd04
..
e56a2c7
100644
(file)
--- a/
lib/dvb/idvb.h
+++ b/
lib/dvb/idvb.h
@@
-650,7
+650,7
@@
public:
/** Set Displayed Video PID and type */
virtual RESULT setVideoPID(int vpid, int type)=0;
/** Set Displayed Video PID and type */
virtual RESULT setVideoPID(int vpid, int type)=0;
- enum { af_MPEG, af_AC3, af_DTS, af_AAC };
+ enum { af_MPEG, af_AC3, af_DTS, af_AAC
, af_DTSHD
};
/** Set Displayed Audio PID and type */
virtual RESULT setAudioPID(int apid, int type)=0;
/** Set Displayed Audio PID and type */
virtual RESULT setAudioPID(int apid, int type)=0;
diff --git
a/lib/dvb/pmt.cpp
b/lib/dvb/pmt.cpp
index
e54601c
..
0b3e34a
100644
(file)
--- a/
lib/dvb/pmt.cpp
+++ b/
lib/dvb/pmt.cpp
@@
-305,6
+305,13
@@
int eDVBServicePMTHandler::getProgramInfo(struct program &program)
isaudio = 1;
audio.type = audioStream::atDTS;
}
isaudio = 1;
audio.type = audioStream::atDTS;
}
+ case 0x86: // Blueray DTS-HD (dvb user private...)
+ case 0xA6: // Blueray secondary DTS-HD
+ if (!isvideo && !isaudio)
+ {
+ isaudio = 1;
+ audio.type = audioStream::atDTSHD;
+ }
case 0x06: // PES Private
case 0xEA: // TS_PSI_ST_SMPTE_VC1
{
case 0x06: // PES Private
case 0xEA: // TS_PSI_ST_SMPTE_VC1
{
diff --git
a/lib/dvb/pmt.h
b/lib/dvb/pmt.h
index
de0de05
..
e61f871
100644
(file)
--- a/
lib/dvb/pmt.h
+++ b/
lib/dvb/pmt.h
@@
-144,7
+144,7
@@
public:
{
int pid,
rdsPid; // hack for some radio services which transmit radiotext on different pid (i.e. harmony fm, HIT RADIO FFH, ...)
{
int pid,
rdsPid; // hack for some radio services which transmit radiotext on different pid (i.e. harmony fm, HIT RADIO FFH, ...)
- enum { atMPEG, atAC3, atDTS, atAAC, atAACHE, atLPCM };
+ enum { atMPEG, atAC3, atDTS, atAAC, atAACHE, atLPCM
, atDTSHD
};
int type; // mpeg2, ac3, dts, ...
int component_tag;
int type; // mpeg2, ac3, dts, ...
int component_tag;
diff --git
a/lib/dvb/tstools.cpp
b/lib/dvb/tstools.cpp
index
cfea3fd
..
e93cfc0
100644
(file)
--- a/
lib/dvb/tstools.cpp
+++ b/
lib/dvb/tstools.cpp
@@
-212,6
+212,8
@@
int eDVBTSTools::getPTS(off_t &offset, pts_t &pts, int fixed)
break;
case 0x71: // AC3 / DTS
break;
break;
case 0x71: // AC3 / DTS
break;
+ case 0x72: // DTS - HD
+ break;
default:
eDebug("skip unknwn stream_id_extension %02x\n", payload[9+offs]);
continue;
default:
eDebug("skip unknwn stream_id_extension %02x\n", payload[9+offs]);
continue;
diff --git
a/lib/service/servicedvb.cpp
b/lib/service/servicedvb.cpp
index
0d617c3
..
0a2146d
100644
(file)
--- a/
lib/service/servicedvb.cpp
+++ b/
lib/service/servicedvb.cpp
@@
-1797,6
+1797,8
@@
RESULT eDVBServicePlay::getTrackInfo(struct iAudioTrackInfo &info, unsigned int
info.m_description = "AAC-HE";
else if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atDTS)
info.m_description = "DTS";
info.m_description = "AAC-HE";
else if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atDTS)
info.m_description = "DTS";
+ else if (program.audioStreams[i].type == eDVBServicePMTHandler::audioStream::atDTSHD)
+ info.m_description = "DTS-HD";
else
info.m_description = "???";
else
info.m_description = "???";