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 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 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 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>
|
Jürgen Schmitz <j.schmitz@web.de>
|
||||||
for reporting a bug in displaying the current channel when switching via the SVDRP
|
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
|
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
|
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.
|
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.
|
* 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>
|
#include <assert.h>
|
||||||
@ -338,6 +338,7 @@ sDvbSpuRect cDvbSpuDecoder::CalcAreaSize(sDvbSpuRect fgsize, cBitmap *fgbmp, sDv
|
|||||||
|
|
||||||
void cDvbSpuDecoder::Draw(void)
|
void cDvbSpuDecoder::Draw(void)
|
||||||
{
|
{
|
||||||
|
cMutexLock MutexLock(&mutex);
|
||||||
if (!spubmp) {
|
if (!spubmp) {
|
||||||
Hide();
|
Hide();
|
||||||
return;
|
return;
|
||||||
@ -390,6 +391,7 @@ void cDvbSpuDecoder::Draw(void)
|
|||||||
|
|
||||||
void cDvbSpuDecoder::Hide(void)
|
void cDvbSpuDecoder::Hide(void)
|
||||||
{
|
{
|
||||||
|
cMutexLock MutexLock(&mutex);
|
||||||
delete osd;
|
delete osd;
|
||||||
osd = NULL;
|
osd = NULL;
|
||||||
}
|
}
|
||||||
|
5
dvbspu.h
5
dvbspu.h
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* parts of this file are derived from the OMS program.
|
* 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
|
#ifndef __DVBSPU_H
|
||||||
@ -91,7 +91,8 @@ class cDvbSpuBitmap {
|
|||||||
|
|
||||||
class cDvbSpuDecoder:public cSpuDecoder {
|
class cDvbSpuDecoder:public cSpuDecoder {
|
||||||
private:
|
private:
|
||||||
cOsd * osd;
|
cOsd *osd;
|
||||||
|
cMutex mutex;
|
||||||
|
|
||||||
// processing state
|
// processing state
|
||||||
uint8_t *spu;
|
uint8_t *spu;
|
||||||
|
Loading…
Reference in New Issue
Block a user