mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed handling subtitle color palettes on channels where subtitles appear "word by word"
This commit is contained in:
parent
7519c21a51
commit
a949b9c7d2
@ -1131,6 +1131,8 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>
|
|||||||
for adding support for handling DVB-T2 transponders
|
for adding support for handling DVB-T2 transponders
|
||||||
for suggesting to add member functions Adapter() and Frontend() to cDvbDevice
|
for suggesting to add member functions Adapter() and Frontend() to cDvbDevice
|
||||||
for improving handling subtitles of BBC channels
|
for improving handling subtitles of BBC channels
|
||||||
|
for fixing handling subtitle color palettes on channels where subtitles appear
|
||||||
|
"word by word"
|
||||||
|
|
||||||
Ralf Klueber <ralf.klueber@vodafone.com>
|
Ralf Klueber <ralf.klueber@vodafone.com>
|
||||||
for reporting a bug in cutting a recording if there is only a single editing mark
|
for reporting a bug in cutting a recording if there is only a single editing mark
|
||||||
|
4
HISTORY
4
HISTORY
@ -6889,7 +6889,7 @@ Video Disk Recorder Revision History
|
|||||||
- Fixed switching into time shift mode when pausing live video (thanks to Reinhard
|
- Fixed switching into time shift mode when pausing live video (thanks to Reinhard
|
||||||
Nissl for helping to debug this one).
|
Nissl for helping to debug this one).
|
||||||
|
|
||||||
2012-02-21: Version 1.7.25
|
2012-02-22: Version 1.7.25
|
||||||
|
|
||||||
- The fps value for channels where it differs from the default is now set correctly
|
- The fps value for channels where it differs from the default is now set correctly
|
||||||
when pausing live video.
|
when pausing live video.
|
||||||
@ -6904,3 +6904,5 @@ Video Disk Recorder Revision History
|
|||||||
device.
|
device.
|
||||||
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
|
||||||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||||||
|
- Fixed handling subtitle color palettes on channels where subtitles appear
|
||||||
|
"word by word" (thanks to Rolf Ahrenberg).
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Original author: Marco Schlüßler <marco@lordzodiac.de>
|
* Original author: Marco Schlüßler <marco@lordzodiac.de>
|
||||||
* With some input from the "subtitle plugin" by Pekka Virtanen <pekka.virtanen@sci.fi>
|
* With some input from the "subtitle plugin" by Pekka Virtanen <pekka.virtanen@sci.fi>
|
||||||
*
|
*
|
||||||
* $Id: dvbsubtitle.c 2.22 2012/02/13 09:48:18 kls Exp $
|
* $Id: dvbsubtitle.c 2.23 2012/02/22 09:33:45 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -1035,7 +1035,7 @@ int cDvbSubtitleConverter::ExtractSegment(const uchar *Data, int Length, int64_t
|
|||||||
if (!page) {
|
if (!page) {
|
||||||
page = new cDvbSubtitlePage(pageId);
|
page = new cDvbSubtitlePage(pageId);
|
||||||
pages->Add(page);
|
pages->Add(page);
|
||||||
dbgpages("Create SubtitlePage %d (total pages = %d)\n", pageId, pages->Count());
|
dbgpages("Create SubtitlePage %d (total pages = %d)\n", pageId, pages->Count());
|
||||||
}
|
}
|
||||||
if (Pts)
|
if (Pts)
|
||||||
page->SetPts(Pts);
|
page->SetPts(Pts);
|
||||||
@ -1112,7 +1112,7 @@ int cDvbSubtitleConverter::ExtractSegment(const uchar *Data, int Length, int64_t
|
|||||||
}
|
}
|
||||||
case CLUT_DEFINITION_SEGMENT: {
|
case CLUT_DEFINITION_SEGMENT: {
|
||||||
dbgsegments("CLUT_DEFINITION_SEGMENT\n");
|
dbgsegments("CLUT_DEFINITION_SEGMENT\n");
|
||||||
cSubtitleClut *clut = page->GetClutById(bs.GetBits(8), true);
|
cSubtitleClut *clut = page->GetClutById(bs.GetBits(8), true);
|
||||||
int clutVersion = bs.GetBits(4);
|
int clutVersion = bs.GetBits(4);
|
||||||
if (clutVersion == clut->Version())
|
if (clutVersion == clut->Version())
|
||||||
break; // no update
|
break; // no update
|
||||||
@ -1155,7 +1155,6 @@ int cDvbSubtitleConverter::ExtractSegment(const uchar *Data, int Length, int64_t
|
|||||||
clut->SetColor(8, clutEntryId, value);
|
clut->SetColor(8, clutEntryId, value);
|
||||||
}
|
}
|
||||||
dbgcluts("\n");
|
dbgcluts("\n");
|
||||||
page->UpdateRegionPalette(clut);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case OBJECT_DATA_SEGMENT: {
|
case OBJECT_DATA_SEGMENT: {
|
||||||
@ -1310,7 +1309,11 @@ void cDvbSubtitleConverter::FinishPage(cDvbSubtitlePage *Page)
|
|||||||
cDvbSubtitleBitmaps *Bitmaps = new cDvbSubtitleBitmaps(Page->Pts(), Page->Timeout(), Areas, NumAreas, osdFactorX, osdFactorY);
|
cDvbSubtitleBitmaps *Bitmaps = new cDvbSubtitleBitmaps(Page->Pts(), Page->Timeout(), Areas, NumAreas, osdFactorX, osdFactorY);
|
||||||
bitmaps->Add(Bitmaps);
|
bitmaps->Add(Bitmaps);
|
||||||
for (cSubtitleRegion *sr = Page->regions.First(); sr; sr = Page->regions.Next(sr)) {
|
for (cSubtitleRegion *sr = Page->regions.First(); sr; sr = Page->regions.Next(sr)) {
|
||||||
sr->UpdateTextData(Page->GetClutById(sr->ClutId()));
|
cSubtitleClut *clut = Page->GetClutById(sr->ClutId());
|
||||||
|
if (!clut)
|
||||||
|
continue;
|
||||||
|
sr->Replace(*clut->GetPalette(sr->Bpp()));
|
||||||
|
sr->UpdateTextData(clut);
|
||||||
int posX = sr->HorizontalAddress();
|
int posX = sr->HorizontalAddress();
|
||||||
int posY = sr->VerticalAddress();
|
int posY = sr->VerticalAddress();
|
||||||
if (sr->Width() > 0 && sr->Height() > 0) {
|
if (sr->Width() > 0 && sr->Height() > 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user