warpme / minimyth2

Distro to make disk-less MythTV appliance
https://github.com/warpme/minimyth2/wiki
69 stars 20 forks source link

v32 video playback on IONITX-C-E #32

Closed kjeacle closed 1 year ago

kjeacle commented 1 year ago

I have an old Zotac IONITX-C-E motherboard with a 1.6GHz Atom 230. It works with MiniMyth2 on v31. Menus are a bit slow but VDPAU video playback is perfect.

With v32, it boots and the menus work but any attempt at playback shows the first frame and then freezes and eventually quits back to the menus.

I have tried a few different video playback profiles but it doesn't seem to make any difference.

Am I out of luck with this old hardware once upgraded to v32?

inxi.txt system-info.txt

warpme commented 1 year ago

Karl, When I'll be back from vacations - I'll try to reproduce your's issue on my ancient AsRock330Pro box...

warpme commented 1 year ago

Karl, I booted mm2 on my ION1 (GT210) box and indeed video playback fails like You described. It fails also for mpeg2 hw decoder. Even ffmpeg sw. decode fails - so this tells me issue is rather with rendering to OpenGL - not vdpau hw. video decode. I tried 1y old version of mm2 and it also fails.

Option might be to try use GLES instead of Desktop OpenGL - but this is not easy as it requires rebuilding Qt to GLES. Im using GLES on arm devices - but on x86 devices i'm going with Desktop OpenGL.

As current mm2 works well on ION2 - i prefer stay as current and simply mark ION1 devices as not supported....

kjeacle commented 1 year ago

I bought the board in 2010 for use with MiniMyth so it has served me well - perhaps it's time for retirement!

My backend is v32 now but the board still works as a v31 client with 11.10.0.r118 using IgnoreProtoVerMismatch and IgnoreSchemaVerMismatch.

Hopefully using it as a simple playback client like this won't cause any issues with the server database.

warpme commented 1 year ago

Karl, May you pls try v12.7.0? It seems i manage to have it working well on my ION1 box It is lightly tested.....but seems work ok (use vdpau normal profile with low-end deinterlacer)

kjeacle commented 1 year ago

On my old ION1 box, it just hangs at "Please wait..." when starting to play a recording. I tried VDPAU Normal and Slim. The log says:

2022-08-30 19:21:08.273196 I  Clearing OpenGL painter cache.
2022-08-30 19:21:08.322661 I  PlayerVideo: Queuing callback for VDPAU context creation
2022-08-30 19:21:08.362677 I  PlayerVideo: Executing VDPAU context creation
2022-08-30 19:21:08.424002 W  Waited 100ms for VDPAU context creation

On my slightly newer ION2 boxes that work fine with 12.6.3, it crashes when playback starts:

2022-08-30 19:22:34.871270 I  Clearing OpenGL painter cache.
2022-08-30 19:22:34.984265 I  Qt: libpng warning: iCCP: known incorrect sRGB profile
2022-08-30 19:22:34.985799 I  Qt: libpng warning: known incorrect sRGB profile
2022-08-30 19:22:34.985839 I  Qt: libpng warning: profile matches sRGB but writing iCCP instead
2022-08-30 19:22:35.047965 I  VideoOutput: SetDeinterlacing (Doublerate 1): Single Medium|CPU|GLSL|DRIVER Double None
2022-08-30 19:22:35.048527 I  TV::StartPlayer(): Created player.
2022-08-30 19:22:35.048704 I  TV::HandleStateChange(): Changing from None to WatchingPreRecorded
2022-08-30 19:22:35.051290 I  PlayerVideo: Queuing callback for VDPAU context creation
2022-08-30 19:22:35.052970 I  ScreenSaverX11: Inhibited X11 screensaver
2022-08-30 19:22:35.053384 I  TV::HandleStateChange(): Main UI disabled.
2022-08-30 19:22:35.053478 I  TV::StartTV(): Entering main playback loop.
2022-08-30 19:22:35.078898 I  PlayerVideo: Executing VDPAU context creation
2022-08-30 19:22:35.168222 I  VideoOutput: SetDeinterlacing (Doublerate 1): Single Medium|CPU|GLSL|DRIVER Double None
2022-08-30 19:22:35.179348 I  GLVid: New frame format: None:None 704x576 (Tex: 2D) -> VDPAU:RGBA32 704x576 (Tex: 2D)
nouveau: kernel rejected pushbuf: No such device
nouveau: ch4: krec 0 pushes 1 bufs 4 relocs 0
nouveau: ch4: buf 00000000 00000018 00000004 00000004 00000000 0x7f1ce800a000 0x7e9000 0x8000
nouveau: ch4: buf 00000001 0000001d 00000002 00000002 00000000 0x7f1c400b9000 0x1f20000 0x100000
nouveau: ch4: buf 00000002 00000020 00000002 00000000 00000002 (nil) 0x3a40000 0x400000
nouveau: ch4: buf 00000003 00000021 00000002 00000002 00000002 (nil) 0x7f4000 0x1000
nouveau: ch4: psh 00000000 0000000b40 0000000b7c
nouveau:        0x2005a1c0
nouveau:        0x00020241
nouveau:        0x0001f201
nouveau:        0x0001f207
nouveau:        0x0001f205
nouveau:        0x00000011
nouveau:        0x2006a100
nouveau:        0x0001f200
nouveau:        0x0003a400
nouveau:        0x0003a402
nouveau:        0x003ffe00
nouveau:        0x00007f40
nouveau:        0x00000400
nouveau:        0x2001a0c0
nouveau:        0x00000000
mythfrontend: ../nouveau/pushbuf.c:730: nouveau_pushbuf_data: Assertion `kref' failed.
2022-08-30 19:22:35.368234 C  Received Aborted: Code -6, PID 5324, UID 1000, Value 0x00000000
2022-08-30 19:22:35.468566 I  TV::StartTV(): Exiting main playback loop.
2022-08-30 19:22:35.468933 N  Resuming idle timer
2022-08-30 19:22:35.569058 W  Player(0): Waited 100ms for decoder to pause
2022-08-30 19:22:35.669130 W  Player(0): Waited 100ms for decoder to pause
2022-08-30 19:22:35.769215 W  Player(0): Waited 100ms for decoder to pause
2022-08-30 19:22:35.869287 W  Player(0): Waited 100ms for decoder to pause
2022-08-30 19:22:35.969365 W  Player(0): Waited 100ms for decoder to pause
2022-08-30 19:22:36.069433 W  Player(0): Waited 100ms for decoder to pause
2022-08-30 19:22:36.169535 W  Player(0): Waited 100ms for decoder to pause
2022-08-30 19:22:36.269606 W  Player(0): Waited 100ms for decoder to pause
Aborted

So 12.7.0 is a non-starter for me. Going back to 12.6.3 which is working well on ION2 and GT520.

warpme commented 1 year ago

Argh, I had hope to finally move away from 340.108 blob as it: -needs every new kernel patching to get compiled/working -creates high pressure on current 4y old xorg server (newer xorg servers had ABI compat. issue with nvidia BLOB; i need update xorg server for arm platforms) -already fails on ION1

btw: i see GLVid: New frame format: None:None 704x576 (Tex: 2D) -> VDPAU:RGBA32 704x576 (Tex: 2D) so your video mode is SD TV? I tested 12.7.0 on my: HT330pro (ION1) and Asus 1033EB (ION2) connected to 1080 hdmi monitor - both playing well.

Anyway: if there is issue - it is out of my control (it is kernel or mesa so we will need wait till kernel/mesa guys will fix it...)

br

kjeacle commented 1 year ago

That's too bad and it sounds a nightmare but it also highlights why MiniMyth2 is such a great piece of software. So nice to have a ready-to-go frontend all packaged up with no need to manually install and maintain an OS.

I use HD for live sports or where the channel is HD-only but for most recordings SD is good enough. Also we have a frontend at another house that connects via an ssh tunnel and SD recordings work much better for that.

warpme commented 1 year ago

I added https://github.com/warpme/minimyth2/commit/efd1b6916f75dec99997adf7f49d5abe35307047 - so v12.7.0 has latest greatest nouveau code. Here my capabilities to get nvidia well supported are ending :-\ Let's close this ticket for now!