diff options
-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; |