MythTV Light v33 on RPi3 Bookworm with recommended playback profile - green screen on playback

For discussion of topics specific to MythTV on Raspberry Pi devices
Post Reply
AustinS68
Newcomer
Posts: 8
Joined: Fri Jul 30, 2021 3:47 pm
Great Britain

MythTV Light v33 on RPi3 Bookworm with recommended playback profile - green screen on playback

Post by AustinS68 »

[This is a follow-up to my superseded thread here: viewtopic.php?f=46&t=5584.]

I have installed Raspberry Pi OS bookworm on a Pi 3, and the MythTV Light image from orangedox (20231014-mythtv-light_33.1-22-g26e76a3949-0_arm64_bookworm.deb). I am using the recommended video playback profile per https://www.mythtv.org/wiki/Raspberry_P ... ck_Profile, i.e.
- decoder: V4L2-decode
- MAX CPUs: 4
- deblocking filter: Y
- renderer: OpenGL YV12
- deinterlacer (SR): medium
- prefer OpenGL deinterlacer: Y

But playback shows just a green screen.

I am a long time MythTV enthusiast (on my fifth backend since 2006-ish, perhaps), and a decently competent programmer (C and a little C++), though not familiar with the MythTV codebase, and I am at the limit of my debugging skills, and stuck. I could do with some expert help.

Based on the notes in https://www.mythtv.org/wiki/Release_Not ... d_playback about deinterlacing, I also tried low quality instead of medium, but with the same result.

There are OpenGL errors in the mythfrontend log when creating input textures in MythOpenGLVideo::SetupFrameFormat:

Code: Select all

2024-01-06 15:27:56.874275 I [3797/3797] CoreContext mythopenglvideo.cpp:477 (SetupFrameFormat) - GLVid: New frame format: None:None 704x576 (Tex: 2D) -> YUV420P:YUV420P 704x576 (Tex: 2D)
2024-01-06 15:27:57.124684 I [3797/3797] CoreContext mythrenderopengl.cpp:189 (MessageLogged) - OpenGL: Src: API Type: Error Msg: GL_INVALID_ENUM in glTextureStorage2DEXT(internalformat = GL_R8)
2024-01-06 15:27:57.207274 I [3797/3797] CoreContext mythrenderopengl.cpp:189 (MessageLogged) - OpenGL: Src: API Type: Error Msg: GL_INVALID_ENUM in glTextureStorage2DEXT(internalformat = GL_R8)
2024-01-06 15:27:57.207470 I [3797/3797] CoreContext mythrenderopengl.cpp:189 (MessageLogged) - OpenGL: Src: API Type: Error Msg: GL_INVALID_ENUM in glTextureStorage2DEXT(internalformat = GL_R8)
2024-01-06 15:27:57.207595 I [3797/3797] CoreContext mythopenglvideo.cpp:514 (SetupFrameFormat) - GLVid: Created 3 input textures for 'opengl-yv12'
Then, throughout when playback is supposedly happening (and I am getting seeing just a green screen), I see more errors like this (always in threes):

Code: Select all

2024-01-06 15:27:59.660299 I [3797/3797] CoreContext mythrenderopengl.cpp:189 (MessageLogged) - OpenGL: Src: API Type: Error Msg: GL_INVALID_OPERATION in glTextureSubImage2DEXT(invalid texture level 0)
2024-01-06 15:27:59.660332 I [3797/3797] CoreContext mythrenderopengl.cpp:189 (MessageLogged) - OpenGL: Src: API Type: Error Msg: GL_INVALID_OPERATION in glTextureSubImage2DEXT(invalid texture level 0)
2024-01-06 15:27:59.660353 I [3797/3797] CoreContext mythrenderopengl.cpp:189 (MessageLogged) - OpenGL: Src: API Type: Error Msg: GL_INVALID_OPERATION in glTextureSubImage2DEXT(invalid texture level 0)
I have verified that my OpenGL installation is functional by running the demos from ftp://ftp.freedesktop.org/pub/mesa/demos/, which seem to work. The OpenGL debug output early in the mythfrontend log is as follows:

Code: Select all

2024-01-06 15:19:47.917312 I [3797/3797] CoreContext mythrenderopengl.cpp:238 (Init) - OpenGL: GPU debug logging started (async)
2024-01-06 15:19:47.925213 I [3797/3797] CoreContext mythrenderopengl.cpp:419 (DebugFeatures) - OpenGL: OpenGL vendor        : Broadcom
2024-01-06 15:19:47.925227 I [3797/3797] CoreContext mythrenderopengl.cpp:420 (DebugFeatures) - OpenGL: OpenGL renderer      : VC4 V3D 2.1
2024-01-06 15:19:47.925235 I [3797/3797] CoreContext mythrenderopengl.cpp:421 (DebugFeatures) - OpenGL: OpenGL version       : 2.1 Mesa 23.2.1-1~bpo12+rpt2
2024-01-06 15:19:47.925245 I [3797/3797] CoreContext mythrenderopengl.cpp:422 (DebugFeatures) - OpenGL: Qt platform          : xcb
2024-01-06 15:19:47.925495 I [3797/3797] CoreContext mythrenderopengl.cpp:425 (DebugFeatures) - OpenGL: EGL display          : Yes
2024-01-06 15:19:47.925503 I [3797/3797] CoreContext mythrenderopengl.cpp:426 (DebugFeatures) - OpenGL: EGL images           : Yes
2024-01-06 15:19:47.925512 I [3797/3797] CoreContext mythrenderopengl.cpp:428 (DebugFeatures) - OpenGL: Qt OpenGL module     : OpenGL (not ES)
2024-01-06 15:19:47.925519 I [3797/3797] CoreContext mythrenderopengl.cpp:429 (DebugFeatures) - OpenGL: Qt OpenGL format     : OpenGL 2.1
2024-01-06 15:19:47.925528 I [3797/3797] CoreContext mythrenderopengl.cpp:430 (DebugFeatures) - OpenGL: Qt OpenGL surface    : RGBA: 8:8:8:0 Depth: 0 Stencil: 0
2024-01-06 15:19:47.925537 I [3797/3797] CoreContext mythrenderopengl.cpp:431 (DebugFeatures) - OpenGL: Max texture size     : 2048
2024-01-06 15:19:47.925549 I [3797/3797] CoreContext mythrenderopengl.cpp:432 (DebugFeatures) - OpenGL: Shaders              : Vertex,Fragment
2024-01-06 15:19:47.925557 I [3797/3797] CoreContext mythrenderopengl.cpp:433 (DebugFeatures) - OpenGL: 16bit framebuffers   : Yes
2024-01-06 15:19:47.925563 I [3797/3797] CoreContext mythrenderopengl.cpp:434 (DebugFeatures) - OpenGL: Unpack Subimage      : Yes
2024-01-06 15:19:47.925570 I [3797/3797] CoreContext mythrenderopengl.cpp:435 (DebugFeatures) - OpenGL: Buffer mapping       : Yes
2024-01-06 15:19:47.925576 I [3797/3797] CoreContext mythrenderopengl.cpp:436 (DebugFeatures) - OpenGL: Rectangular textures : Yes
2024-01-06 15:19:47.925583 I [3797/3797] CoreContext mythrenderopengl.cpp:437 (DebugFeatures) - OpenGL: NPOT textures        : Yes
2024-01-06 15:19:47.925590 I [3797/3797] CoreContext mythrenderopengl.cpp:438 (DebugFeatures) - OpenGL: Max texture units    : 32
2024-01-06 15:19:47.925598 I [3797/3797] CoreContext mythrenderopengl.cpp:439 (DebugFeatures) - OpenGL: GL_RED/GL_R8         : Yes
My logfile is too big to attach, but it's in my Google Drive here: https://drive.google.com/file/d/1aiKDVS ... drive_link.

Thank you.
cliveb
Senior
Posts: 153
Joined: Fri Jan 08, 2016 9:59 am
Great Britain

Re: MythTV Light v33 on RPi3 Bookworm with recommended playback profile - green screen on playback

Post by cliveb »

It seems that you are fairly determined to get a frontend working on the RPi3. I'm not sure why - perhaps because it used to work on a previous Myth release and therefore there must be a way to get it going again? But in the end, there's only so much frustration you can take. Sometimes throwing in the towel is the easiest way forward.

I ran a frontend on a RPi4B for a while, but eventually decided that the RPi just isn't a good platform for a Myth frontend. It teases you with being "almost there", but you can tell it's on the edge. I've come to the conclusion that the most stable platform for a Myth frontend is x86.

If you are open to the idea of trying different hardware, I can confirm that the Myth frontend runs very well on an IGEL M340C thin client. Playback of FreeviewHD recordings works fine. There are loads of them kicking around on eBay for about £20. I posted about this cheap device a while back - viewtopic.php?f=3&t=5540
I did try jfabernathy's suggestion of a Firestick 4K, but:
1. Leanfront works quite well, but I don't like its UI. It is also a bit inconsistent responding to requests for jumping fwd/back during playback.
2. The full MythtvLite frontend just about runs on a Firestick 4K, but it's clearly borderline and sometimes doesn't work well.

Hope this is of interest to you.
Last edited by Steve Goodey on Wed Jan 31, 2024 11:19 am, edited 1 time in total.
Reason: Added URL for topic mentioned.
gedakc
Senior
Posts: 102
Joined: Fri Jul 18, 2014 1:28 am
Canada

Re: MythTV Light v33 on RPi3 Bookworm with recommended playback profile - green screen on playback

Post by gedakc »

@AustinS68 you mentioned that the RPi3 worked for you with a previous release of MythTV. Perhaps you might consider going back to that prior version?

All my family members run an old version which is Mythbuntu 14.04 with MythTV 0.27 on Intel x86 hardware with some also using an RPi2 MythTV frontend. The PVR is treated as an appliance and we try to leave it alone as long as it continues to work.

If I recall correctly there were major changes to the way the graphics were handled somewhere around the time MythTV 31 was released. I tried at that time to use an RPi4 with MythTV 31, but was not satisfied with the viewing experience on RPi.

For me the RPi4 continues to work well as a MythBackend and I currently use an NVidia Shield 2017 with MythFrontend to watch recordings from the RPi4. I use the RPi4 as a backup PVR.
Post Reply