[mythtv] Picture in Picture broken

Klaas de Waal klaas.de.waal at gmail.com
Sun Mar 15 09:57:41 UTC 2020


On Fri, 13 Mar 2020 at 23:35, Mark Kendall <mark.kendall at gmail.com> wrote:

> On Wed, 11 Mar 2020 at 20:11, Klaas de Waal <klaas.de.waal at gmail.com>
> wrote:
>
> > Here the PIP/main window exchange always hangs. Repeat: lock on all
> attempts to exchange.
> > From this I have made a gdb backtrace which is attached.
>
> OK - plan A is not going to work.
>
> The more I looked at the threading issues, the more problems I saw and
> the more deadlocks I could trigger... and no amount of tweaking will
> fix it.
>
> So onto plan B.
>
> I've disabled PiP in v31, reverted some of the attempts to fix the
> deadlocks and started to sanitise some of the locking in the decoder
> classes.
>
> I have 2 more patches, that will probably go in tomorrow morning, that
> factor out the most significant global, static locks in the codebase.
>
> While I am pretty comfortable with these patches and they are not at
> face value too complicated, they do make some fundamental changes to
> decoding of ALL media - not just PiP.
>
> So volunteers welcome for some heavy duty testing in the next few days
> - otherwise the code is unlikely to make v31.
>
>
> Quick test with the latest as of this morning.

Good news: exchanging PIP and main windows is OK, also with live TV.

Bad news: Playback is failing on 60Hz HD content (1080 interlaced), it just
freezes after a few frames.
This uses VDPAU for decoding. Last page of the log is here.
Playback of 60Hz SD content is OK but that is decoded with ffmpeg.
Playback of local broadcast 50Hz  content (1080 interlaced) is OK, both
live and recordings. With VDPAU
--- last page of mythfrontend.log -----------
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
opengl/mythopenglinterop.cpp:159 (GetInteropType) OpenGLInterop: Rendering
supported for frame type 'VDPAU' with VDPAU
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
opengl/mythpainteropengl.cpp:74 (ClearCache) Clearing OpenGL painter cache.
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
mythdisplay.cpp:669 (SwitchToVideo) Display: Using current mode
1920x1080 at 59.9394Hz
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
mythvideoout.cpp:394 (SetDeinterlacing) VideoOutput: SetDeinterlacing
(Doublerate 1): Single High|CPU|GLSL|DRIVER Double High|CPU|GLSL|DRIVER
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
tv_play.cpp:5702 (StartPlayer) TV::StartPlayer(): Created player.
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
tv_play.cpp:2398 (HandleStateChange) TV::HandleStateChange(): Changing from
None to WatchingVideo
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I Decoder
mythplayer.cpp:3122 (QueueCallback) Player(a): Queuing callback for VDPAU
context creation
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
tv_play.cpp:2484 (HandleStateChange) TV::HandleStateChange(): Main UI
disabled.
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
tv_play.cpp:391 (StartTV) TV::StartTV(): Entering main playback loop.
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
mythplayer.cpp:3110 (ProcessCallbacks) Player(a): Executing VDPAU context
creation
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
opengl/mythopenglinterop.cpp:159 (GetInteropType) OpenGLInterop: Rendering
supported for frame type 'VDPAU' with VDPAU
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
mythvideoout.cpp:394 (SetDeinterlacing) VideoOutput: SetDeinterlacing
(Doublerate 1): Single High|CPU|GLSL|DRIVER Double High|CPU|GLSL|DRIVER
Mar 15 10:41:29 myth3 mythfrontend: mythfrontend[1647]: W CoreContext
opengl/mythopenglvideo.cpp:516 (SetupFrameFormat) GLVid: New frame format:
None:None 1920x1080 (Tex: 2D) -> VDPAU:ARGB32 1920x1080 (Tex: 2D)
Mar 15 10:41:33 myth3 mythfrontend: mythfrontend[1647]: N CoreContext
mythplayer.cpp:2025 (PrebufferEnoughFrames) Player(a): Waited 101ms for
video buffers AAAAAAAAAAALLp
Mar 15 10:41:34 myth3 mythfrontend: mythfrontend[1647]: N CoreContext
mythplayer.cpp:2025 (PrebufferEnoughFrames) Player(a): Waited 203ms for
video buffers AAAAAAAAAAALLp
Mar 15 10:41:34 myth3 mythfrontend: mythfrontend[1647]: N CoreContext
mythplayer.cpp:2025 (PrebufferEnoughFrames) Player(a): Waited 304ms for
video buffers AAAAAAAAAAALLp
Mar 15 10:41:34 myth3 mythfrontend: mythfrontend[1647]: N CoreContext
mythplayer.cpp:2025 (PrebufferEnoughFrames) Player(a): Waited 406ms for
video buffers AAAAAAAAAAALLp
Mar 15 10:41:34 myth3 mythfrontend: mythfrontend[1647]: N CoreContext
mythplayer.cpp:2025 (PrebufferEnoughFrames) Player(a): Waited 507ms for
video buffers AAAAAAAAAAALLp
Mar 15 10:41:34 myth3 mythfrontend: mythfrontend[1647]: N CoreContext
mythplayer.cpp:2025 (PrebufferEnoughFrames) Player(a): Waited 609ms for
video buffers AAAAAAAAAAALLp
Mar 15 10:41:34 myth3 mythfrontend: mythfrontend[1647]: N CoreContext
mythplayer.cpp:2025 (PrebufferEnoughFrames) Player(a): Waited 710ms for
video buffers AAAAAAAAAAALLp
Mar 15 10:41:34 myth3 mythfrontend: mythfrontend[1647]: N CoreContext
mythplayer.cpp:2025 (PrebufferEnoughFrames) Player(a): Waited 812ms for
video buffers AAAAAAAAAAALLp
Mar 15 10:41:34 myth3 mythfrontend: mythfrontend[1647]: N CoreContext
mythplayer.cpp:2025 (PrebufferEnoughFrames) Player(a): Waited 913ms for
video buffers AAAAAAAAAAALLp
Mar 15 10:41:34 myth3 mythfrontend: mythfrontend[1647]: N CoreContext
mythplayer.cpp:2014 (PrebufferEnoughFrames) Player(a): To see more
buffering messages use -v playback
Mar 15 10:42:03 myth3 mythfrontend: mythfrontend[1647]: E CoreContext
mythplayer.cpp:2072 (PrebufferEnoughFrames) Player(a): Waited too long for
decoder to fill video buffers. Exiting..
Mar 15 10:42:03 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
tv_play.cpp:2146 (HandleStateChange) TV::HandleStateChange(): Attempting to
change from WatchingVideo to None
Mar 15 10:42:04 myth3 mythfrontend: mythfrontend[1647]: W CoreContext
mythplayer.cpp:3144 (PauseDecoder) Player(a): Waited 100ms for decoder to
pause
Mar 15 10:42:19 myth3 mythfrontend: mythfrontend[1647]: E CoreContext
mythplayer.cpp:3211 (DecoderEnd) Player(a): Failed to stop decoder loop.
Mar 15 10:42:19 myth3 mythfrontend: mythfrontend[1647]: I CoreContext
mythplayer.cpp:5426 (SetDecoder) Player(a): Waited 10ms for decoder lock
^C
---- end of log ----------

I can generate any amount of logs needed but probably you know already what
is happening...

Groetjes,
Klaas.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mythtv.org/pipermail/mythtv-dev/attachments/20200315/09b582ef/attachment.htm>


More information about the mythtv-dev mailing list