hyperion.ng video grabber for webOS

Overview

hyperion-webos

hyperion.ng grabber for webOS.

This piece of software does high-framerate/low-latency capture of contents displayed directly on webOS TVs and transmits these frames to hyperion.ng over the network.

Requires root.

Based on reverse-engineered internal system APIs. Still highly experimental.

If you are looking for a user-friendly UI that ships this piece of software check PicCap. This application mainly is the underlaying service for this software.

Known issues

  • libvt: may cause flickering or "No Signal" until reboot
  • Everything is based on highly platform-specific reverse-engineered internal system APIs. Standard no-warranty clauses apply.

Backends

This software uses multiple capture backends, that may work differently on some webOS versions/hardware platforms.

Backend Description Video UI Framerate webOS
libdile_vt Low-level library used internally by libvt ✘¹ 60 3.x+
libvt High-level video rendering library, uses OpenGL, may cause flickering/"No signal" until reboot ✘¹ ~30 3.x+
libvtcapture High-level video capture library, uses Luna bus, could possibly work without root (not now) ~25 5.x+

¹ - UI capture could be added at some point in the future

Running

hyperion-webos together with *_backend.so libraries need to be copied onto the TV, eg. into /tmp directory.

cd /tmp
./hyperion-webos --help
./hyperion-webos -S -b libdile_vt -a 10.0.0.1

Issues reporting

When reporting issues please include result of the following command:

grep -h -E '"(hardware_id|core_os_release|product_id|webos_manufacturing_version|board_type)"' /var/run/nyx/*

This contains model/hardware/region/software version, without any uniquely identifiable information.

If a segfault/crash occurs, a crashlog file will be generated in /var/log/reports/librdx or /tmp/faultmanager/crash/. This contains process memory dump and backtrace, but should not contain any uniquely identifiable information. (though, this is not guaranteed)

Issues
  • Errors on LG TV

    Errors on LG TV

    My lg tv is rooted and i got the source to compile using the ndk. But when running i get an egl error:

    hyperion-webos: /source/src/capture.c:206: egl_init: Assertion `eglGetError() == EGL_SUCCESS' failed.
    

    Also when im skipping the egl part i get the error:

    [VT] VT_IsSystemSupported Failed. This TV doesn't support VT.
    

    Maybe you can give me a hint how to debug this and maybe what other api i could try to capture the screen?

    opened by zlokomatic 21
  • Permission denied

    Permission denied

    Hello,

    "board_type": "K3LP_DVB",
    "hardware_id": "HE_DTV_W17P_AFADABAA",
    "product_id": "49UJ630V-ZA",
    "core_os_release": "3.9.0-62906",
    "webos_manufacturing_version": "06.00.20",
    

    i am a newbie I have downloaded code from this page https://github.com/webosbrew/hyperion-webos/actions/runs/1568099580 Copied all files to tmp/hyperion-webos image

    But when i try to start it with this image

    i get image

    Could you please help me! Thanks!

    opened by RestOp 13
  • Error - malloc(): unsorted double linked list corrupted

    Error - malloc(): unsorted double linked list corrupted

    Platform: LG WebOS 6.2.0-35

    When running PicCap with Hyperion, Hyperion becomes unresponsive shortly after launcing PicCap. Log shows:

    Mar 19 13:44:55 raspberrypi hyperiond[1737]: malloc(): unsorted double linked list corrupted
    Mar 19 13:44:55 raspberrypi hyperiond[1737]: Hyperion caught signal :SIGABRT
    

    Would appreciate your insight on the problem.

    opened by begemotik 12
  • [3.4.0][libvt] VT_CreateContext Failed

    [3.4.0][libvt] VT_CreateContext Failed

    "board_type": "M16_DVB",`
    "hardware_id": "HE_DTV_W16N_AFADABAA",`
    "product_id": "43UH750V-ZA",`
    "core_os_release": "3.4.0-5908",`
    "webos_manufacturing_version": "05.60.25",
    

    running ./hyperion-webos -b libvt -a 192.168.1.26 -S fail to execute with the following log

    0.001s [INFO main                ] Starting up...
         0.017s [INFO capture_preinit     ] Preinit called. Copying config..
         0.030s [INFO egl_init            ] [EGL] Display, major = 1, minor = 4
         0.035s [INFO egl_init            ] [EGL] Surface size: 360x180
         0.036s [INFO egl_init            ] [EGL] init complete
         0.037s [INFO capture_init        ] [VT] VT_CreateVideoWindow
         0.037s [INFO capture_init        ] [VT] window_id=0
         0.038s [INFO capture_init        ] [VT] VT_AcquireVideoWindowResource
         0.038s [INFO capture_init        ] [VT] resource_id=85
         0.038s [INFO capture_init        ] [VT] VT_CreateContext
    KADP_DE_SetDHDRInit : Done.
         0.102s [ ERR capture_init        ] [VT] VT_CreateContext Failed
         0.102s [ ERR capture_main        ] Error! capture_init: -1
         0.103s [ ERR main                ] ERROR: Capture main init failed!
    

    I've already tried libdile_vt backend and it stop before that

    0.000s [INFO main                ] Starting up...
         0.006s [INFO capture_preinit     ] Preinit called. Copying config..
         0.006s [INFO capture_init        ] Init called
         0.006s [INFO capture_start       ] Capture start called.
    KADP_DE_SetDHDRInit : Done.
         0.068s [ ERR capture_main        ] Error! capture_start. Code: -2
         0.069s [ ERR main                ] ERROR: Capture main init failed!
    
    opened by PaoloVallesi 11
  • Failed to load backend library: libvtcapture_backend.so

    Failed to load backend library: libvtcapture_backend.so

    Hi @Informatic seems with the recent commits, I can no longer use libvtcapture as the backend. The hyperion-webos_libvtcapture that ships in PicCap still works though.

    [email protected]:/tmp# LD_LIBRARY_PATH=. ./hyperion-webos -a 192.168.0.191 -b libvtcapture
    Error! Failed to load backend library: libvtcapture_backend.so, error: libhalgal.so.1: cannot open shared object file: No such file or directory
    Error! detect_backend.
    [email protected]:/tmp# ldconfig -p | grep libhalgal
            libhalgal.so.2 (libc6) => /usr/lib/libhalgal.so.2
            libhalgal.so (libc6) => /usr/lib/libhalgal.so
    [email protected]:/tmp# 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_W21O_AFABATAA",
        "product_id": "OLED55G16LA",
        "core_os_release": "6.0.1-454907",
        "webos_manufacturing_version": "03.11.23",
    
    opened by tavalin 10
  • Switching to a native service

    Switching to a native service

    So I'm ready rewriting hyperion-webos to a native webOS-service. It's also possible to run it from command line, logs will be redirected to PmLog. I don't know why, but we have a huge performance improvement with using libvtcapture and the native service. Maybe it's the same for other backends. The UI (PicCap) is also more responsive.

    @Informatic @tuxuser @mariotaku Can some of you please review my changes? Doesn't want to break something.

    The CI-Task has to be updated. Want to fix it when https://github.com/webosbrew/tv-native-apis/pull/13 is merged.

    Thanks!

    opened by TBSniller 9
  • Can't start any backend with various error

    Can't start any backend with various error

    Hi Everyone,

    First I'd like to say thanks for the team working on this solution the grabber is the only weak point on the Hyperion system and it's Wonderfull to be able to use his TV to do de work :).

    But I can't get any backend to work, No problem to root the TV and install piccap (even if the iterface doesn't work) same for home-brew (I don't know why but it says it's not elevated). Even so when I work using ssh I can't make the backend work.

    For information this is my system:

    "board_type": "M16_DVB", "hardware_id": "HE_DTV_W16N_AFADABAA", "product_id": "49UH650V-ZB", "core_os_release": "3.4.0-5908", "webos_manufacturing_version": "05.60.25",

    So using Libcapture with this config I get:

    [email protected]:/# /media/developer/apps/usr/palm/services/org.webosbrew.piccap.service/hyperion-webos -a 192.168.1.11 --verbos 0.000s [INFO main ] Starting up... 0.001s [ DBG parse_options ] Finished parsing arguments 0.004s [ DBG main ] Checking service root status... 0.005s [ DBG check_root ] Service is running as root! 0.005s [ DBG main ] Setting default settings before loading... 0.005s [ DBG set_default ] Setting default settings to runtime... 0.005s [ DBG set_default ] Finished setting default. 0.005s [ DBG main ] Loading settings from disk to runtime... 0.005s [ DBG load_settings ] Try to read configfile. 0.005s [ DBG load_settings ] Read configfile at /media/developer/apps/usr/palm/services/org.webosbrew.piccap.service/config.json. Contents: {"backend":"libdile_vt","address":"192.168.1.11","port":19400,"width":480,"height":270,"fps":0,"autostart":true,"nogui":false,"novideo":false} 0.005s [ DBG load_settings ] Loaded these values: Address: 192.168.1.11 | Port: 19400 | Width: 480 | Height: 270 | FPS: 0 | Backend: libdile_vt | NoVideo: 0 | NoGUI: 0 | Autostart: 1 0.005s [ DBG capture_main ] Using these values: Address: 192.168.1.11 | Port: 19400 | Width: 480 | Height: 270 | FPS: 0 | Backend: libdile_vt | NoVideo: 0 | NoGUI: 0 | Autostart: 1 0.005s [ DBG capture_main ] Detecting backend... 0.005s [ DBG import_backend_library] Full library path: /media/developer/apps/usr/palm/services/org.webosbrew.piccap.service/libdile_vt_backend.so 0.010s [ DBG capture_main ] Backend preinit... 0.010s [INFO capture_preinit ] Preinit called. Copying config.. 0.010s [ DBG capture_main ] Initiating capture... 0.010s [INFO capture_init ] Init called 0.010s [ DBG capture_main ] Starting capture.. 0.011s [INFO capture_start ] Capture start called. KADP_DE_SetDHDRInit : Done. 0.033s [ DBG capture_start ] Got DILE_VT context! 0.033s [ DBG capture_start ] supportScaleUp: 1; (1920x1080) 0.033s [ DBG capture_start ] supportScaleDown: 1; (320x240) 0.033s [ DBG capture_start ] maxResolution: 1920x1080 0.033s [ DBG capture_start ] input deinterlace: 0; display deinterlace: 1 0.034s [ ERR capture_main ] Error! capture_start. Code: -2 0.034s [ DBG cleanup ] Starting cleanup... isRunning: 0 0.034s [ DBG cleanup ] Destroying hyperion-client... 0.034s [ DBG cleanup ] Cleanup capture within library... 0.035s [ DBG cleanup ] Cleanup finished. 0.035s [ ERR main ] Capture main init failed! 0.035s [ DBG main ] Going into main loop..

    when I try with libvtcapture I get:

    [email protected]:/# /media/developer/apps/usr/palm/services/org.webosbrew.piccap.service/hyperion-webos -a 192.168.1.11 -verbos 0.000s [INFO main ] Starting up... 0.001s [ DBG parse_options ] Finished parsing arguments 0.004s [ DBG main ] Checking service root status... 0.004s [ DBG check_root ] Service is running as root! 0.004s [ DBG main ] Setting default settings before loading... 0.004s [ DBG set_default ] Setting default settings to runtime... 0.004s [ DBG set_default ] Finished setting default. 0.004s [ DBG main ] Loading settings from disk to runtime... 0.004s [ DBG load_settings ] Try to read configfile. 0.004s [ DBG load_settings ] Read configfile at /media/developer/apps/usr/palm/services/org.webosbrew.piccap.service/config.json. Contents: {"backend":"libvtcapture","address":"192.168.1.11","port":19400,"width":320,"height":240,"fps":0,"autostart":true,"nogui":false,"novideo":false} 0.005s [ DBG load_settings ] Loaded these values: Address: 192.168.1.11 | Port: 19400 | Width: 320 | Height: 240 | FPS: 0 | Backend: libvtcapture | NoVideo: 0 | NoGUI: 0 | Autostart: 1 0.005s [ DBG capture_main ] Using these values: Address: 192.168.1.11 | Port: 19400 | Width: 320 | Height: 240 | FPS: 0 | Backend: libvtcapture | NoVideo: 0 | NoGUI: 0 | Autostart: 1 0.005s [ DBG capture_main ] Detecting backend... 0.005s [ DBG import_backend_library] Full library path: /media/developer/apps/usr/palm/services/org.webosbrew.piccap.service/libvtcapture_backend.so 0.006s [ ERR import_backend_library] Failed to load backend library: /media/developer/apps/usr/palm/services/org.webosbrew.piccap.service/libvtcapture_backend.so, error: libvtcapture.so.1: cannot open shared object file: No such file or directory 0.006s [ ERR capture_main ] Error! detect_backend. 0.006s [ DBG cleanup ] Starting cleanup... isRunning: 0 0.006s [ DBG cleanup ] Destroying hyperion-client... 0.006s [ DBG cleanup ] Cleanup finished. 0.006s [ ERR main ] Capture main init failed! 0.006s [ DBG main ] Going into main loop..

    And finally using Libvt I get this:

    [email protected]:/# /media/developer/apps/usr/palm/services/org.webosbrew.piccap.service/hyperion-webos -a 192.168.1.11 --verbos 0.001s [INFO main ] Starting up... 0.001s [ DBG parse_options ] Finished parsing arguments 0.005s [ DBG main ] Checking service root status... 0.005s [ DBG check_root ] Service is running as root! 0.005s [ DBG main ] Setting default settings before loading... 0.005s [ DBG set_default ] Setting default settings to runtime... 0.005s [ DBG set_default ] Finished setting default. 0.005s [ DBG main ] Loading settings from disk to runtime... 0.005s [ DBG load_settings ] Try to read configfile. 0.005s [ DBG load_settings ] Read configfile at /media/developer/apps/usr/palm/services/org.webosbrew.piccap.service/config.json. Contents: {"backend":"libvt","address":"192.168.1.11","port":19400,"width":320,"height":240,"fps":0,"autostart":true,"nogui":false,"novideo":false} 0.006s [ DBG load_settings ] Loaded these values: Address: 192.168.1.11 | Port: 19400 | Width: 320 | Height: 240 | FPS: 0 | Backend: libvt | NoVideo: 0 | NoGUI: 0 | Autostart: 1 0.006s [ DBG capture_main ] Using these values: Address: 192.168.1.11 | Port: 19400 | Width: 320 | Height: 240 | FPS: 0 | Backend: libvt | NoVideo: 0 | NoGUI: 0 | Autostart: 1 0.006s [ DBG capture_main ] Detecting backend... 0.006s [ DBG import_backend_library] Full library path: /media/developer/apps/usr/palm/services/org.webosbrew.piccap.service/libvt_backend.so 0.026s [ DBG capture_main ] Backend preinit... 0.026s [INFO capture_preinit ] Preinit called. Copying config.. 0.038s [INFO egl_init ] [EGL] Display, major = 1, minor = 4 0.044s [INFO egl_init ] [EGL] Surface size: 320x240 0.045s [INFO egl_init ] [EGL] init complete 0.045s [ DBG capture_main ] Initiating capture... 0.047s [INFO capture_init ] [VT] VT_CreateVideoWindow 0.047s [INFO capture_init ] [VT] window_id=0 0.047s [INFO capture_init ] [VT] VT_AcquireVideoWindowResource 0.047s [INFO capture_init ] [VT] resource_id=85 0.048s [INFO capture_init ] [VT] VT_CreateContext KADP_DE_SetDHDRInit : Done. 0.072s [ ERR capture_init ] [VT] VT_CreateContext Failed 0.073s [ ERR capture_main ] Error! capture_init: -1 0.073s [ DBG cleanup ] Starting cleanup... isRunning: 0 0.073s [ DBG cleanup ] Destroying hyperion-client... 0.073s [ DBG cleanup ] Cleanup capture within library... 0.074s [ DBG cleanup ] Cleanup finished. 0.074s [ ERR main ] Capture main init failed! 0.074s [ DBG main ] Going into main loop.. ^C 3.438s [INFO handle_signal ] SIGINT called! Stopping capture if running.. 3.438s [ DBG main ] Service main finishing..

    Every time I tried with different resolutions as I saw some issue being resolved with that but it my case it didn't change anything. Does anyone have any idea to make it work? Thanks for your time

    opened by DrPollio 8
  • Logging refactor

    Logging refactor

    This adds unified logging library src/lib.c which routes messages to both colored stderr and PmLogLib. Log messages can contain calling function name, since all log calls are handled in a macro (function name is logged only to stderr now)

    --verbose CLI option changes default Info logging level to Debug. Most Info messages from main.c were reworked to Debug. Tested main flow via service + cli with libdile_vt backend - libvt/libvtcapture have been reworked via a regex, but not tested. Built, so should likely work properly.

    Additionally adds some minor reworks in separate commits:

    • clarify why readlink ended with @ (it's a non-null-terminated string)
    • moved duplicated config validation into capture_main
    opened by Informatic 8
  • Flickering / unable to grab image when using HDMI sources

    Flickering / unable to grab image when using HDMI sources

    The goal was to be able to capture HDMI sources for hyperion. This resulted in a slow TV (lag), flickering and fragments all over the capture (image)

    Command LD_LIBRARY_PATH=. ./hyperion-webos --address 192.168.178.41 --port 19400 --backend libdile_vt --width 320 --height 240 --fps 10

    System Information

    "board_type": "M19_DVB",
    "hardware_id": "HE_DTV_W19H_AFADABAA",
    "product_id": "OLED55B9DLA",
    "core_os_release": "4.9.0-53804",
    "webos_manufacturing_version": "05.00.15",
    

    Logs

    [DILE_VT] supportScaleUp: 1; (3840x2160)
    [DILE_VT] supportScaleDown: 1; (320x240)
    [DILE_VT] maxResolution: 3840x2160
    [DILE_VT] input deinterlace: 1; display deinterlace: 1
    [DILE_VT] framerate divider: 6
    [DILE_VT] frametime: 8216; estimated fps before divider: 121.71373
    [DILE_VT] frametime: 8336; estimated fps after divider: 119.96161
    [DILE_VT] vfbs: 5; planes: 2
    [DILE_VT] pixelFormat: 1; width: 320; height: 240; stride: 320...
    [DILE_VT] vfb[0][0] = 0x6e400000
    [DILE_VT] vfb[0][1] = 0x6e45f000
    [DILE_VT] vfb[1][0] = 0x6e413000
    [DILE_VT] vfb[1][1] = 0x6e469000
    [DILE_VT] vfb[2][0] = 0x6e426000
    [DILE_VT] vfb[2][1] = 0x6e473000
    [DILE_VT] vfb[3][0] = 0x6e439000
    [DILE_VT] vfb[3][1] = 0x6e47d000
    [DILE_VT] vfb[4][0] = 0x6e44c000
    [DILE_VT] vfb[4][1] = 0x6e487000
    [DILE_VT] framerate: 0.015774 FPS
    [DILE_VT] framerate: 35.614649 FPS
    [DILE_VT] framerate: 42.296890 FPS
    [DILE_VT] framerate: 43.338823 FPS
    [DILE_VT] framerate: 44.393737 FPS
    [DILE_VT] framerate: 44.411678 FPS
    [DILE_VT] framerate: 40.856794 FPS
    [DILE_VT] framerate: 41.824846 FPS
    [DILE_VT] framerate: 45.493767 FPS
    [DILE_VT] framerate: 40.433610 FPS
    [DILE_VT] framerate: 37.069255 FPS
    [DILE_VT] framerate: 44.955404 FPS
    [DILE_VT] framerate: 40.869874 FPS
    [DILE_VT] framerate: 40.415308 FPS
    [DILE_VT] framerate: 35.602984 FPS
    [DILE_VT] framerate: 40.869596 FPS
    [DILE_VT] framerate: 40.872102 FPS
    [DILE_VT] framerate: 31.818220 FPS
    [DILE_VT] framerate: 41.823388 FPS
    [DILE_VT] framerate: 42.317952 FPS
    [DILE_VT] framerate: 40.866033 FPS
    [DILE_VT] framerate: 41.817442 FPS
    [DILE_VT] framerate: 38.671804 FPS
    [DILE_VT] framerate: 42.309656 FPS
    [DILE_VT] framerate: 41.321745 FPS
    [DILE_VT] framerate: 42.832606 FPS
    [DILE_VT] framerate: 35.960573 FPS
    [DILE_VT] framerate: 40.818492 FPS
    [DILE_VT] framerate: 40.917870 FPS
    [DILE_VT] framerate: 42.789596 FPS
    [DILE_VT] framerate: 42.328162 FPS
    [DILE_VT] framerate: 38.673349 FPS
    [DILE_VT] framerate: 44.958908 FPS
    [DILE_VT] framerate: 40.859298 FPS
    [DILE_VT] framerate: 42.819034 FPS
    [DILE_VT] framerate: 44.944157 FPS
    [DILE_VT] framerate: 39.530483 FPS
    [DILE_VT] framerate: 43.852405 FPS
    Connection terminated.
    
    dile_vt 
    opened by LegendaryB 8
  • use libyuv's functions for YUV/RGB stuff in libvtcapture

    use libyuv's functions for YUV/RGB stuff in libvtcapture

    Output of libvtcapture wasn't looking right: blacks too bright, whites too dark and colors a bit dull.

    So I replaced the lib's internal functions for YUV/ RGB conversion and blending with functions implemented in libyuv (just like libdile_vt is doing).

    NV21ToARGB() and NV21ToRGB24() are using the BT.601 color space by default but standard on TVs should be BT.709 (and BT.2020 for HDR on capable TVs). When calling NV21ToARGBMatrix() and NV21ToRGB24Matrix() instead we are able to set the color space we want to use for conversion. So these functions are in place now and the color space is fixed to BT.709. We can talk about making the color space variable and selectable through the piccap-GUI... ;)

    Additional:

    • Gave the buffers in use telling names to make reviewing the code easier.
    • Reduced size of the buffers because they allocated more space than needed. 4 times more to be precise because sizeof(char *) is 4 on 32-bit systems but sizeof(char) is only 1.
    • Removed some unused variables.
    opened by chbartsch 6
  • Can this run on TV?

    Can this run on TV?

    Hi! I just found this as I am looking for a hyperion integration for my TV.

    Is it possible to run this on my LG TV? How can I install it - will you release an .ipk ?

    Thanks in advance!

    opened by grosseskino 6
  • Known quirks for various TV models/WebOS versions

    Known quirks for various TV models/WebOS versions

    [DILE_VT] TVs of C9 series: If DILE_VT_Create function is called first, initialization of DILE_VT will fail most of the cases.

    Solution: Call DILE_VT_CreateEx before DILE_VT_Create

    https://github.com/webosbrew/hyperion-webos/blob/82234d978105e50ab804a59a6c0738a8d47ed2a5/src/backends/libdile_vt.c#L35-L40

    (Reported via Discord)

    Test branch that implements this workaround: https://github.com/webosbrew/hyperion-webos/tree/try/c9_createex_first

    [DILE_VT] 4k content on some webOS 4.3.0 devices will be cropped to 1/4 of the picture when captured from VT.

    Solution: Use (not-named) value 2 to pass as dump_location to DILE_VT_SetVideoFrameOutputDeviceDumpLocation

    https://github.com/webosbrew/hyperion-webos/blob/82234d978105e50ab804a59a6c0738a8d47ed2a5/src/backends/libdile_vt.c#L64-L86

    Reference: https://github.com/webosbrew/hyperion-webos/issues/45#issuecomment-1030630106

    [General] Some (newer?) TVs: Checking the power state via luna://com.webos.service.tvpower/power/getPowerState and evaluating "state" for "Active"/"processing" and pausing capturing due to that criteria, to detect power state, causes flickering each 2 minutes.

    chrischan — 02/28/2022 This shows up randomly and leads to hyperion-webos switch off/on: { "returnValue": true, "state": "Active", "processing": "Request Screen Saver" } { "returnValue": true, "state": "Active", "processing": "Screen On" } { "returnValue": true, "state": "Active" }

    PowerOff: { "returnValue": true, "state": "Active", "processing": "Request Power Off", "onOff": "off", "reason": "remoteKey" } { "returnValue": true, "state": "Active", "processing": "Request Active Standby", "onOff": "off", "reason": "remoteKey" } { "returnValue": true, "state": "Active", "processing": "Prepare Active Standby", "onOff": "off", "reason": "remoteKey" } { "returnValue": true, "state": "Active Standby" } { "returnValue": true, "state": "Active Standby", "processing": "Request Suspend", "onOff": "off", "reason": "homekit" } { "returnValue": true, "state": "Active Standby", "processing": "Prepare Suspend", "onOff": "off", "reason": "homekit" } { "returnValue": true, "state": "Suspend" }

    PowerOn: { "returnValue": true, "state": "Suspend", "processing": "Prepare Resume", "onOff": "on", "reason": "remoteKey" } { "returnValue": true, "state": "Suspend", "processing": "LastInput Ready", "onOff": "on", "reason": "remoteKey" } { "returnValue": true, "state": "Suspend", "processing": "Screen On", "onOff": "on", "reason": "remoteKey" } { "returnValue": true, "state": "Active" }

    Reference: https://github.com/webosbrew/hyperion-webos/blob/82234d978105e50ab804a59a6c0738a8d47ed2a5/src/service.c#L342-L354 Issue #54

    (Reported via Discord)

    opened by tuxuser 0
  • Cannot get any backend to work on LG G1 / WebOS 6.2

    Cannot get any backend to work on LG G1 / WebOS 6.2

    Hello,

    Using this command I can successfully capture a screenshot:

    luna-send -n 1 -f 'luna://com.webos.service.capture/executeOneShot' '{"path":"/tmp/capture.png","method":"DISPLAY","format":"PNG"}'

    But cannot actually start the grabber, no matter which backend I use:

    [email protected]:~/hyperion# LD_LIBRARY_PATH=. ./hyperion-webos --verbose -S -a 192.168.77.202 -p 19400 -b libdile_vt
         0.000s [INFO main                ] Starting up...
         0.000s [ DBG parse_options       ] Finished parsing arguments
         0.000s [ DBG capture_main        ] Using these values: Address: 192.168.77.202 | Port: 19400 | Width: 360 | Height: 180 | FPS: 0 | Backend: libdile_vt | NoVideo: 0 | NoGUI: 0 | Autostart: 0
         0.000s [ DBG capture_main        ] Detecting backend...
         0.000s [ DBG import_backend_library] Full library path: /home/root/hyperion/libdile_vt_backend.so
         0.016s [ DBG capture_main        ] Backend preinit...
         0.016s [INFO capture_preinit     ] Preinit called. Copying config..
         0.016s [ DBG capture_main        ] Initiating capture...
         0.016s [INFO capture_init        ] Init called
         0.016s [ DBG capture_main        ] Starting capture..
         0.016s [INFO capture_start       ] Capture start called.
         0.018s [WARN capture_start       ] DILE_VT_CreateEx failed, attempting DILE_VT_Create...
         0.018s [WARN capture_start       ] Failed to get DILE_VT context!
         0.018s [ ERR capture_main        ] Error! capture_start. Code: -1
         0.018s [ DBG cleanup             ] Starting cleanup... isRunning: 0
         0.018s [ DBG cleanup             ] Destroying hyperion-client...
         0.018s [ DBG cleanup             ] Cleanup capture within library...
         0.018s [ DBG cleanup             ] Cleanup finished.
         0.018s [ ERR main                ] ERROR: Capture main init failed!
    
    [email protected]:~/hyperion# LD_LIBRARY_PATH=. ./hyperion-webos --verbose -S -a 192.168.77.202 -p 19400 -b libvt
         0.000s [INFO main                ] Starting up...
         0.000s [ DBG parse_options       ] Finished parsing arguments
         0.000s [ DBG capture_main        ] Using these values: Address: 192.168.77.202 | Port: 19400 | Width: 360 | Height: 180 | FPS: 0 | Backend: libvt | NoVideo: 0 | NoGUI: 0 | Autostart: 0
         0.000s [ DBG capture_main        ] Detecting backend...
         0.000s [ DBG import_backend_library] Full library path: /home/root/hyperion/libvt_backend.so
         0.002s [ ERR import_backend_library] Failed to load backend library: /home/root/hyperion/libvt_backend.so, error: libbcm_host.so: cannot open shared object file: No such file or directory
         0.002s [ ERR capture_main        ] Error! detect_backend.
         0.002s [ DBG cleanup             ] Starting cleanup... isRunning: 0
         0.002s [ DBG cleanup             ] Destroying hyperion-client...
         0.002s [ DBG cleanup             ] Cleanup finished.
         0.002s [ ERR main                ] ERROR: Capture main init failed!
    
    [email protected]:~/hyperion# LD_LIBRARY_PATH=. ./hyperion-webos --verbose -S -a 192.168.77.202 -p 19400 -b libvtcapture
         0.000s [INFO main                ] Starting up...
         0.000s [ DBG parse_options       ] Finished parsing arguments
         0.000s [ DBG capture_main        ] Using these values: Address: 192.168.77.202 | Port: 19400 | Width: 360 | Height: 180 | FPS: 0 | Backend: libvtcapture | NoVideo: 0 | NoGUI: 0 | Autostart: 0
         0.000s [ DBG capture_main        ] Detecting backend...
         0.000s [ DBG import_backend_library] Full library path: /home/root/hyperion/libvtcapture_backend.so
         0.027s [ DBG capture_main        ] Backend preinit...
         0.027s [INFO capture_preinit     ] Preinit called. Copying config..
         0.027s [INFO capture_preinit     ] Copying config done. Initialize vars..
         0.027s [INFO capture_preinit     ] Init finished.
         0.027s [ DBG capture_main        ] Initiating capture...
         0.027s [INFO capture_init        ] Initialization of capture devices..
         0.027s [INFO capture_init        ] Graphical capture enabled. Begin init..
         0.030s [INFO capture_init        ] HAL_GAL_Init done! Exit: 0
         0.030s [INFO capture_init        ] HAL_GAL_CreateSurface done! SurfaceID: 251
         0.034s [INFO capture_init        ] HAL_GAL_CaptureFrameBuffer done! 0
         0.035s [INFO capture_init        ] HAL_GAL: gfx open ok result: 14
         0.035s [INFO capture_init        ] Halgal done!
         0.035s [INFO capture_init        ] Init video capture..
    terminate called after throwing an instance of 'std::runtime_error'
      what():  LSRegisterPubPriv FAILED
    [1]+  Stopped (signal)           ./hyperion-webos --verbose -S -a 192.168.77.202 -p 19400 -b libvtcapture
    [email protected]:~/hyperion#      0.076s [INFO handle_signal       ] SIGCONT called! Stopping capture if running and rerun from scratch..
         0.076s [ DBG capture_main        ] Using these values: Address: 192.168.77.202 | Port: 19400 | Width: 360 | Height: 180 | FPS: 0 | Backend: libvtcapture | NoVideo: 0 | NoGUI: 0 | Autostart: 0
         0.076s [ DBG capture_main        ] Detecting backend...
         0.076s [ DBG import_backend_library] Full library path: /home/root/hyperion/libvtcapture_backend.so
         0.076s [ DBG capture_main        ] Backend preinit...
         0.076s [INFO capture_preinit     ] Preinit called. Copying config..
         0.076s [INFO capture_preinit     ] Copying config done. Initialize vars..
         0.076s [INFO capture_preinit     ] Init finished.
         0.076s [ DBG capture_main        ] Initiating capture...
         0.076s [INFO capture_init        ] Initialization of capture devices..
         0.076s [INFO capture_init        ] Graphical capture enabled. Begin init..
         0.076s [INFO capture_init        ] HAL_GAL_Init done! Exit: 0
    

    Here is some diagnostic info as requested in the README:

    [email protected]:~/hyperion# 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_W21O_AFABATAA",
        "product_id": "OLED65G1PTA",
        "core_os_release": "6.2.0-33",
        "webos_manufacturing_version": "03.21.10",
    

    Any ideas as to why it's not working for me? I am trying to capture while using the HDMI input if that matters. I have tried using the hyperion-webos binary included in the latest piccap release, and also the latest binary from this repo.

    opened by chcore 6
  • TV reboot after a few seconds (WebOS 2.x) (dile_vt)

    TV reboot after a few seconds (WebOS 2.x) (dile_vt)

    I have a 2015 OLED (55EF9509) and after a Firmware Downgrade to Firmware 04.20.50 i was able to root the Tv manually. After i setup root/telnet and installed WebOSBrew ipk + elevate it, i installed PicCap on the TV. Unfortunately the UI was broken, so i create the config-file in terminal and start Hyperion-Webos in Terminal. But every time i start hyperion-webos, the TV start to transmit a signal over Flatbuffer to Hyper/ion/HDR and then the TV make a reboot (every Time). When i choose libcapture_vt (what the TV don't have), a Flatbuffer signal start (black frames) and is hyperion-webos is running without reboot.... when i choose the correct lib (dile_vt) then i get a reboot every time.

    Problem (short): After 2-3 seconds of transmitting (unicapture) a Flatbuffer (libdile_vt) the TV reboot.

    Hyperion-Webos tested: PicCap release + latest dev release + Unicapture branch (all have the same problem).

    TV Info:

    {
        "device_name": "lm14a",
        "hardware_id": "HE_DTV_W15A_AFADABAA",
        "hardware_revision": "DV_1ST",
        "keyboard_type": "virtual",
        "modem_present": "N",
        "nduid": "2e3720c54fd9fe1298b6eea0ff83************",
        "product_id": "55EF9509-ZA",
        "ram_size": "2 GB",
        "serial_number": "607W********",
        "storage_size": "4 GB",
        "wifi_addr": "30:a9:de:**:**:**"
    }
    

    Software Info:

    {
        "core_os_kernel_version": "3.10.23-p.13.biscayne.lm14a.7",
        "core_os_name": "Rockhopper",
        "core_os_release": "2.2.3-1353",
        "core_os_release_codename": "beehive-biscayne",
        "encryption_key_type": "prodkey",
        "webos_api_version": "4.1.0",
        "webos_build_id": "1353",
        "webos_imagename": "starfish-dvb-secured",
        "webos_manufacturing_version": "04.26.10",     ===> Downgraded to 04.20.50
        "webos_name": "webOS TV",
        "webos_prerelease": "",
        "webos_release": "2.2.3",
        "webos_release_codename": "beehive-biscayne"
    }
    

    I upload two different Logs...

    Hyperion-webos log (Log 1):

    /media/developer $ ./hyperion_webos/hyperion-webos -v -b libdile_vt -f 24 -a 10.0.0.140 -x 180 -y 90 -S --verbose                                   
         0.001s [INFO main                ] Starting up...
         0.001s [INFO main                ] Running via CLI
         0.002s [INFO service_init        ] Autodetecting UI backend...
         0.087s [ DBG unicapture_init_backend] libgm_backend.so: loading...
         0.087s [ DBG unicapture_init_backend] libgm_backend.so: loaded, initializing...
    [SYSTEM (user mode)][00411] 
    === Start to Init System... ===
    [SYSTEM (user mode)][00412] MDrv_MMIO_Init
    [SYSTEM (user mode)][00418] MsOS_Init
    [MSOS_PRINT][003301]     ~!~mappd sharemem  @ 
    [MSOS_PRINT][000669]     pthread_mutex_init
    [MSOS_PRINT][000671]     CHIP_InitISR
    [utopia info] utopia init
    [utopia info] register module: MODULE_UTOPIA
    [utopia info] register module: MODULE_BDMA
    [utopia info] register module: MODULE_AESDMA
    [utopia info] register module: MODULE_DSCMB
    [utopia info] register module: MODULE_CI
    [utopia info] register module: MODULE_GOP
    [utopia info] register module: MODULE_GFX
    [utopia info] register module: MODULE_TVENCODER
    [utopia info] register module: MODULE_XC
    [utopia info] register module: MODULE_MBX
    [utopia info] register module: MODULE_DIP
    [utopia info] register module: MODULE_PNL
    [utopia info] register module: MODULE_VBI
    [utopia info] register module: MODULE_ACE
    [utopia info] register module: MODULE_DLC
    [utopia info] register module: MODULE_IR
    [utopia info] register module: MODULE_SAR
    [utopia info] register module: MODULE_MIU
    [utopia info] register module: MODULE_PWS
    Function = PWSRegisterToUtopia, Line = 436, PWS Register finished
    [utopia info] register module: MODULE_FLASH
    [utopia info] register module: MODULE_SEM
    Function = SEMRegisterToUtopia, Line = 385, SEM_Init is opened
    [SEM USER DEBUG][000146]         _s32SEMMutex[0] = 1985216513
    [SEM USER DEBUG][000146]         _s32SEMMutex[1] = 1985216514
    [SEM USER DEBUG][000146]         _s32SEMMutex[2] = 1985216515
    [SEM USER DEBUG][000146]         _s32SEMMutex[3] = 1985216516
    [SEM USER DEBUG][000146]         _s32SEMMutex[4] = 1985216517
    [SEM USER DEBUG][000146]         _s32SEMMutex[5] = 1985216518
    [SEM USER DEBUG][000146]         _s32SEMMutex[6] = 1985216519
    [SEM USER DEBUG][000146]         _s32SEMMutex[7] = 1985216520
    [SEM USER DEBUG][000146]         _s32SEMMutex[8] = 1985216521
    [SEM USER DEBUG][000146]         _s32SEMMutex[9] = 1985216522
    [SEM USER DEBUG][000146]         _s32SEMMutex[10] = 1985216523
    [SEM USER DEBUG][000146]         _s32SEMMutex[11] = 1985216524
    [SEM USER DEBUG][000146]         _s32SEMMutex[12] = 1985216525
    [SEM USER DEBUG][000146]         _s32SEMMutex[13] = 1985216526
    [SEM USER DEBUG][000146]         _s32SEMMutex[14] = 1985216527
    [SEM USER DEBUG][000146]         _s32SEMMutex[15] = 1985216528
    Function = SEMRegisterToUtopia, Line = 387, SEM Register finished
    [utopia info] register module: MODULE_SYS
    [utopia info] register module: MODULE_VDEC_EX
    [utopia info] register module: MODULE_MVOP
    [utopia info] register module: MODULE_AVD
    [utopia info] register module: MODULE_DMX
    [utopia info] register module: MODULE_RTC
    [utopia info] register module: MODULE_HWI2C
    [utopia info] register module: MODULE_UART
    [utopia info] register module: MODULE_PWM
    [utopia info] register module: MODULE_NJPEG_EX
    [utopia info] register module: MODULE_GPD
    [utopia info] register module: MODULE_MFE
    [utopia info] register module: MODULE_CPU
    [utopia info] register module: MODULE_MSPI
    [utopia info] register module: MODULE_GPIO
    [utopia info] register module: MODULE_WDT
    [utopia info] register module: MODULE_PM
    [utopia info] register module: MODULE_AUDIO
    [SYSTEM (user mode)][00421] MDrv_SYS_Init
    [SYSTEM (user mode)][00424] MAdp_MPool_Init
    
    
    _LX_MEM  = 0x20200000, 0x1F800000
    _LX_MEM2 = 0xC0B00000, 0x1F500000
    
    SysInfo.LX_MEM_ADDR  = 0x20200000, 0x1F800000
    SysInfo.LX_MEM2_ADDR = 0xC0B00000, 0x1F500000
    
    [MSOS_PRINT][000550]     [MsOS_Init] already inited!
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 45, Size is 0
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 50, Size is 0
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 40, Size is 0
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 41, Size is 0
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 43, Size is 0
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 83, Size is 0
    [SYSTEM (user mode)][00427] MDrv_SEM_Init
    [SEM USER DEBUG][000146]         _s32SEMMutex[0] = 1985216513
    [SEM USER DEBUG][000146]         _s32SEMMutex[1] = 1985216514
    [SEM USER DEBUG][000146]         _s32SEMMutex[2] = 1985216515
    [SEM USER DEBUG][000146]         _s32SEMMutex[3] = 1985216516
    [SEM USER DEBUG][000146]         _s32SEMMutex[4] = 1985216517
    [SEM USER DEBUG][000146]         _s32SEMMutex[5] = 1985216518
    [SEM USER DEBUG][000146]         _s32SEMMutex[6] = 1985216519
    [SEM USER DEBUG][000146]         _s32SEMMutex[7] = 1985216520
    [SEM USER DEBUG][000146]         _s32SEMMutex[8] = 1985216521
    [SEM USER DEBUG][000146]         _s32SEMMutex[9] = 1985216522
    [SEM USER DEBUG][000146]         _s32SEMMutex[10] = 1985216523
    [SEM USER DEBUG][000146]         _s32SEMMutex[11] = 1985216524
    [SEM USER DEBUG][000146]         _s32SEMMutex[12] = 1985216525
    [SEM USER DEBUG][000146]         _s32SEMMutex[13] = 1985216526
    [SEM USER DEBUG][000146]         _s32SEMMutex[14] = 1985216527
    [SEM USER DEBUG][000146]         _s32SEMMutex[15] = 1985216528
    [SYSTEM (user mode)][00430] MDrv_BDMA_Init
    utopia.c : malloc ok,Module= MODULE_BDMA 
    [SYSTEM (user mode)][00433] MDrv_MIU_Init
    utopia.c : malloc ok,Module= MODULE_GPIO 
    Module : MODULE_GPIO  Open /proc/utopia ok
    _s32UtopiaFd : 15  
    utopia.c : malloc ok,Module= MODULE_PNL 
    utopia.c : malloc ok,Module= MODULE_PNL 
    Module : MODULE_PNL  Open /proc/utopia ok
    _s32UtopiaFd : 16  
    MDrv_PNL_Init u32PnlRiuBaseAddr = 74dc1000
    MDrv_PNL_Init u32PMRiuBaseAddr = 74ea1000
    utopia.c : malloc ok,Module= MODULE_XC 
    utopia.c : malloc ok,Module= MODULE_GFX 
    Module : MODULE_GFX  Open /proc/utopia ok
    _s32UtopiaFd : 17  
    utopia.c : malloc ok,Module= MODULE_GOP 
    Module : MODULE_GOP  Open /proc/utopia ok
    _s32UtopiaFd : 18  
    [000080.969316:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5e088
     
    [000080.969342:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5e4b8
     
    [000080.969355:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5b6a8
     
    [000080.969367:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5bad8
     
    [000080.969380:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5d828
     
    [000080.969392:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5dc58
     
    [000080.969413:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5f148
     
    [000080.969426:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5f578
     
    [000080.969439:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5f148
     
    [000080.969457:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5f578
     
    [000080.969470:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5e8e8
     
    [000080.969482:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5ed18
     
    [000080.969510:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5f9a8
     
    [000080.969522:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5fdd8
     
    [000080.969535:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5e088
     
    [000080.969548:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5e4b8
     
    [000080.969591:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5f9a8
     
    [000080.969604:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5fdd8
     
    [000080.969616:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5f9a8
     
    [000080.969653:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : nod     0.286s [ DBG unicapture_init_backend] libgm_backend.so: success
         0.290s [ DBG unicapture_init_backend] libdile_vt_backend.so: loading...
         0.290s [ DBG unicapture_init_backend] libdile_vt_backend.so: loaded, initializing...
         0.291s [INFO capture_init        ] Capture start called.
         0.295s [ DBG capture_init        ] Got DILE_VT context!
         0.295s [ DBG capture_init        ] supportScaleUp: 0; (0x0)
         0.296s [ DBG capture_init        ] supportScaleDown: 1; (1x1)
         0.296s [ DBG capture_init        ] maxResolution: 1920x1080
         0.296s [ DBG capture_init        ] input deinterlace: 0; display deinterlace: 1
         0.334s [INFO capture_init        ] [DILE_VT] framerate divider: 2
         0.381s [INFO capture_init        ] [DILE_VT] frametime: 20455; estimated fps before divider: 48.88780
         0.422s [INFO capture_init        ] [DILE_VT] frametime: 20630; estimated fps after divider: 48.47310
         0.423s [INFO capture_init        ] [DILE_VT] vfbs: 1; planes: 2
         0.540s [ ERR service_register    ] Unable to register on Luna bus: Invalid permissions for org.webosbrew.piccap.service
         0.540s [WARN main                ] Service register failed: -1
         0.542s [ DBG main                ] Going into main loop..
         0.542s [ DBG connection_loop     ] Starting connection loop
         0.542s [INFO connection_loop     ] Connecting hyperion-client..
         0.543s [ DBG unicapture_run      ] Attempting UI capture init...
         0.543s [INFO unicapture_run      ] UI capture started
         0.543s [INFO unicapture_vsync_handler] vsync thread starting...
         0.577s [INFO connection_loop     ] hyperion-client connected!
         0.589s [INFO unicapture_run      ] Buffer dumped to: /tmp/hyperion-webos-dump.000.data
         1.842s [INFO unicapture_run      ] Buffer dumped to: /tmp/hyperion-webos-dump.001.data
         3.056s [INFO unicapture_run      ] Framerate: 23.854118 FPS; timings - wait: 35084us, acquire: 1561us, convert: 1733us, process; 29us, send: 3832us, release: 1us
         3.057s [INFO unicapture_run      ]         UI: pixfmt: 11; 180x90
         3.057s [INFO unicapture_run      ]      VIDEO: pixfmt: 0; 0x0
         3.057s [INFO unicapture_run      ] CONV    UI: pixfmt: 12; 180x90
         3.057s [INFO unicapture_run      ] CONV VIDEO: pixfmt: 0; 0x0
         3.094s [INFO unicapture_run      ] Buffer dumped to: /tmp/hyperion-webos-dump.002.data
         4.347s [INFO unicapture_run      ] Buffer dumped to: /tmp/hyperion-webos-dump.003.data
         5.563s [INFO unicapture_run      ] Framerate: 23.945739 FPS; timings - wait: 33753us, acquire: 1017us, convert: 3154us, process; 41us, send: 3829us, release: 2us
         5.564s [INFO unicapture_run      ]         UI: pixfmt: 11; 180x90
         5.564s [INFO unicapture_run      ]      VIDEO: pixfmt: 0; 0x0
         5.564s [INFO unicapture_run      ] CONV    UI: pixfmt: 12; 180x90
         5.564s [INFO unicapture_run      ] CONV VIDEO: pixfmt: 0; 0x0
         5.601s [INFO unicapture_run      ] Buffer dumped to: /tmp/hyperion-webos-dump.004.data
         6.852s [INFO unicapture_run      ] Buffer dumped to: /tmp/hyperion-webos-dump.005.data
         8.067s [INFO unicapture_run      ] Framerate: 23.980470 FPS; timings - wait: 35051us, acquire: 1037us, convert: 1718us, process; 49us, send: 3860us, release: 2us
         8.067s [INFO unicapture_run      ]         UI: pixfmt: 11; 180x90
         8.068s [INFO unicapture_run      ]      VIDEO: pixfmt: 0; 0x0
         8.068s [INFO unicapture_run      ] CONV    UI: pixfmt: 12; 180x90
         8.068s [INFO unicapture_run      ] CONV VIDEO: pixfmt: 0; 0x0
         8.105s [INFO unicapture_run      ] Buffer dumped to: /tmp/hyperion-webos-dump.006.data
    

    Hyperion-webos log (Log 2):

    [email protected]:/media/developer/hyperion_webos# ./hyperion-webos -v -b libdile_vt -f 24 -a 10.0.0.140 -x 180 -y 90 -S --verbose
         0.001s [INFO main                ] Starting up...
         0.001s [INFO main                ] Running via CLI
         0.002s [INFO service_init        ] Autodetecting UI backend...
         0.047s [ DBG unicapture_init_backend] libgm_backend.so: loading...
         0.047s [ DBG unicapture_init_backend] libgm_backend.so: loaded, initializing...
    [SYSTEM (user mode)][00411] 
    === Start to Init System... ===
    [SYSTEM (user mode)][00412] MDrv_MMIO_Init
    [SYSTEM (user mode)][00418] MsOS_Init
    [MSOS_PRINT][003301]     ~!~mappd sharemem  @ 
    [MSOS_PRINT][000669]     pthread_mutex_init
    [MSOS_PRINT][000671]     CHIP_InitISR
    [utopia info] utopia init
    [utopia info] register module: MODULE_UTOPIA
    [utopia info] register module: MODULE_BDMA
    [utopia info] register module: MODULE_AESDMA
    [utopia info] register module: MODULE_DSCMB
    [utopia info] register module: MODULE_CI
    [utopia info] register module: MODULE_GOP
    [utopia info] register module: MODULE_GFX
    [utopia info] register module: MODULE_TVENCODER
    [utopia info] register module: MODULE_XC
    [utopia info] register module: MODULE_MBX
    [utopia info] register module: MODULE_DIP
    [utopia info] register module: MODULE_PNL
    [utopia info] register module: MODULE_VBI
    [utopia info] register module: MODULE_ACE
    [utopia info] register module: MODULE_DLC
    [utopia info] register module: MODULE_IR
    [utopia info] register module: MODULE_SAR
    [utopia info] register module: MODULE_MIU
    [utopia info] register module: MODULE_PWS
    Function = PWSRegisterToUtopia, Line = 436, PWS Register finished
    [utopia info] register module: MODULE_FLASH
    [utopia info] register module: MODULE_SEM
    Function = SEMRegisterToUtopia, Line = 385, SEM_Init is opened
    [SEM USER DEBUG][000146]         _s32SEMMutex[0] = 1985216513
    [SEM USER DEBUG][000146]         _s32SEMMutex[1] = 1985216514
    [SEM USER DEBUG][000146]         _s32SEMMutex[2] = 1985216515
    [SEM USER DEBUG][000146]         _s32SEMMutex[3] = 1985216516
    [SEM USER DEBUG][000146]         _s32SEMMutex[4] = 1985216517
    [SEM USER DEBUG][000146]         _s32SEMMutex[5] = 1985216518
    [SEM USER DEBUG][000146]         _s32SEMMutex[6] = 1985216519
    [SEM USER DEBUG][000146]         _s32SEMMutex[7] = 1985216520
    [SEM USER DEBUG][000146]         _s32SEMMutex[8] = 1985216521
    [SEM USER DEBUG][000146]         _s32SEMMutex[9] = 1985216522
    [SEM USER DEBUG][000146]         _s32SEMMutex[10] = 1985216523
    [SEM USER DEBUG][000146]         _s32SEMMutex[11] = 1985216524
    [SEM USER DEBUG][000146]         _s32SEMMutex[12] = 1985216525
    [SEM USER DEBUG][000146]         _s32SEMMutex[13] = 1985216526
    [SEM USER DEBUG][000146]         _s32SEMMutex[14] = 1985216527
    [SEM USER DEBUG][000146]         _s32SEMMutex[15] = 1985216528
    Function = SEMRegisterToUtopia, Line = 387, SEM Register finished
    [utopia info] register module: MODULE_SYS
    [utopia info] register module: MODULE_VDEC_EX
    [utopia info] register module: MODULE_MVOP
    [utopia info] register module: MODULE_AVD
    [utopia info] register module: MODULE_DMX
    [utopia info] register module: MODULE_RTC
    [utopia info] register module: MODULE_HWI2C
    [utopia info] register module: MODULE_UART
    [utopia info] register module: MODULE_PWM
    [utopia info] register module: MODULE_NJPEG_EX
    [utopia info] register module: MODULE_GPD
    [utopia info] register module: MODULE_MFE
    [utopia info] register module: MODULE_CPU
    [utopia info] register module: MODULE_MSPI
    [utopia info] register module: MODULE_GPIO
    [utopia info] register module: MODULE_WDT
    [utopia info] register module: MODULE_PM
    [utopia info] register module: MODULE_AUDIO
    [SYSTEM (user mode)][00421] MDrv_SYS_Init
    [SYSTEM (user mode)][00424] MAdp_MPool_Init
    
    
    _LX_MEM  = 0x20200000, 0x1F800000
    _LX_MEM2 = 0xC0B00000, 0x1F500000
    
    SysInfo.LX_MEM_ADDR  = 0x20200000, 0x1F800000
    SysInfo.LX_MEM2_ADDR = 0xC0B00000, 0x1F500000
    
    [MSOS_PRINT][000550]     [MsOS_Init] already inited!
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 45, Size is 0
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 50, Size is 0
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 40, Size is 0
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 41, Size is 0
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 43, Size is 0
    [WARRING!] MAdp_SYS_GetMMAP(),324, type = 83, Size is 0
    [SYSTEM (user mode)][00427] MDrv_SEM_Init
    [SEM USER DEBUG][000146]         _s32SEMMutex[0] = 1985216513
    [SEM USER DEBUG][000146]         _s32SEMMutex[1] = 1985216514
    [SEM USER DEBUG][000146]         _s32SEMMutex[2] = 1985216515
    [SEM USER DEBUG][000146]         _s32SEMMutex[3] = 1985216516
    [SEM USER DEBUG][000146]         _s32SEMMutex[4] = 1985216517
    [SEM USER DEBUG][000146]         _s32SEMMutex[5] = 1985216518
    [SEM USER DEBUG][000146]         _s32SEMMutex[6] = 1985216519
    [SEM USER DEBUG][000146]         _s32SEMMutex[7] = 1985216520
    [SEM USER DEBUG][000146]         _s32SEMMutex[8] = 1985216521
    [SEM USER DEBUG][000146]         _s32SEMMutex[9] = 1985216522
    [SEM USER DEBUG][000146]         _s32SEMMutex[10] = 1985216523
    [SEM USER DEBUG][000146]         _s32SEMMutex[11] = 1985216524
    [SEM USER DEBUG][000146]         _s32SEMMutex[12] = 1985216525
    [SEM USER DEBUG][000146]         _s32SEMMutex[13] = 1985216526
    [SEM USER DEBUG][000146]         _s32SEMMutex[14] = 1985216527
    [SEM USER DEBUG][000146]         _s32SEMMutex[15] = 1985216528
    [SYSTEM (user mode)][00430] MDrv_BDMA_Init
    utopia.c : malloc ok,Module= MODULE_BDMA 
    [SYSTEM (user mode)][00433] MDrv_MIU_Init
    utopia.c : malloc ok,Module= MODULE_GPIO 
    Module : MODULE_GPIO  Open /proc/utopia ok
    _s32UtopiaFd : 15  
    utopia.c : malloc ok,Module= MODULE_PNL 
    utopia.c : malloc ok,Module= MODULE_PNL 
    Module : MODULE_PNL  Open /proc/utopia ok
    _s32UtopiaFd : 16  
    MDrv_PNL_Init u32PnlRiuBaseAddr = 74df1000
    MDrv_PNL_Init u32PMRiuBaseAddr = 74ed1000
    utopia.c : malloc ok,Module= MODULE_XC 
    utopia.c : malloc ok,Module= MODULE_GFX 
    Module : MODULE_GFX  Open /proc/utopia ok
    _s32UtopiaFd : 17  
    utopia.c : malloc ok,Module= MODULE_GOP 
    Module : MODULE_GOP  Open /proc/utopia ok
    _s32UtopiaFd : 18  
    [000122.618934:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5e168
     
    [000122.619093:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5e598
     
    [000122.619174:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5b788
     
    [000122.619280:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5bbb8
     
    [000122.619358:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5d908
     
    [000122.619457:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5dd38
     
    [000122.619560:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5f228
     
    [000122.619653:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5f658
     
    [000122.619744:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5f228
     
    [000122.619835:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5f658
     
    [000122.619926:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5e9c8
     
    [000122.620055:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5edf8
     
    [000122.620171:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5fa88
     
    [000122.620261:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5feb8
     
    [000122.620369:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5e168
     
    [000122.620459:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5e598
     
    [000122.620548:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5fa88
     
    [000122.620638:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5feb8
     
    [000122.620727:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5fa88
     
    [000122.620818:hyperion-webos->hyperion-webos] <warning> GM_TEMPLATE_HASH_Insert : node already found..ptr = 0x5feb8
     
    [000122.620906:hyperion-webos->hyperion-webos] [_GM_UseGFXHWDirectly][905] _GM_UseGFXHWDirectly OK 
     
         0.263s [ DBG unicapture_init_backend] libgm_backend.so: success
         0.266s [ DBG unicapture_init_backend] libdile_vt_backend.so: loading...
         0.266s [ DBG unicapture_init_backend] libdile_vt_backend.so: loaded, initializing...
         0.267s [INFO capture_init        ] Capture start called.
    utopia.c : malloc ok,Module= MODULE_XC 
      sc main addr: 0x31000000, size: 0x3000000
      sc sub  addr: 0x3bf00000, size: 0x3000000
      menuload addr: 0x3f200000, size: 0x100000
      sc main frcm addr: 0x34100000, size: 0x6600000
    main addr: 31000000, main size: 3000000
    sub addr: 3bf00000, sub size: 3000000
    main frc addr: 34100000, main size: 6600000
    main frc addr: 3a700000, main size: 1800000
    _MApi_VT_Sys_Init_XC 3896 ~~~~
    MApi_XC_Init Success!!!!!!
    utopia.c : malloc ok,Module= MODULE_DIP 
    Module : MODULE_DIP  Open /proc/utopia ok
    _s32UtopiaFd : 21  
    [Fail][MDrv_MVOP_GetOutputTiming,3583]
    [Fail][MDrv_MVOP_GetHStart,2551]
    [Fail][MDrv_MVOP_GetVStart,2618]
    utopia.c : malloc ok,Module= MODULE_VDEC_EX 
    Module : MODULE_VDEC_EX  Open /proc/utopia ok
    _s32UtopiaFd : 22  
         0.278s [ DBG capture_init        ] Got DILE_VT context!
         0.278s [ DBG capture_init        ] supportScaleUp: 0; (0x0)
         0.278s [ DBG capture_init        ] supportScaleDown: 1; (1x1)
         0.278s [ DBG capture_init        ] maxResolution: 1920x1080
         0.278s [ DBG capture_init        ] input deinterlace: 0; display deinterlace: 1
         0.310s [INFO capture_init        ] [DILE_VT] framerate divider: 2
         0.356s [INFO capture_init        ] [DILE_VT] frametime: 20444; estimated fps before divider: 48.91411
         0.397s [INFO capture_init        ] [DILE_VT] frametime: 20371; estimated fps after divider: 49.08939
         0.398s [INFO capture_init        ] [DILE_VT] vfbs: 1; planes: 2
         0.399s [INFO capture_init        ] [DILE_VT] pixelFormat: 4; width: 176; height: 90; stride: 176...
         0.399s [ DBG capture_init        ] [DILE_VT] vfb[0][0] = 0xb4d00000
         0.399s [ DBG capture_init        ] [DILE_VT] vfb[0][1] = 0xb4d03de0
         7.203s [ ERR service_register    ] Unable to register on Luna bus: Invalid permissions for org.webosbrew.piccap.service
         7.203s [WARN main                ] Service register failed: -1
         7.203s [ DBG main                ] Going into main loop..
         7.204s [ DBG connection_loop     ] Starting connection loop
         7.205s [INFO connection_loop     ] Connecting hyperion-client..
         7.205s [ DBG unicapture_run      ] Attempting UI capture init...
         7.206s [INFO unicapture_run      ] UI capture started
         7.208s [INFO unicapture_vsync_handler] vsync thread starting...
         7.255s [INFO unicapture_run      ] Buffer dumped to: /tmp/hyperion-webos-dump.000.data
         7.320s [INFO connection_loop     ] hyperion-client connected!
    
    opened by dimitrij2k 3
  • Capture FPS is half content FPS

    Capture FPS is half content FPS

    I use the unicapture branch. I noticed that when my TV outputs 60 fps content, piccap captures at 29/30 fps. When I switch to 24 fps content, capture drops to 11/12 fps.

    Hardware

    LG OLED55B6V Nvidia Shield 2015 Kodi for 24 fps content

    Config

    {"priority":150,"backend":"auto","address":"192.168.1.254","port":19400,"width":192,"height":108,"fps":0,"vsync":false,"autostart":true,"nogui":true,"novideo":false,"uibackend":"auto"}

    (tried fps 0 and 30 : no difference)

    60 fps content

         0.001s [INFO main                ] Starting up...
         0.001s [INFO main                ] Running via CLI
         0.002s [INFO service_init        ] UI capture disabled
         0.002s [INFO service_init        ] Autodetecting video backend...
         0.005s [WARN unicapture_init_backend] Unable to load libvtcapture_backend.so: libvtcapture.so.1: cannot open shared object file: No such file or directory
         0.024s [INFO capture_init        ] Capture start called.
         0.100s [INFO capture_init        ] [DILE_VT] framerate divider: 1
         0.433s [INFO capture_init        ] [DILE_VT] frametime: 166098; estimated fps before divider: 6.02054
         0.765s [INFO capture_init        ] [DILE_VT] frametime: 166093; estimated fps after divider: 6.02072
         0.766s [INFO capture_init        ] [DILE_VT] vfbs: 1; planes: 1
         0.767s [INFO capture_init        ] [DILE_VT] pixelFormat: 9; width: 576; height: 108; stride: 576...
         0.772s [ ERR service_register    ] Unable to register on Luna bus: Attempted to register for a service name that already exists: org.webosbrew.piccap.service
         0.772s [WARN main                ] Service register failed: -1
         0.773s [INFO connection_loop     ] Connecting hyperion-client..
         0.774s [INFO connection_loop     ] hyperion-client connected!
         0.775s [INFO unicapture_run      ] Video capture started
         0.775s [INFO unicapture_vsync_handler] vsync thread starting...
         2.802s [INFO unicapture_run      ] Framerate: 29.566350 FPS; timings - wait: 11346us, acquire: 5305us, convert: 1968us, process; 85us, send: 2370us, release: 12297us
         2.802s [INFO unicapture_run      ]         UI: pixfmt: 0; 0x0
         2.802s [INFO unicapture_run      ]      VIDEO: pixfmt: 10; 192x108
         2.802s [INFO unicapture_run      ] CONV    UI: pixfmt: 0; 0x0
         2.802s [INFO unicapture_run      ] CONV VIDEO: pixfmt: 12; 192x108
    

    24fps content

         0.001s [INFO main                ] Starting up...
         0.001s [INFO main                ] Running via CLI
         0.002s [INFO service_init        ] UI capture disabled
         0.002s [INFO service_init        ] Autodetecting video backend...
         0.005s [WARN unicapture_init_backend] Unable to load libvtcapture_backend.so: libvtcapture.so.1: cannot open shared object file: No such file or directory
         0.022s [INFO capture_init        ] Capture start called.
         0.191s [INFO capture_init        ] [DILE_VT] framerate divider: 1
         0.523s [INFO capture_init        ] [DILE_VT] frametime: 166091; estimated fps before divider: 6.02080
         0.856s [INFO capture_init        ] [DILE_VT] frametime: 166054; estimated fps after divider: 6.02214
         0.856s [INFO capture_init        ] [DILE_VT] vfbs: 1; planes: 1
         0.857s [INFO capture_init        ] [DILE_VT] pixelFormat: 9; width: 576; height: 108; stride: 576...
         0.860s [ ERR service_register    ] Unable to register on Luna bus: Attempted to register for a service name that already exists: org.webosbrew.piccap.service
         0.861s [WARN main                ] Service register failed: -1
         0.862s [INFO connection_loop     ] Connecting hyperion-client..
         0.862s [INFO unicapture_run      ] Video capture started
         0.862s [INFO unicapture_vsync_handler] vsync thread starting...
         0.863s [INFO connection_loop     ] hyperion-client connected!
         5.862s [INFO unicapture_run      ] Framerate: 11.999047 FPS; timings - wait: 27723us, acquire: 13972us, convert: 1449us, process; 33us, send: 1593us, release: 38673us
         5.862s [INFO unicapture_run      ]         UI: pixfmt: 0; 0x0
         5.862s [INFO unicapture_run      ]      VIDEO: pixfmt: 10; 192x108
         5.862s [INFO unicapture_run      ] CONV    UI: pixfmt: 0; 0x0
         5.862s [INFO unicapture_run      ] CONV VIDEO: pixfmt: 12; 192x108
    
    opened by EmmanuelVella 0
  • Frequent timeouts

    Frequent timeouts

    Hi there,

    As you can see in the logs, the process reports a connection timeout every few seconds. This causes the source to disappear in the Hyperion dashboard for a second or so, until hyperion-webos reconnects.

    I use https://github.com/TBSniller/piccap for autostarting the service, but it also happens if I run it from the command line by myself.

    The disconnects only happen whilst using the libvtcapture + libhalgal backend. I can also start hyperion-webos with the libtile_vt backend, where the connection remains stable (but the only backlight colors is a bright green).

    Also, I tested my Hyperion setup with another device on the network. The connectivity issues occur only with hyperion-webos.

    Thank you for the great project! <3


    Device Info:

    "board_type": "K6LP_DVB",
    "hardware_id": "HE_DTV_W20P_AFADABAA",
    "product_id": "55UN70006LA",
    "core_os_release": "5.3.0-2204",
    "webos_manufacturing_version": "04.30.58"
    

    My Logs:

         0.000s [INFO main                ] Starting up...
         0.129s [INFO capture_preinit     ] Preinit called. Copying config..
         0.129s [INFO capture_preinit     ] Copying config done. Initialize vars..
         0.130s [INFO capture_preinit     ] Init finished.
         0.130s [INFO capture_init        ] Initialization of capture devices..
         0.130s [INFO capture_init        ] Graphical capture enabled. Begin init..
    The ppid=3839, pid=5251, tid=5251 open GAL-SE/mmap success.
         0.136s [INFO capture_init        ] HAL_GAL_Init done! Exit: 0
         0.138s [INFO capture_init        ] HAL_GAL_CreateSurface done! SurfaceID: 122
         0.145s [INFO capture_init        ] HAL_GAL_CaptureFrameBuffer done! 0
         0.146s [INFO capture_init        ] HAL_GAL: gfx open ok result: 11
         0.146s [INFO capture_init        ] Halgal done!
         0.146s [INFO capture_init        ] Init video capture..
         0.217s [INFO capture_init        ] Driver created!
         0.217s [INFO vtcapture_initialize] Starting vtcapture initialization.
         0.221s [INFO vtcapture_initialize] vtCapture_init done! Caller_ID: hyperion-webos_service Client ID: 5779392
         0.221s [INFO vtcapture_initialize] Skipping successfull vtCapture_init to prevent start after first try.
         0.221s [INFO vtcapture_initialize] vtCapture_postprocess done!
         0.222s [INFO vtcapture_initialize] vtCapture_finalize done!
         0.222s [INFO capture_init        ] vtcapture not ready yet!
         0.222s [INFO capture_init        ] Malloc hal+vt vars..
         0.222s [INFO capture_init        ] Malloc hal+vt vars finished.
         0.222s [INFO capture_start       ] Starting capture thread..
         0.233s [INFO connection_loop     ] Connecting hyperion-client..
         0.252s [INFO connection_loop     ] hyperion-client connected!
         4.384s [INFO send_picture        ] Try to init vtcapture again..
         4.384s [INFO vtcapture_initialize] Starting vtcapture initialization.
         4.393s [INFO vtcapture_initialize] vtCapture_init done! Caller_ID: hyperion-webos_service Client ID: 5779392
         4.488s [INFO vtcapture_initialize] vtCapture_preprocess done!
         4.489s [INFO vtcapture_initialize] vtCapture_planeInfo done! stride: 368 Region: x: 0, y: 0, w: 360, h: 180 Active Region: x: 0, y: 0 w: 360 h: 180
         4.489s [INFO vtcapture_initialize] vtCapture_process done!
         4.589s [INFO vtcapture_initialize] vtCapture_currentCaptureBuffInfo done after 1 tries! addr0: 0x95d2f000 addr1: 0x9697b000 size0: 66240 size1: 33120
         4.589s [INFO vtcapture_initialize] vtcapture initialization finished.
         4.589s [INFO send_picture        ] Init possible. Terminating current capture..
         4.589s [INFO capture_terminate   ] Called termination of vtcapture
         4.589s [INFO capture_terminate   ] Video capture enabled - Also stopping..
         4.590s [INFO capture_stop_vt     ] Stopping VT capture...
         4.622s [INFO capture_stop_vt     ] vtCapture_stop done!
         4.622s [INFO capture_terminate   ] GUI capture enabled - Also stopping..
         4.622s [INFO capture_stop_hal    ] Stopping HAL capture...
         4.622s [INFO capture_stop_hal    ] HAL_GAL_DestroySurface done. Result: 0
         4.624s [INFO capture_terminate   ] vtCapture_postprocess done!
         4.625s [INFO capture_terminate   ] vtCapture_finalize done!
         4.645s [INFO capture_terminate   ] Driver released!
         4.645s [INFO capture_terminate   ] Finished capture termination!
         4.645s [INFO send_picture        ] Init possible. Cleanup current capture..
         4.645s [INFO capture_cleanup     ] Capture cleanup...
         4.645s [INFO capture_cleanup     ] Capture was running, freeing vars...
         4.645s [INFO capture_cleanup     ] Freeing video vars...
         4.645s [INFO capture_cleanup     ] Freeing gui vars...
         4.645s [INFO capture_cleanup     ] gfx close ok result: 0
         4.645s [INFO capture_cleanup     ] Finished capture cleanup..
         4.645s [INFO send_picture        ] Init possible. Init capture..
         4.645s [INFO capture_init        ] Initialization of capture devices..
         4.645s [INFO capture_init        ] Graphical capture enabled. Begin init..
    The ppid=3839, pid=5251, tid=5256 get GAL-SE success.
         4.645s [INFO capture_init        ] HAL_GAL_Init done! Exit: 0
         4.648s [INFO capture_init        ] HAL_GAL_CreateSurface done! SurfaceID: 123
         4.652s [INFO capture_init        ] HAL_GAL_CaptureFrameBuffer done! 0
         4.652s [INFO capture_init        ] HAL_GAL: gfx open ok result: 11
         4.652s [INFO capture_init        ] Halgal done!
         4.652s [INFO capture_init        ] Init video capture..
         4.678s [INFO capture_init        ] Driver created!
         4.678s [INFO vtcapture_initialize] Starting vtcapture initialization.
         4.681s [INFO vtcapture_initialize] vtCapture_init done! Caller_ID: hyperion-webos_service Client ID: -1820304384
         4.788s [INFO vtcapture_initialize] vtCapture_preprocess done!
         4.788s [INFO vtcapture_initialize] vtCapture_planeInfo done! stride: 368 Region: x: 0, y: 0, w: 360, h: 180 Active Region: x: 0, y: 0 w: 360 h: 180
         4.789s [INFO vtcapture_initialize] vtCapture_process done!
         4.889s [INFO vtcapture_initialize] vtCapture_currentCaptureBuffInfo done after 1 tries! addr0: 0x95d2f000 addr1: 0x9697b000 size0: 66240 size1: 33120
         4.889s [INFO vtcapture_initialize] vtcapture initialization finished.
         4.889s [INFO capture_init        ] vtcapture initialized!
         4.889s [INFO capture_init        ] Malloc hal+vt vars..
         4.889s [INFO capture_init        ] Malloc hal+vt vars finished.
         4.889s [INFO send_picture        ] Init possible. Starting capture again..
         4.889s [INFO capture_start       ] Starting capture thread..
        15.149s [ ERR connection_loop     ] Error! Connection timeout.
        15.149s [INFO connection_loop     ] Connection destroyed, waiting...
        16.149s [INFO connection_loop     ] Connecting hyperion-client..
        16.152s [INFO connection_loop     ] hyperion-client connected!
        27.210s [ ERR connection_loop     ] Error! Connection timeout.
        27.210s [INFO connection_loop     ] Connection destroyed, waiting...
        28.210s [INFO connection_loop     ] Connecting hyperion-client..
        28.214s [INFO connection_loop     ] hyperion-client connected!
        51.220s [ ERR connection_loop     ] Error! Connection timeout.
        51.220s [INFO connection_loop     ] Connection destroyed, waiting...
        52.220s [INFO connection_loop     ] Connecting hyperion-client..
        52.223s [INFO connection_loop     ] hyperion-client connected!
        78.970s [ ERR connection_loop     ] Error! Connection timeout.
        78.974s [INFO connection_loop     ] Connection destroyed, waiting...
        79.974s [INFO connection_loop     ] Connecting hyperion-client..
        79.977s [INFO connection_loop     ] hyperion-client connected!
        92.289s [ ERR connection_loop     ] Error! Connection timeout.
        92.289s [INFO connection_loop     ] Connection destroyed, waiting...
        93.289s [INFO connection_loop     ] Connecting hyperion-client..
        93.292s [INFO connection_loop     ] hyperion-client connected!
        98.629s [ ERR connection_loop     ] Error! Connection timeout.
        98.629s [INFO connection_loop     ] Connection destroyed, waiting...
        99.629s [INFO connection_loop     ] Connecting hyperion-client..
        99.633s [INFO connection_loop     ] hyperion-client connected!
       111.029s [ ERR connection_loop     ] Error! Connection timeout.
       111.030s [INFO connection_loop     ] Connection destroyed, waiting...
       112.030s [INFO connection_loop     ] Connecting hyperion-client..
       112.033s [INFO connection_loop     ] hyperion-client connected!
       124.539s [ ERR connection_loop     ] Error! Connection timeout.
       124.539s [INFO connection_loop     ] Connection destroyed, waiting...
       125.540s [INFO connection_loop     ] Connecting hyperion-client..
       125.544s [INFO connection_loop     ] hyperion-client connected!
       126.455s [INFO handle_signal       ] SIGINT called! Stopping capture if running..
    
    opened by h45h74x 0
Owner
webOS Brew
Homebrew project for webOS TV
webOS Brew
Advanced discord token grabber builder with GUI

Token-Grabber-Builder Advanced discord token grabber builder with GUI Screenshot Features Hidden console High execution speed Grab discord tokens Stea

RadonCoding 2 Dec 2, 2021
Vireo is a lightweight and versatile video processing library written in C++11

Overview Vireo is a lightweight and versatile video processing library that powers our video transcoding service, deep learning recognition systems an

Twitter 851 Jun 20, 2022
Play video by fonts in a console window by composing characters

FontVideo Play video by fonts in a console window by composing characters. Using FFmpeg API to decode the input file, then the video stream is rendere

0xaa55 8 Feb 23, 2022
Streaming video over USB 3.0 using MAX10 FPGA and CYUSB3014 synchronous slave mode.

DECA_USB3_Cam Streaming video over USB 3.0 using MAX10 FPGA and CYUSB3014 synchronous slave mode. Video: Block diagram _______

Dmitry Koroteev 9 Apr 18, 2022
📽 A simple X11+SDL2 animated wallpaper setter and video player

anipaper ?? A simple X11+SDL2 animated wallpaper setter and video player Introduction Anipaper (ANImated Wallpaper) is a simple 'wallpaper setter' for

Davidson Francis 8 Apr 21, 2022
The CRT filter that I used in my "what is that editor" video

Bisqwit’s CRT filter This is the CRT filter that I used in my ”What is That Editor” video, at https://www.youtube.com/watch?v=ZMBQmhO8KqI. It received

Joel Yliluoma 43 Apr 10, 2022
Lee Thomason 290 Jun 9, 2022
A video input (V4L2) to NDI converter that works with Raspberry Pi (32-bit and 64-bit), and Intel/AMD CPUs

V4L2 to NDI V4L2 to NDI is an application that connects to attached V4L2 devices and encodes the video signal into NDI It uses the NDI library, allowi

Luke Plassman 37 Jun 21, 2022
Just another short video app (not tiktok) but 3 in 1.

Short videos app - India Another short videos app for Hindi audience. Made with 3 different apis: Moj app Josh app Chingari app Authetication No authe

Not Your Surya 2 Jan 6, 2022
Companion repository to the "Modern Embedded Systems Programming" video course.

What is it? This repository is a companion to the "Modern Embedded Systems Programming" video course, which consists of focused, fast-paced, hands-on

Quantum Leaps 139 Jun 25, 2022
Hashlink/heaps video support

hlvideo Hashlink video support Windows Setup Download and build AOM from hlvideo root directory

Heaps.io 2 Apr 22, 2022
A generic post-processing injector for games and video software.

ReShade This is a generic post-processing injector for games and video software. It exposes an automated way to access both frame color and depth info

null 2.6k Jun 27, 2022
High-quality Interactive Audio/Video Windows SDK

腾讯云实时音视频 TRTC SDK English | 简体中文 产品介绍 腾讯实时音视频(Tencent Real-Time Communication,TRTC),将腾讯多年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开

LiteAVSDK 11 Jun 6, 2022
An app to enable fluent, cross-language video chat.

project_vouvos A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started i

pq43 4 Jun 1, 2022
Hyperion Engine is a 3D game engine written in C++

Hyperion Engine About Hyperion Engine is a 3D game engine written in C++. We aim to make Hyperion be easy to understand and use, while still enabling

null 130 Jun 28, 2022
GUI frontend for moonlight-embedded, (currently) runs on webOS

Moonlight TV Moonlight TV is a GUI front end for Moonlight GameStream Client. With some components from moonlight-embedded. It was originally designed

Mariotaku 326 Jun 27, 2022
An extremely hacky VNC server for WebOS - Works by reading directly from the GPU's framebuffer.

webos-vncserver An extremely hacky VNC server for WebOS - Works by reading directly from the GPU's framebuffer. Requires root privileges.

David Buchanan 14 Apr 7, 2022
Advanced C++ Discord Token Grabber ( FUD )

DTGPlusPlus C++ Discord Token Grabber ( FUD ) ?? Features » High Speed High Execution Rate Using Win32 API Low Size Without Dependence ( Support Win X

null 6 Nov 9, 2021
Advanced discord token grabber builder with GUI

Token-Grabber-Builder Advanced discord token grabber builder with GUI Screenshot Features Hidden console High execution speed Grab discord tokens Stea

RadonCoding 2 Dec 2, 2021
Video++, a C++14 high performance video and image processing library.

Video++ Video++ is a video and image processing library taking advantage of the C++14 standard to ease the writing of fast video and image processing

Matthieu Garrigues 681 Jun 14, 2022
Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Aaron Feng 7k Jun 27, 2022
Vulkan Video Sample Application demonstrating an end-to-end, all-Vulkan, processing of h.264/5 compressed video content.

This project is a Vulkan Video Sample Application demonstrating an end-to-end, all-Vulkan, processing of h.264/5 compressed video content. The application decodes the h.264/5 compressed content using an HW accelerated decoder, the decoded YCbCr frames are processed with Vulkan Graphics and then presented via the Vulkan WSI.

NVIDIA DesignWorks Samples 108 Jun 18, 2022
Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Aaron Feng 7k Jun 29, 2022
This is a list of different open-source video games and commercial video games open-source remakes.

This is a list of different open-source video games and commercial video games open-source remakes.

Ivan Bobev 73 Jun 20, 2022
Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.

Video Stabilization Contents General Info Installation To Do General Info Video stabilization is a software-based approach in real-time to eliminating

null 5 Mar 7, 2022
Minimalist video maker -- simplify your music score video making process!

VisualScores 极简视频制作程序,简化你的乐谱视频制作! 如果需要编译,请解压 lib 文件夹中压缩包。 使用前请参考 manual 文件夹中的用户手册。 请勿修改、移动或删除 resource 文件夹中的任何文件。 VisualScores Minimalist video maker

Chen and Sim 5 Jan 11, 2022
OpenShot Video Library (libopenshot) is a free, open-source C++ library dedicated to delivering high quality video editing, animation, and playback solutions to the world

OpenShot Video Library (libopenshot) is a free, open-source C++ library dedicated to delivering high quality video editing, animation, and playback solutions to the world

OpenShot Studios, LLC 845 Jun 21, 2022
Convenient unified display of the most relevant technical and tag data for video and audio files.

MediaInfoLib README MediaInfo(Lib) is a convenient unified display of the most relevant technical and tag data for video and audio files. MediaInfoLib

MediaArea 442 Jun 18, 2022
Open h.265 video codec implementation.

libde265 - open h.265 codec implementation libde265 is an open source implementation of the h.265 video codec. It is written from scratch and has a pl

struktur AG 1.3k Jun 24, 2022