diff options
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | dxr3spudecoder.c | 8 | ||||
-rw-r--r-- | dxr3spudecoder.h | 1 |
3 files changed, 9 insertions, 1 deletions
@@ -290,3 +290,4 @@ NOTE: I havent found time to include all of the languages, will be done in pre2 - sync SPU decoder with VDR 1.3.23 (Ville Skyttä) - register only needed ffmpeg codec(s) (Marco Schlüßler) - fix crash at exit (Marco Schlüßler) +- add support for mandatory subtitles (Marco Schlüßler) diff --git a/dxr3spudecoder.c b/dxr3spudecoder.c index 8b09524..4824e6c 100644 --- a/dxr3spudecoder.c +++ b/dxr3spudecoder.c @@ -181,6 +181,8 @@ bool cDxr3SpuBitmap::getMinSize(const aDxr3SpuPalDescr paldescr, << size.x2 << ", " << size.y2 << ")\n"; } */ + if (size.x1 > size.x2 || size.y1 > size.y2) + return false; return ret; } @@ -266,6 +268,7 @@ cDxr3SpuDecoder::cDxr3SpuDecoder() spu = NULL; osd = NULL; spubmp = NULL; + allowedShow = true; } // ================================== @@ -302,6 +305,9 @@ void cDxr3SpuDecoder::processSPU(uint32_t pts, uint8_t * buf) prev_DCSQ_offset = 0; clean = true; +#if VDRVERSNUM >= 10318 + allowedShow = AllowedShow; +#endif } // ================================== @@ -647,7 +653,7 @@ int cDxr3SpuDecoder::setTime(uint32_t pts) state = spSHOW; } - if (state == spSHOW || state == spMENU) + if ((state == spSHOW && allowedShow) || state == spMENU) { Draw(); } diff --git a/dxr3spudecoder.h b/dxr3spudecoder.h index d44040a..e7ea9ab 100644 --- a/dxr3spudecoder.h +++ b/dxr3spudecoder.h @@ -131,6 +131,7 @@ private: uint32_t spupts; bool clean; bool ready; + bool allowedShow; enum spFlag { |