diff options
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | displaychannel.c | 13 | ||||
-rw-r--r-- | displaychannelview.c | 5 | ||||
-rw-r--r-- | displaychannelview.h | 2 |
4 files changed, 15 insertions, 7 deletions
@@ -401,3 +401,5 @@ Version 1.0.3 - Fixed bugs that configured OSD top and left values are not correctly used in DisplayChannel, DisplayTracks, DisplayVolume and DisplayMessages (closes Tickets 1659 and 1696) +- Fixed a bug with xine as output plugin that VDR crashes if xine plugin + gets closed (closes Ticket 1675) diff --git a/displaychannel.c b/displaychannel.c index c53d5f4..7beed49 100644 --- a/displaychannel.c +++ b/displaychannel.c @@ -24,11 +24,14 @@ cNopacityDisplayChannel::cNopacityDisplayChannel(cImageCache *imgCache, bool Wit FrameTime = FadeTime / 10; channelView = new cNopacityDisplayChannelView(imgCache); - channelView->createOsd(); - channelView->CreatePixmaps(); - channelView->DrawBackground(); - if (config.GetValue("displaySignalStrength")) { - channelView->DrawSignalMeter(); + if (!channelView->createOsd()) { + doOutput = false; + } else { + channelView->CreatePixmaps(); + channelView->DrawBackground(); + if (config.GetValue("displaySignalStrength")) { + channelView->DrawSignalMeter(); + } } } diff --git a/displaychannelview.c b/displaychannelview.c index d4c219f..0b8a5ed 100644 --- a/displaychannelview.c +++ b/displaychannelview.c @@ -52,11 +52,14 @@ cNopacityDisplayChannelView::~cNopacityDisplayChannelView() { delete osd; } -void cNopacityDisplayChannelView::createOsd(void) { +bool cNopacityDisplayChannelView::createOsd(void) { osd = CreateOsd(geoManager->osdLeft, geoManager->osdTop, geoManager->osdWidth, geoManager->osdHeight); + if (!osd) + return false; + return true; } void cNopacityDisplayChannelView::CreatePixmaps(void) { diff --git a/displaychannelview.h b/displaychannelview.h index 0bd3eaf..4b28e04 100644 --- a/displaychannelview.h +++ b/displaychannelview.h @@ -38,7 +38,7 @@ private: public: cNopacityDisplayChannelView(cImageCache *imgCache); virtual ~cNopacityDisplayChannelView(); - void createOsd(void); + bool createOsd(void); void CreatePixmaps(void); void SetAlpha(int alpha); void DrawBackground(void); |