diff options
-rw-r--r-- | dxr3demuxdevice.c | 84 | ||||
-rw-r--r-- | dxr3demuxdevice.h | 33 | ||||
-rw-r--r-- | dxr3interface.h | 5 |
3 files changed, 17 insertions, 105 deletions
diff --git a/dxr3demuxdevice.c b/dxr3demuxdevice.c index b145827..fc6e645 100644 --- a/dxr3demuxdevice.c +++ b/dxr3demuxdevice.c @@ -38,17 +38,15 @@ cDxr3DemuxDevice::cDxr3DemuxDevice(cDxr3Interface& dxr3Device) : m_synchState = DXR3_DEMUX_UNSYNCHED; m_demuxMode = DXR3_DEMUX_OFF_MODE; m_pAudioThread = new cDxr3AudioOutThread(dxr3Device, m_aBuf); - if (!m_pAudioThread) - { - esyslog("dxr3: fatal: unable to allocate memory for audio thread"); - exit(1); + if (!m_pAudioThread) { + esyslog("dxr3: fatal: unable to allocate memory for audio thread"); + exit(1); } m_pVideoThread = new cDxr3VideoOutThread(dxr3Device, m_vBuf); - if (!m_pVideoThread) - { - esyslog("dxr3: fatal: unable to allocate memory for video thread"); - exit(1); + if (!m_pVideoThread) { + esyslog("dxr3: fatal: unable to allocate memory for video thread"); + exit(1); } m_pVideoThread->Start(); m_aDecoder.Init(); @@ -62,28 +60,11 @@ void cDxr3DemuxDevice::setAudio(iAudio *a) } // ================================== -cDxr3DemuxDevice::cDxr3DemuxDevice() : // dummy constructor - m_dxr3Device(cDxr3Interface::Instance()), - m_aBuf(AUDIO_MAX_BUFFER_SIZE, AUIDO_MAX_FRAME_SIZE, m_dxr3Device), - m_vBuf(VIDEO_MAX_BUFFER_SIZE, VIDEO_MAX_FRAME_SIZE, m_dxr3Device) -{ - m_synchState = DXR3_DEMUX_UNSYNCHED; - m_demuxMode = DXR3_DEMUX_OFF_MODE; -} - -// ================================== // deconstr. cDxr3DemuxDevice::~cDxr3DemuxDevice() { - if (m_pVideoThread) - { delete m_pVideoThread; - } - - if (m_pAudioThread) - { delete m_pAudioThread; - } } // ================================== @@ -139,38 +120,6 @@ void cDxr3DemuxDevice::Clear() } // ================================== -void cDxr3DemuxDevice::Init() -{ - m_vBuf.Clear(); - m_aBuf.Clear(); - m_synchState = DXR3_DEMUX_UNSYNCHED; - m_demuxMode = DXR3_DEMUX_OFF_MODE; - m_aDecoder.Init(); -} - -// ================================== -void cDxr3DemuxDevice::SetTvMode() -{ - m_synchState = DXR3_DEMUX_UNSYNCHED; - m_demuxMode = DXR3_DEMUX_TV_MODE; - m_aBuf.SetDemuxMode(DXR3_DEMUX_TV_MODE); - m_vBuf.SetDemuxMode(DXR3_DEMUX_TV_MODE); - m_aBuf.Start(); - m_vBuf.Start(); -} - -// ================================== -void cDxr3DemuxDevice::SetAudioOnlyMode() -{ - m_synchState = DXR3_DEMUX_UNSYNCHED; - m_demuxMode = DXR3_DEMUX_AUDIO_ONLY_MODE; - m_aBuf.SetDemuxMode(DXR3_DEMUX_REPLAY_MODE); - m_vBuf.SetDemuxMode(DXR3_DEMUX_REPLAY_MODE); - m_aBuf.Start(); - m_vBuf.Start(); -} - -// ================================== void cDxr3DemuxDevice::SetReplayMode() { if (m_demuxMode != DXR3_DEMUX_REPLAY_MODE) @@ -222,27 +171,6 @@ void cDxr3DemuxDevice::SetTrickMode(eDxr3TrickState trickState, int Speed) } // ================================== -void cDxr3DemuxDevice::SetVideoOnlyMode() -{ - m_demuxMode = DXR3_DEMUX_VIDEO_ONLY_MODE; - m_dxr3Device.DisableAudio(); - - if (m_demuxMode == DXR3_DEMUX_TRICK_MODE && m_trickState == DXR3_FREEZE) - { - m_stopScr = m_dxr3Device.GetSysClock(); - // m_dxr3Device.Pause(); - m_vBuf.Stop(); - m_aBuf.Stop(); - } - else - { - m_vBuf.Clear(); - m_aBuf.Clear(); - } - m_dxr3Device.SetPlayMode(); -} - -// ================================== void cDxr3DemuxDevice::StillPicture(const uint8_t* buf, int length) { m_vBuf.Clear(); diff --git a/dxr3demuxdevice.h b/dxr3demuxdevice.h index f1e874b..d544359 100644 --- a/dxr3demuxdevice.h +++ b/dxr3demuxdevice.h @@ -40,41 +40,26 @@ class iAudio; // extract video and audio class cDxr3DemuxDevice : private Uncopyable { public: - cDxr3DemuxDevice(); cDxr3DemuxDevice(cDxr3Interface& dxr3Device); ~cDxr3DemuxDevice(); void setAudio(iAudio *a); - void Stop(void); - void Resync(void); - void Clear(void); - void Init(void); - void SetTvMode(void); - void SetAudioOnlyMode(void); - void SetVideoOnlyMode(void); - void SetReplayMode(void); + void Stop(); + void Resync(); + void Clear(); + void SetReplayMode(); void SetTrickMode(eDxr3TrickState trickState, int Speed = 1); int DemuxPes(const uint8_t* buf, int length, bool bAc3Dts = false); int DemuxAudioPes(const uint8_t* buf, int length); void StillPicture(const uint8_t* buf, int length); - eDxr3DemuxMode GetDemuxMode(void) - { - return m_demuxMode; - }; - eDxr3TrickState GetTrickState(void) - { - return m_trickState; - }; - bool Poll(int TimeoutMs) - { - return m_aBuf.Poll(TimeoutMs) && m_vBuf.Poll(TimeoutMs); - /* - return m_demuxMode == DXR3_DEMUX_AUDIO_ONLY_MODE ? - m_aBuf.Poll(TimeoutMs) : m_aBuf.Poll(TimeoutMs); - */ + eDxr3DemuxMode GetDemuxMode() { return m_demuxMode; } + eDxr3TrickState GetTrickState() { return m_trickState; }; + + bool Poll(int TimeoutMs) { + return m_aBuf.Poll(TimeoutMs) && m_vBuf.Poll(TimeoutMs); }; protected: diff --git a/dxr3interface.h b/dxr3interface.h index 20d60c0..b7b6dc0 100644 --- a/dxr3interface.h +++ b/dxr3interface.h @@ -167,7 +167,6 @@ private: // dxr3 clock cDxr3SysClock* m_pClock; ///< clock used for sync - int m_aspectDelayCounter; uint32_t m_aspectRatio; ///< current used aspect ratio uint32_t m_horizontal; ///< horizontal size of current videostream uint32_t m_vertical; ///< vertical size of current videostream @@ -190,11 +189,11 @@ protected: static void Lock() { - cDxr3Interface::m_pMutex->Lock(); + cDxr3Interface::m_pMutex->Lock(); } static void Unlock() { - cDxr3Interface::m_pMutex->Unlock(); + cDxr3Interface::m_pMutex->Unlock(); } }; |