From cf802dcabc8388df1519dbe10d8f8a247fd9fe72 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Wed, 3 Mar 2010 20:49:30 +0100 Subject: Add mutex to protect play methods and setplaymode method --- dxr3device.c | 6 ++++++ dxr3device.h | 1 + 2 files changed, 7 insertions(+) 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; -- cgit v1.2.3