batocera-linux / batocera.linux

batocera.linux
https://batocera.org
Other
1.93k stars 496 forks source link

v40 : wine : winegstreamer error: qtdemux0: Internal data stream error. winegstreamer error: qtdemux0: ../gst/isomp4/qtdemux.c(7423): gst_qtdemux_loop () #12360

Open aderumier opened 3 weeks ago

aderumier commented 3 weeks ago

Batocera build version

40 2024/08/01 01:28

Your architecture

x86_64

Your Graphic Processor Unit(s) (GPU)

nvidia rtx2070 super

Issue description

I have a windows game https://store.steampowered.com/app/2527580/Teenage_Mutant_Ninja_Turtles_Arcade_Wrath_of_the_Mutants/

working on v39 out of the box, but display a black screen on v40 (the game should play a video intro at start)

wine debug log give me a error on v40, that I don't see on v39:

winegstreamer error: qtdemux0: Internal data stream error.
winegstreamer error: qtdemux0: ../gst/isomp4/qtdemux.c(7423): gst_qtdemux_loop (): /GstBin:bin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0:
streaming stopped, reason not-negotiated (-4)

It seem related to this recent bug in qtdemux 1.24.3 (fixed in 1.24.4) https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3603

Detailed reproduction steps

Just install the game, no special winetricks, dxvk=on

Details of any attempts to fix this yourself

No response

Details of any modifications you have made to Batocera.

nothing

Logs and data

No response

dmanlfc commented 2 weeks ago

Gstreamer has been updated to 1.24.6 in v41. Try the beta

aderumier commented 1 week ago

Hi, I have tested with 41cup-dev-e0b40b1688 2024/08/30 10:46

still same error

winegstreamer error: qtdemux0: Internal data stream error.
winegstreamer error: qtdemux0: ../gst/isomp4/qtdemux.c(7423): gst_qtdemux_loop (): /GstBin:bin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0:
streaming stopped, reason not-negotiated (-4)

looking at the issue, it seem to be fixed in vtdec lib in gst-plugins-bad

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6446

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6446/diffs

aderumier commented 1 week ago

(I'll try to debug with GST_DEBUG=*:6 , and compare v39 vs v40, and try to copy back differents gst lib from v39, to find exactly which one is the cause of the problem.

(it seem to be a generic error, where qtdemux can crash because of another lib, could be another one than vtdec)

aderumier commented 1 week ago

@dmanlfc ok, I have found the problem , it's coming from /usr/lib/gstreamer-1.0/libgstnvcodec.so

if I remove it, the game is launching fine. (I think it's only used from offloading decoding to nvidia, so it's fallback to software decoding).

gst-inpect return error with missing lib

v40

export GST_PLUGIN_SYSTEM_PATH_1_0="/usr/lib/gstreamer-1.0:/lib32/gstreamer-1.0"
export GST_REGISTRY_1_0="/userdata/system/.cache/gstreamer-1.0/registry.x86_64.bin:/userdata/system/.cache/gstreamer-1.0/registry..bin"
export DISPLAY=:0.0
GST_DEBUG=2 gst-inspect-1.0 nvcodec

0:00:00.005442144  6326     0x20f16120 WARN                   vaapi gstvaapiutils.c:78:gst_vaapi_warning: vaGetDriverNames() failed with unknown libva error
0:00:00.005488891  6326     0x20f16120 WARN                 default gstvaapi.c:229:plugin_init: Cannot create a VA display
Plugin Details:
  Name                     nvcodec
  Description              GStreamer NVCODEC plugin
  Filename                 /usr/lib/gstreamer-1.0/libgstnvcodec.so
  Version                  1.24.4
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/
  Source release date      2024-05-29
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

  Info: CUDA runtime compilation library "libnvrtc.so" was not found, check CUDA toolkit package installation

  Warning: NVENC library "libnvidia-encode.so.1" was not found.

  cudadownload: CUDA downloader
  cudaipcsink: CUDA IPC Sink
  cudaipcsrc: CUDA IPC Src
  cudaupload: CUDA uploader
  nvh264dec: NVDEC H.264 Decoder
  nvh265dec: NVDEC H.265 Decoder
  nvjpegdec: NVDEC jpeg Video Decoder
  nvmpeg2videodec: NVDEC mpeg2video Video Decoder
  nvmpeg4videodec: NVDEC mpeg4video Video Decoder
  nvmpegvideodec: NVDEC mpegvideo Video Decoder
  nvvp8dec: NVDEC VP8 Decoder
  nvvp9dec: NVDEC VP9 Decoder

  12 features:
  +-- 12 elements

on v39, I don't have any error


GST_DEBUG=2 gst-inspect-1.0 nvcodec
Plugin Details:
  Name                     nvcodec
  Description              GStreamer NVCODEC plugin
  Filename                 /usr/lib/gstreamer-1.0/libgstnvcodec.so
  Version                  1.22.9
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/
  Source release date      2024-01-24
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

  cudadownload: CUDA downloader
  cudaupload: CUDA uploader
  nvautogpuh264enc: NVENC H.264 Video Encoder Auto GPU select Mode
  nvautogpuh265enc: NVENC H.265 Video Encoder Auto GPU select Mode
  nvcudah264enc: NVENC H.264 Video Encoder CUDA Mode
  nvcudah265enc: NVENC H.265 Video Encoder CUDA Mode
  nvh264dec: NVDEC h264 Video Decoder
  nvh264enc: NVENC H.264 Video Encoder
  nvh264sldec: NVDEC H.264 Stateless Decoder
  nvh265dec: NVDEC h265 Video Decoder
  nvh265enc: NVENC HEVC Video Encoder
  nvh265sldec: NVDEC H.265 Stateless Decoder
  nvjpegdec: NVDEC jpeg Video Decoder
  nvmpeg2videodec: NVDEC mpeg2video Video Decoder
  nvmpeg4videodec: NVDEC mpeg4video Video Decoder
  nvmpegvideodec: NVDEC mpegvideo Video Decoder
  nvvp8dec: NVDEC vp8 Video Decoder
  nvvp8sldec: NVDEC VP8 Stateless Decoder
  nvvp9dec: NVDEC vp9 Video Decoder
  nvvp9sldec: NVDEC VP9 Stateless Decoder

  20 features:
  +-- 20 elements
aderumier commented 1 week ago

with more debug (I wonder if it couldn't be a missmatch between nvidia driver version and nvcodec version)

 GST_DEBUG=nvdec*:6,nvenc*:6 gst-inspect-1.0 --plugin nvcodec
0:00:00.110561176  9166      0xf6a3370 ERROR                  nvenc gstnvenc.c:936:gst_nvenc_load_library: NvEncodeAPIGetMaxSupportedVersion unavailable
0:00:00.211530521  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: mpegvideo bit-depth 8 with chroma format 0 [48 - 4080] x [16 - 4080]
0:00:00.214047205  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpegvideo bit-depth 10 with chroma format 0 is not supported
0:00:00.215509666  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpegvideo bit-depth 12 with chroma format 0 is not supported
0:00:00.216983698  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpegvideo bit-depth 8 with chroma format 1 is not supported
0:00:00.218431040  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpegvideo bit-depth 10 with chroma format 1 is not supported
0:00:00.219890225  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpegvideo bit-depth 12 with chroma format 1 is not supported
0:00:00.219934007  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1487:gst_nv_decoder_check_device_caps: sink template caps video/mpeg, mpegversion=(int)1, systemstream=(boolean)false, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]
0:00:00.219947393  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1488:gst_nv_decoder_check_device_caps: src template caps video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]
0:00:00.221454728  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: mpeg2video bit-depth 8 with chroma format 0 [48 - 4080] x [16 - 4080]
0:00:00.222912450  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpeg2video bit-depth 10 with chroma format 0 is not supported
0:00:00.224366084  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpeg2video bit-depth 12 with chroma format 0 is not supported
0:00:00.225819017  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpeg2video bit-depth 8 with chroma format 1 is not supported
0:00:00.227296345  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpeg2video bit-depth 10 with chroma format 1 is not supported
0:00:00.228749128  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpeg2video bit-depth 12 with chroma format 1 is not supported
0:00:00.228770478  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1487:gst_nv_decoder_check_device_caps: sink template caps video/mpeg, mpegversion=(int)2, systemstream=(boolean)false, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]
0:00:00.228782040  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1488:gst_nv_decoder_check_device_caps: src template caps video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4080 ], height=(int)[ 16, 4080 ]
0:00:00.230274617  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: mpeg4video bit-depth 8 with chroma format 0 [48 - 2032] x [16 - 2032]
0:00:00.231717170  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpeg4video bit-depth 10 with chroma format 0 is not supported
0:00:00.233170324  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpeg4video bit-depth 12 with chroma format 0 is not supported
0:00:00.234621634  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpeg4video bit-depth 8 with chroma format 1 is not supported
0:00:00.236066752  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpeg4video bit-depth 10 with chroma format 1 is not supported
0:00:00.237523872  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: mpeg4video bit-depth 12 with chroma format 1 is not supported
0:00:00.237543459  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1487:gst_nv_decoder_check_device_caps: sink template caps video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 48, 2032 ], height=(int)[ 16, 2032 ]
0:00:00.237552186  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1488:gst_nv_decoder_check_device_caps: src template caps video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 2032 ], height=(int)[ 16, 2032 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 2032 ], height=(int)[ 16, 2032 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 2032 ], height=(int)[ 16, 2032 ]
0:00:00.237581511  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1240:gst_nv_decoder_check_device_caps: No codec map corresponding to codec 3
0:00:00.239185488  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: h264 bit-depth 8 with chroma format 0 [48 - 4096] x [16 - 4096]
0:00:00.240650644  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: h264 bit-depth 10 with chroma format 0 is not supported
0:00:00.242176794  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: h264 bit-depth 12 with chroma format 0 is not supported
0:00:00.243659763  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: h264 bit-depth 8 with chroma format 1 is not supported
0:00:00.245118607  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: h264 bit-depth 10 with chroma format 1 is not supported
0:00:00.246637695  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: h264 bit-depth 12 with chroma format 1 is not supported
0:00:00.246662081  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1487:gst_nv_decoder_check_device_caps: sink template caps video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, profile=(string){ constrained-baseline, baseline, main, high, constrained-high, progressive-high }, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]
0:00:00.246672039  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1488:gst_nv_decoder_check_device_caps: src template caps video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]
0:00:00.248230561  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: jpeg bit-depth 8 with chroma format 0 [64 - 32768] x [64 - 16384]
0:00:00.249699333  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: jpeg bit-depth 10 with chroma format 0 is not supported
0:00:00.251155232  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: jpeg bit-depth 12 with chroma format 0 is not supported
0:00:00.252608846  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: jpeg bit-depth 8 with chroma format 1 [64 - 32768] x [64 - 16384]
0:00:00.254070535  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: jpeg bit-depth 10 with chroma format 1 is not supported
0:00:00.255525161  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: jpeg bit-depth 12 with chroma format 1 is not supported
0:00:00.255542344  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1487:gst_nv_decoder_check_device_caps: sink template caps image/jpeg, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ]
0:00:00.255549988  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1488:gst_nv_decoder_check_device_caps: src template caps video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ]; video/x-raw, format=(string)NV12, width=(int)[ 64, 32768 ], height=(int)[ 64, 16384 ]
0:00:00.255579323  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1240:gst_nv_decoder_check_device_caps: No codec map corresponding to codec 6
0:00:00.255584803  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1240:gst_nv_decoder_check_device_caps: No codec map corresponding to codec 7
0:00:00.257041403  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: h265 bit-depth 8 with chroma format 0 [144 - 8192] x [144 - 8192]
0:00:00.258493955  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: h265 bit-depth 10 with chroma format 0 [144 - 8192] x [144 - 8192]
0:00:00.259945896  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: h265 bit-depth 12 with chroma format 0 [144 - 8192] x [144 - 8192]
0:00:00.261397196  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: h265 bit-depth 8 with chroma format 1 [144 - 8192] x [144 - 8192]
0:00:00.262861330  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: h265 bit-depth 10 with chroma format 1 [144 - 8192] x [144 - 8192]
0:00:00.264320264  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: h265 bit-depth 12 with chroma format 1 [144 - 8192] x [144 - 8192]
0:00:00.264345191  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1487:gst_nv_decoder_check_device_caps: sink template caps video/x-h265, stream-format=(string)byte-stream, alignment=(string)au, profile=(string){ main, main-10, main-12, main-444, main-444-10, main-444-12 }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ]
0:00:00.264355771  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1488:gst_nv_decoder_check_device_caps: src template caps video/x-raw(memory:CUDAMemory), format=(string){ NV12, P010_10LE, P012_LE, Y444, Y444_16LE, GBR, GBR_16LE }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ]; video/x-raw(memory:GLMemory), format=(string){ NV12, P010_10LE, P012_LE, Y444, GBR }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ]; video/x-raw, format=(string){ NV12, P010_10LE, P012_LE, Y444, Y444_16LE, GBR, GBR_16LE }, width=(int)[ 144, 8192 ], height=(int)[ 144, 8192 ]
0:00:00.265866222  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: vp8 bit-depth 8 with chroma format 0 [48 - 4096] x [16 - 4096]
0:00:00.267328663  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: vp8 bit-depth 10 with chroma format 0 is not supported
0:00:00.268776696  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: vp8 bit-depth 12 with chroma format 0 is not supported
0:00:00.270237925  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: vp8 bit-depth 8 with chroma format 1 is not supported
0:00:00.271689515  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: vp8 bit-depth 10 with chroma format 1 is not supported
0:00:00.273144772  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: vp8 bit-depth 12 with chroma format 1 is not supported
0:00:00.273161965  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1487:gst_nv_decoder_check_device_caps: sink template caps video/x-vp8, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]
0:00:00.273169098  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1488:gst_nv_decoder_check_device_caps: src template caps video/x-raw(memory:CUDAMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw(memory:GLMemory), format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw, format=(string)NV12, width=(int)[ 48, 4096 ], height=(int)[ 16, 4096 ]
0:00:00.274671444  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: vp9 bit-depth 8 with chroma format 0 [128 - 8192] x [128 - 8192]
0:00:00.276125970  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: vp9 bit-depth 10 with chroma format 0 [128 - 8192] x [128 - 8192]
0:00:00.277600563  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1329:gst_nv_decoder_check_device_caps: vp9 bit-depth 12 with chroma format 0 [128 - 8192] x [128 - 8192]
0:00:00.279050801  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: vp9 bit-depth 8 with chroma format 1 is not supported
0:00:00.280512190  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: vp9 bit-depth 10 with chroma format 1 is not supported
0:00:00.281966656  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: vp9 bit-depth 12 with chroma format 1 is not supported
0:00:00.281986823  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1487:gst_nv_decoder_check_device_caps: sink template caps video/x-vp9, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ], profile=(string){ 0, 2 }
0:00:00.281996181  9166      0xf6a3370 DEBUG              nvdecoder gstnvdecoder.cpp:1488:gst_nv_decoder_check_device_caps: src template caps video/x-raw(memory:CUDAMemory), format=(string){ NV12, P010_10LE, P012_LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]; video/x-raw(memory:GLMemory), format=(string){ NV12, P010_10LE, P012_LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]; video/x-raw, format=(string){ NV12, P010_10LE, P012_LE }, width=(int)[ 128, 8192 ], height=(int)[ 128, 8192 ]
0:00:00.283500230  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: av1 bit-depth 8 with chroma format 0 is not supported
0:00:00.284949616  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: av1 bit-depth 10 with chroma format 0 is not supported
0:00:00.286408741  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: av1 bit-depth 12 with chroma format 0 is not supported
0:00:00.287864519  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: av1 bit-depth 8 with chroma format 1 is not supported
0:00:00.289311100  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: av1 bit-depth 10 with chroma format 1 is not supported
0:00:00.290777658  9166      0xf6a3370 LOG                nvdecoder gstnvdecoder.cpp:1307:gst_nv_decoder_check_device_caps: av1 bit-depth 12 with chroma format 1 is not supported
0:00:00.290786124  9166      0xf6a3370 INFO               nvdecoder gstnvdecoder.cpp:1382:gst_nv_decoder_check_device_caps: device can not support av1
Plugin Details:
  Name                     nvcodec
  Description              GStreamer NVCODEC plugin
  Filename                 /usr/lib/gstreamer-1.0/libgstnvcodec.so
  Version                  1.24.4
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/
  Source release date      2024-05-29
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

  Info: CUDA runtime compilation library "libnvrtc.so" was not found, check CUDA toolkit package installation

  Warning: NVENC library "libnvidia-encode.so.1" was not found.

  cudadownload: CUDA downloader
  cudaipcsink: CUDA IPC Sink
  cudaipcsrc: CUDA IPC Src
  cudaupload: CUDA uploader
  nvh264dec: NVDEC H.264 Decoder
  nvh265dec: NVDEC H.265 Decoder
  nvjpegdec: NVDEC jpeg Video Decoder
  nvmpeg2videodec: NVDEC mpeg2video Video Decoder
  nvmpeg4videodec: NVDEC mpeg4video Video Decoder
  nvmpegvideodec: NVDEC mpegvideo Video Decoder
  nvvp8dec: NVDEC VP8 Decoder
  nvvp9dec: NVDEC VP9 Decoder

  12 features:
  +-- 12 elements
dmanlfc commented 1 week ago

in v40 we added more hardware acceleration, mainly with the va-api interface but also cuda for nvidia for the vlc player & ffmpeg. looking at the v41 build logs for the plugin, the nvidia codec (nvcodec) option gets added automatically probably because the cuda libraries are detected in the build system. where the problem lies... is it a gst plugin bug?... I don't know... what i do know is v41 uses the latest gstreamer plugins which should be compatible with the latest nvidia driver for modern nvidia cards like yours...

dmanlfc commented 1 week ago

try my beta here - https://drive.google.com/drive/folders/1_bqmR7CoZ78i7DolYt5b-RRqB5c-LPyN?usp=drive_link it has the 1.24.7 gstreamer plugins.

aderumier commented 1 week ago

in v40 we added more hardware acceleration, mainly with the va-api interface but also cuda for nvidia for the vlc player & ffmpeg. looking at the v41 build logs for the plugin, the nvidia codec (nvcodec) option gets added automatically probably because the cuda libraries are detected in the build system. where the problem lies... is it a gst plugin bug?... I don't know... what i do know is v41 uses the latest gstreamer plugins which should be compatible with the latest nvidia driver for modern nvidia cards like yours...

I seem to miss the libnvrtc.so lib. (I don't see it anywhere).

Also, I have seen bug report on gstreamer about cuda version && nvidia driver version https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3108 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3685

I'll try your beta tonight to compare. as workaround, I can delete libgstnvcodec.so, so it's ok for now.

dmanlfc commented 1 week ago

we shouldn't need the runtime compilation library. afaik gstreamer will use it if available but it's not a dependency for nvcodec functionality in the gstreamer plugin.

aderumier commented 1 week ago

tried the last besta, still not working with the game (same error)

gst-inspect seem to be more complete now. (indeed libnvrtc.so" is just in info, no error)

OS version: 41cup-dev-5c484321ae 2024/09/02 09:27

[root@BATOCERA /userdata/system]# gst-inspect-1.0 --plugin nvcodec
Plugin Details:
  Name                     nvcodec
  Description              GStreamer NVCODEC plugin
  Filename                 /usr/lib/gstreamer-1.0/libgstnvcodec.so
  Version                  1.24.7
  License                  LGPL
  Source module            gst-plugins-bad
  Documentation            https://gstreamer.freedesktop.org/documentation/nvcodec/
  Source release date      2024-08-21
  Binary package           GStreamer Bad Plug-ins source release
  Origin URL               Unknown package origin

  Info: CUDA runtime compilation library "libnvrtc.so" was not found, check CUDA toolkit package installation

  cudadownload: CUDA downloader
  cudaipcsink: CUDA IPC Sink
  cudaipcsrc: CUDA IPC Src
  cudaupload: CUDA uploader
  nvautogpuh264enc: NVENC H.264 Video Encoder Auto GPU select Mode
  nvautogpuh265enc: NVENC H.265 Video Encoder Auto GPU select Mode
  nvcudah264enc: NVENC H.264 Video Encoder CUDA Mode
  nvcudah265enc: NVENC H.265 Video Encoder CUDA Mode
  nvh264dec: NVDEC H.264 Decoder
  nvh264enc: NVENC H.264 Video Encoder
  nvh265dec: NVDEC H.265 Decoder
  nvh265enc: NVENC HEVC Video Encoder
  nvjpegdec: NVDEC jpeg Video Decoder
  nvmpeg2videodec: NVDEC mpeg2video Video Decoder
  nvmpeg4videodec: NVDEC mpeg4video Video Decoder
  nvmpegvideodec: NVDEC mpegvideo Video Decoder
  nvvp8dec: NVDEC VP8 Decoder
  nvvp9dec: NVDEC VP9 Decoder

  18 features:
  +-- 18 elements

Maybe is is a problem in cuda decoding itself ?

dmanlfc commented 1 week ago

Take the issue upstream as they need to be made aware