summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2009-12-09 17:47:34 +0100
committerChristian Gmeiner <christian.gmeiner@gmail.com>2009-12-09 17:47:34 +0100
commit42bf76053d336d4db646bde9f2a6a8cd6b79454e (patch)
tree326f6310c1c9224824c2b97029a984acaa7853b7
parentb610f9992f256ae4e62eabe2a32e079c7f5c58c1 (diff)
downloadvdr-plugin-dxr3-42bf76053d336d4db646bde9f2a6a8cd6b79454e.tar.gz
vdr-plugin-dxr3-42bf76053d336d4db646bde9f2a6a8cd6b79454e.tar.bz2
digital audio works if enabled by vdr startup
-rw-r--r--dxr3demuxdevice.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/dxr3demuxdevice.c b/dxr3demuxdevice.c
index b9e7215..cbba41d 100644
--- a/dxr3demuxdevice.c
+++ b/dxr3demuxdevice.c
@@ -417,6 +417,19 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
&& bAc3Dts) {
if (m_synchState == DXR3_DEMUX_AUDIO_SYNCHED ||
m_synchState == DXR3_DEMUX_SYNCHED) {
+
+ if (pts && m_synchState != DXR3_DEMUX_SYNCHED) {
+ m_synchState = DXR3_DEMUX_SYNCHED;
+ pcr = aPts - PRE_BUFFER_LENGTH;
+ m_dxr3Device->SetSysClock(pcr);
+ m_dxr3Device->SetPlayMode();
+ m_dxr3Device->EnableVideo();
+ m_dxr3Device->EnableAudio();
+ m_vBuf.Start();
+ m_aBuf.Start();
+ }
+ while(!Poll(100)) {}
+
m_aDecoder.DecodeAc3Dts(pesFrame, pts, m_aBuf);
} else {
if (pts) {