webosbrew / hyperion-webos

hyperion.ng video grabber for webOS
MIT License
144 stars 27 forks source link

after reboot: hyperion-webos stops capturing video after ui is first shown #109

Closed rossiniscarface closed 11 months ago

rossiniscarface commented 1 year ago

The new Release 0.4.3 stops capturing video after following occurs:

  1. TV boots and switches to inactive HDMI Port (HDMI Device is not turned on)
  2. TV shows Wallpaper Background
  3. HyperHDR starts (bootup effect is shown)
  4. HyperHDR correctly receives the Wallpaper background capture
  5. Home Button on Remote is pressed
  6. Menu appears and is correctly captured and shown
  7. But capturing of the background is dark.
  8. Open Youtube and play a video no capturing of the video is happening.
  9. Log is spammed with "user.err hyperion-webos [] hyperion-webos ERR {} capture_acquire_frame: vtCapture_currentCaptureBuffInfo() failed: 12"
  10. Capturing of the UI is working.

Additional notes: If Vsync is enabled:

  1. Capturing of Wallpaper Background goes dark
  2. After about 1 second capturing of Wallpaper and UI both captured and shown.

Expected behavior: Whenever Video Capturing and UI Capturing are activated, both should work and be combined if necessary without black screens.

root@LGwebOSTV:~#` grep -h -E '"(hardware_id|core_os_release|product_id|webos_manufacturing_version|board_type)"' /var/run/nyx/* "board_type": "O20_DVB", "hardware_id": "HE_DTV_W20O_AFABABAA", "product_id": "OLED55CX3LA", "core_os_release": "5.4.2-25", "webos_manufacturing_version": "04.40.70",

Logs with all relevant information is attached.

hyplog.txt

Informatic commented 1 year ago

In general you should have vsync enabled - otherwise, on most platforms, you'd be unnecessarily sending same frames over and over.

Nevertheless, this is still somewhat of a bug, since we only restart video capture backend if vsync call fails, and not when main frame capture fails. (this is the case on vtcapture if no video is playing when it's initialized)

rossiniscarface commented 1 year ago

In piccap 0.4.2 this is not happening. Also interesting is if i stop/start with „piccap on/off remote“ it then is functioning normal.

Didn‘t know vsync should be on. I deactivated it for more frames.

gregdotcom commented 1 year ago

Have the same issue since some days after i updated. Haven‘t got it fixed yet…

TBSniller commented 11 months ago

Hey guys, please check your resolutions. vtDriver.cpp.preprocessVtCapture():250 dump location: 2, x: 0, y: 0, w: 192, h: 108, buf_cnt: 3, framerate: 30 In my tests only 320x was the most reliable for libvtcapture. v4l interface doesn't support lower resolutions in some situations. So to be safe just use 320x and it should work as intended. vtDriver.cpp.vtV4l2Ioctl():30 vt v4l2 ioctl was failed. { fd[27], request[-1069263343]