mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed a race condition in the SPU decoder
This commit is contained in:
parent
9607fd33a0
commit
596e965a53
@ -1241,6 +1241,7 @@ Marco Schl
|
||||
for fixing detecting short channel names for "Kabel Deutschland"
|
||||
for reporting that the FATALERRNO macro needs to check for a non-zero errno value
|
||||
for reporting missing mutex locks in cCiMenu::Abort() and cCiEnquiry::Abort()
|
||||
for fixing a race condition in the SPU decoder
|
||||
|
||||
Jürgen Schmitz <j.schmitz@web.de>
|
||||
for reporting a bug in displaying the current channel when switching via the SVDRP
|
||||
|
1
HISTORY
1
HISTORY
@ -3933,3 +3933,4 @@ Video Disk Recorder Revision History
|
||||
commands of any length. The MAXPARSEBUFFER macros is now obsolete and has
|
||||
been removed. If a plugin has used that macro, it should either define
|
||||
a buffer size of its own, or use cReadLine when reading files.
|
||||
- Fixed a race condition in the SPU decoder (thanks to Marco Schlüßler).
|
||||
|
4
dvbspu.c
4
dvbspu.c
@ -8,7 +8,7 @@
|
||||
*
|
||||
* parts of this file are derived from the OMS program.
|
||||
*
|
||||
* $Id: dvbspu.c 1.16 2005/11/04 14:19:07 kls Exp $
|
||||
* $Id: dvbspu.c 1.17 2005/11/05 12:08:15 kls Exp $
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
@ -338,6 +338,7 @@ sDvbSpuRect cDvbSpuDecoder::CalcAreaSize(sDvbSpuRect fgsize, cBitmap *fgbmp, sDv
|
||||
|
||||
void cDvbSpuDecoder::Draw(void)
|
||||
{
|
||||
cMutexLock MutexLock(&mutex);
|
||||
if (!spubmp) {
|
||||
Hide();
|
||||
return;
|
||||
@ -390,6 +391,7 @@ void cDvbSpuDecoder::Draw(void)
|
||||
|
||||
void cDvbSpuDecoder::Hide(void)
|
||||
{
|
||||
cMutexLock MutexLock(&mutex);
|
||||
delete osd;
|
||||
osd = NULL;
|
||||
}
|
||||
|
3
dvbspu.h
3
dvbspu.h
@ -8,7 +8,7 @@
|
||||
*
|
||||
* parts of this file are derived from the OMS program.
|
||||
*
|
||||
* $Id: dvbspu.h 1.9 2005/05/07 11:14:03 kls Exp $
|
||||
* $Id: dvbspu.h 1.10 2005/11/05 12:08:47 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __DVBSPU_H
|
||||
@ -92,6 +92,7 @@ class cDvbSpuBitmap {
|
||||
class cDvbSpuDecoder:public cSpuDecoder {
|
||||
private:
|
||||
cOsd *osd;
|
||||
cMutex mutex;
|
||||
|
||||
// processing state
|
||||
uint8_t *spu;
|
||||
|
Loading…
Reference in New Issue
Block a user