mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Implemented displaying mandatory subtitles in the SPU decoder
This commit is contained in:
		| @@ -1101,6 +1101,7 @@ Marco Schl | |||||||
|  the end of the given buffer, which has caused some unjustified "unknown picture |  the end of the given buffer, which has caused some unjustified "unknown picture | ||||||
|  type errors" |  type errors" | ||||||
|  for some improvements to cPoller |  for some improvements to cPoller | ||||||
|  |  for implementing displaying mandatory subtitles in the SPU decoder | ||||||
|  |  | ||||||
| J<EFBFBD>rgen Schmitz <j.schmitz@web.de> | J<EFBFBD>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 | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -3278,3 +3278,5 @@ Video Disk Recorder Revision History | |||||||
|   Gleichmann). |   Gleichmann). | ||||||
| - Fixed deleting a menu item in case the next item is not selectable (thanks to | - Fixed deleting a menu item in case the next item is not selectable (thanks to | ||||||
|   Dino Ravnic). |   Dino Ravnic). | ||||||
|  | - Implemented displaying mandatory subtitles in the SPU decoder (thanks to Marco | ||||||
|  |   Schl<68><6C>ler). | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								dvbspu.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								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.10 2005/01/08 09:53:44 kls Exp $ |  * $Id: dvbspu.c 1.11 2005/01/08 09:57:03 kls Exp $ | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include <assert.h> | #include <assert.h> | ||||||
| @@ -227,6 +227,7 @@ cDvbSpuDecoder::cDvbSpuDecoder() | |||||||
|     spu = NULL; |     spu = NULL; | ||||||
|     osd = NULL; |     osd = NULL; | ||||||
|     spubmp = NULL; |     spubmp = NULL; | ||||||
|  |     allowedShow = false; | ||||||
| } | } | ||||||
|  |  | ||||||
| cDvbSpuDecoder::~cDvbSpuDecoder() | cDvbSpuDecoder::~cDvbSpuDecoder() | ||||||
| @@ -236,7 +237,7 @@ cDvbSpuDecoder::~cDvbSpuDecoder() | |||||||
|     delete osd; |     delete osd; | ||||||
| } | } | ||||||
|  |  | ||||||
| void cDvbSpuDecoder::processSPU(uint32_t pts, uint8_t * buf) | void cDvbSpuDecoder::processSPU(uint32_t pts, uint8_t * buf, bool AllowedShow) | ||||||
| { | { | ||||||
|     setTime(pts); |     setTime(pts); | ||||||
|  |  | ||||||
| @@ -252,6 +253,7 @@ void cDvbSpuDecoder::processSPU(uint32_t pts, uint8_t * buf) | |||||||
|     prev_DCSQ_offset = 0; |     prev_DCSQ_offset = 0; | ||||||
|  |  | ||||||
|     clean = true; |     clean = true; | ||||||
|  |     allowedShow = AllowedShow; | ||||||
| } | } | ||||||
|  |  | ||||||
| void cDvbSpuDecoder::setScaleMode(cSpuDecoder::eScaleMode ScaleMode) | void cDvbSpuDecoder::setScaleMode(cSpuDecoder::eScaleMode ScaleMode) | ||||||
| @@ -530,7 +532,7 @@ int cDvbSpuDecoder::setTime(uint32_t pts) | |||||||
|         } else if (!clean) |         } else if (!clean) | ||||||
|             state = spSHOW; |             state = spSHOW; | ||||||
|  |  | ||||||
|         if (state == spSHOW || state == spMENU) |         if ((state == spSHOW && allowedShow) || state == spMENU) | ||||||
|             Draw(); |             Draw(); | ||||||
|  |  | ||||||
|         if (state == spHIDE) |         if (state == spHIDE) | ||||||
|   | |||||||
							
								
								
									
										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.6 2004/11/06 11:42:37 kls Exp $ |  * $Id: dvbspu.h 1.7 2005/01/08 09:59:44 kls Exp $ | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #ifndef __DVBSPU_H | #ifndef __DVBSPU_H | ||||||
| @@ -120,6 +120,7 @@ class cDvbSpuDecoder:public cSpuDecoder { | |||||||
|     uint16_t prev_DCSQ_offset; |     uint16_t prev_DCSQ_offset; | ||||||
|  |  | ||||||
|     cDvbSpuBitmap *spubmp; |     cDvbSpuBitmap *spubmp; | ||||||
|  |     bool allowedShow; | ||||||
|   private: |   private: | ||||||
|     int cmdOffs(void) { |     int cmdOffs(void) { | ||||||
|         return ((spu[2] << 8) | spu[3]); |         return ((spu[2] << 8) | spu[3]); | ||||||
| @@ -147,7 +148,7 @@ class cDvbSpuDecoder:public cSpuDecoder { | |||||||
|     void Hide(void); |     void Hide(void); | ||||||
|     void Draw(void); |     void Draw(void); | ||||||
|     bool IsVisible(void) { return osd != NULL; } |     bool IsVisible(void) { return osd != NULL; } | ||||||
|     void processSPU(uint32_t pts, uint8_t * buf); |     void processSPU(uint32_t pts, uint8_t * buf, bool AllowedShow); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| // --- cDvbSpuPalette ------------------------------------------- | // --- cDvbSpuPalette ------------------------------------------- | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								spu.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								spu.h
									
									
									
									
									
								
							| @@ -6,7 +6,7 @@ | |||||||
|  * This code is distributed under the terms and conditions of the |  * This code is distributed under the terms and conditions of the | ||||||
|  * GNU GENERAL PUBLIC LICENSE. See the file COPYING for details. |  * GNU GENERAL PUBLIC LICENSE. See the file COPYING for details. | ||||||
|  * |  * | ||||||
|  * $Id: spu.h 1.2 2004/06/12 12:56:27 kls Exp $ |  * $Id: spu.h 1.3 2005/01/08 09:58:35 kls Exp $ | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #ifndef __SPU_VDR_H | #ifndef __SPU_VDR_H | ||||||
| @@ -35,7 +35,7 @@ class cSpuDecoder { | |||||||
|     virtual void Hide(void) = 0; |     virtual void Hide(void) = 0; | ||||||
|     virtual void Draw(void) = 0; |     virtual void Draw(void) = 0; | ||||||
|     virtual bool IsVisible(void) = 0; |     virtual bool IsVisible(void) = 0; | ||||||
|     virtual void processSPU(uint32_t pts, uint8_t * buf) = 0; |     virtual void processSPU(uint32_t pts, uint8_t * buf, bool AllowedShow = true) = 0; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| #endif                          // __SPU_VDR_H | #endif                          // __SPU_VDR_H | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user