diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2010-03-03 20:49:30 +0100 |
---|---|---|
committer | Christian Gmeiner <christian.gmeiner@gmail.com> | 2010-03-03 20:49:30 +0100 |
commit | cf802dcabc8388df1519dbe10d8f8a247fd9fe72 (patch) | |
tree | d0ce9143f3fd706132ec6bc92f82fdc45d9df787 | |
parent | a0e20d647c1c5b00ab01ba9a8b06d736992d2256 (diff) | |
download | vdr-plugin-dxr3-cf802dcabc8388df1519dbe10d8f8a247fd9fe72.tar.gz vdr-plugin-dxr3-cf802dcabc8388df1519dbe10d8f8a247fd9fe72.tar.bz2 |
Add mutex to protect play methods and setplaymode method
-rw-r--r-- | dxr3device.c | 6 | ||||
-rw-r--r-- | dxr3device.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/dxr3device.c b/dxr3device.c index bcbf70b..938388a 100644 --- a/dxr3device.c +++ b/dxr3device.c @@ -118,6 +118,8 @@ bool cDxr3Device::CanReplay() const bool cDxr3Device::SetPlayMode(ePlayMode PlayMode) { + cMutexLock l(&mutex); + dsyslog("[dxr3-device] setting playmode %d", PlayMode); uint32_t val; @@ -216,6 +218,8 @@ bool cDxr3Device::Poll(cPoller &Poller, int TimeoutMs) int cDxr3Device::PlayVideo(const uchar *Data, int Length) { + cMutexLock l(&mutex); + cDxr3PesFrame frame; frame.parse(Data, Length); uint32_t pts = frame.GetPts(); @@ -246,6 +250,8 @@ int cDxr3Device::PlayVideo(const uchar *Data, int Length) int cDxr3Device::PlayAudio(const uchar *Data, int Length, uchar Id) { + cMutexLock l(&mutex); + cDxr3PesFrame frame; frame.parse(Data, Length); diff --git a/dxr3device.h b/dxr3device.h index 49cf003..b056d08 100644 --- a/dxr3device.h +++ b/dxr3device.h @@ -107,6 +107,7 @@ private: void playBlackFrame(); void playSilentAudio(); + cMutex mutex; uchar *silentAudio; cDxr3AudioDecoder *aDecoder; cDxr3SpuDecoder* spuDecoder; |