diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2009-12-09 17:47:34 +0100 |
---|---|---|
committer | Christian Gmeiner <christian.gmeiner@gmail.com> | 2009-12-09 17:47:34 +0100 |
commit | 42bf76053d336d4db646bde9f2a6a8cd6b79454e (patch) | |
tree | 326f6310c1c9224824c2b97029a984acaa7853b7 /dxr3demuxdevice.c | |
parent | b610f9992f256ae4e62eabe2a32e079c7f5c58c1 (diff) | |
download | vdr-plugin-dxr3-42bf76053d336d4db646bde9f2a6a8cd6b79454e.tar.gz vdr-plugin-dxr3-42bf76053d336d4db646bde9f2a6a8cd6b79454e.tar.bz2 |
digital audio works if enabled by vdr startup
Diffstat (limited to 'dxr3demuxdevice.c')
-rw-r--r-- | dxr3demuxdevice.c | 13 |
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) { |