Bug#774038: xbmc: When going fullscreen watching through xbmc-pvr-tvheadend-hts makes video stays black

Bernhard Übelacker bernhardu at vr-web.de
Sat Dec 27 21:07:58 UTC 2014


Package: xbmc
Version: 2:13.2+dfsg1-4
Severity: important

Dear Maintainer,
when playing with xbmc from current jessie with activated xbmc-pvr-tvheadend-
hts
from some satellite broadcasts I get only a black screen when switching from
windowed to fullscreen mode.


These are the circumstances which are relevant (as far as I think):
- using a VDPAU enabled graphics card with needed vdpau libraries installed
- having no .xbmc directory in home directory (just for reproducability)
- starting xbmc
- activating Tvheadend HTSP Client addon
- playing a broadcast through LiveTv in windowed mode (in my case no HD
channel)
  (plays fine in the partial screen with channels on the side as filling the
whole window too.)
- switching to fullscreen mode (e.g. altgr+backslash)
- video stays black, audio still playing, other menus and control elements also
visible.


I did some further investigations:
when changing "videoplayer.usevdpau" to false
    (e.g. .xbmc/userdata/guisettings.xml, <usevdpau>false</usevdpau>)
then the video plays normal after switching to fullscreen.


I compared it to playing a DVD and I think in CDVDPlayer::OpenVideoStream
(which is
also used for my non HD channel) the "hint.software = true;" makes the
difference.
(DVDPlayer.cpp:2991, if DVDSTREAM_TYPE_DVD.)

I made a version which adds this "hint.software = true;" also to the next
paragraph
relevant for the addon.
(DVDPlayer.cpp:3003, if DVDSTREAM_TYPE_PVRMANAGER)
Then this black screen issue is not visible anymore.


I think this happens because on switching to fullscreen some X11 resources get
notifed in CWinSystemX11::OnLostDevice and therefore the
VDPAU::CDecoder::FiniVDPAUOutput
method is called.
Later every CDecoder::Decode call returns VC_ERROR because m_vdpauConfigured
get never true
again.



(gdb) bt
#0  VDPAU::CDecoder::FiniVDPAUOutput (this=0x7f6a840a48c0) at VDPAU.cpp:814
#1  0x00000000008bc091 in VDPAU::CDecoder::OnLostDevice (this=0x7f6a840a48c0)
at VDPAU.cpp:700
#2  0x0000000000eb2b0e in CWinSystemX11::OnLostDevice
(this=this at entry=0x28b0680) at WinSystemX11.cpp:531
#3  0x0000000000eb3152 in CWinSystemX11::SetFullScreen
(this=this at entry=0x28b0680, fullScreen=fullScreen at entry=true, res=...,
blankOtherDisplays=<optimized out>) at WinSystemX11.cpp:204
#4  0x0000000000eaa808 in CWinSystemX11GL::SetFullScreen (this=0x28b0680,
fullScreen=true, res=..., blankOtherDisplays=<optimized out>) at
WinSystemX11GL.cpp:208
#5  0x00000000007d106e in CGraphicContext::SetVideoResolution (this=0x28aeec0,
res=<optimized out>, forceUpdate=<optimized out>) at GraphicContext.cpp:450
#6  0x00000000007024bc in CDisplaySettings::OnSettingChanging (this=0x18f8800
<CDisplaySettings::Get()::sDisplaySettings>, setting=0x10) at
DisplaySettings.cpp:248
#7  0x0000000000c960ad in CSettingsManager::OnSettingChanging (this=<optimized
out>, setting=0x2a78520) at SettingsManager.cpp:716
#8  0x0000000000c8427c in CSettingString::SetValue (this=0x2a78520,
value="DESKTOP") at Setting.cpp:1182
#9  0x0000000000c945a8 in CSettingsManager::SetString (this=0x2926d80,
id="videoscreen.screenmode", value="DESKTOP") at SettingsManager.cpp:585
#10 0x00000000006f2519 in CSettings::SetString (this=<optimized out>,
id="videoscreen.screenmode", value="DESKTOP") at Settings.cpp:562
#11 0x000000000070123a in CDisplaySettings::SetCurrentResolution
(this=0x18f8800 <CDisplaySettings::Get()::sDisplaySettings>,
resolution=resolution at entry=RES_DESKTOP, save=save at entry=true) at
DisplaySettings.cpp:308
#12 0x00000000007d1a3f in CGraphicContext::ToggleFullScreenRoot
(this=0x28aeec0) at GraphicContext.cpp:988
#13 0x0000000000cdf702 in CApplication::OnAction (this=0x28acb80, action=...)
at Application.cpp:2569
#14 0x0000000000ce1848 in CApplication::OnKey (this=0x28acb80, key=...) at
Application.cpp:2517
#15 0x0000000000ce2a34 in CApplication::OnEvent (newEvent=...) at
Application.cpp:473
#16 0x0000000001290848 in CWinEventsSDL::MessagePump (this=<optimized out>) at
WinEventsSDL.cpp:390
#17 0x0000000000ce3c93 in CApplication::FrameMove (this=0x28acb80,
processEvents=<optimized out>, processGUI=<optimized out>) at
Application.cpp:2953
#18 0x0000000000d87b3a in CXBApplicationEx::Run (this=0x28acb80) at
XBApplicationEx.cpp:140
#19 0x0000000000d8e43b in XBMC_Run (renderGUI=<optimized out>) at xbmc.cpp:69
#20 0x00000000006903a8 in main (argc=1, argv=0x7fffcdba4418) at main.cpp:76



1099        return VC_ERROR;
(gdb) print m_vdpauConfigured
$1 = false
(gdb) bt
#0  VDPAU::CDecoder::Decode (this=0x7f4480000950, avctx=0x7f448402ad00,
pFrame=0x7f448402d820) at VDPAU.cpp:1099
#1  0x00000000008b51f2 in CDVDVideoCodecFFmpeg::Decode (this=0x7f448402ab80,
pData=<optimized out>, iSize=<optimized out>, dts=<optimized out>,
    pts=<optimized out>) at DVDVideoCodecFFmpeg.cpp:544
#2  0x0000000001073c0d in CDVDPlayerVideo::Process (this=0x44e9fb8) at
DVDPlayerVideo.cpp:550
#3  0x000000000132d35f in CThread::Action (this=0x44e9fb8) at Thread.cpp:220
#4  0x000000000132d619 in CThread::staticThread (data=0x44e9fb8) at
Thread.cpp:130
#5  0x00007f44e62a80a4 in start_thread (arg=0x7f447effd700) at
pthread_create.c:309
#6  0x00007f44de8adccd in clone () at
.../sysdeps/unix/sysv/linux/x86_64/clone.S:111



I opened it as important, but probably you want to increase it to serious if
you see fit.
If yes probably on way of action for jessie would be to add this "hint.software
= true;"
in DVDPlayer.cpp:3003 as it is already the case for DVD playback.


Kind regards,
Bernhard



-- System Information:
Debian Release: 8.0
  APT prefers testing-updates
  APT policy: (990, 'testing-updates'), (990, 'testing'), (500, 'testing-proposed-updates')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages xbmc depends on:
ii  fonts-dejavu-core  2.34-1
ii  fonts-roboto       1:4.4.4r2-5
ii  libjs-iscroll      5.1.2+dfsg1-1
ii  libjs-jquery       1.7.2+dfsg-3.2
ii  mesa-utils         8.2.0-1
ii  python-imaging     2.6.1-1
pn  python:any         <none>
ii  x11-utils          7.7+2
ii  xbmc-bin           2:13.2+dfsg1-4

xbmc recommends no packages.

xbmc suggests no packages.

-- no debconf information



More information about the pkg-multimedia-maintainers mailing list