summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY2
-rw-r--r--displaychannel.c13
-rw-r--r--displaychannelview.c5
-rw-r--r--displaychannelview.h2
4 files changed, 15 insertions, 7 deletions
diff --git a/HISTORY b/HISTORY
index be099bd..8b945b9 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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);