Jump to content

Understanding Hardware-Accelerated Video Decoding


P.P.A.

Recommended Posts

When kodi starts playing an h264 file with hardware decoding, the debug log looks like this

(I removed lines with mjpeg and [mov because they were 99% of the lines, making noise.)

Spoiler

LibreELEC:~/.kodi/temp # tail -f kodi.log | grep ffmpeg | grep -v mjpeg | grep -v '\[mov'
2023-04-29 22:20:05.267 T:1427    debug <general>: ffmpeg[0xad946ad0]: [image2] Custom AVIOContext makes no sense and will be ignored with AVFMT_NOFILE format.
2023-04-29 22:20:05.306 T:1426    debug <general>: ffmpeg[0xad997280]: [image2] Custom AVIOContext makes no sense and will be ignored with AVFMT_NOFILE format.
2023-04-29 22:20:05.565 T:1426    debug <general>: ffmpeg[0xad997280]: [image2] Custom AVIOContext makes no sense and will be ignored with AVFMT_NOFILE format.
2023-04-29 22:20:07.046 T:1451    debug <general>: ffmpeg[0x2239168]: Probing mov,mp4,m4a,3gp,3g2,mj2 score:100 size:2048
2023-04-29 22:20:07.047 T:1451    debug <general>: ffmpeg[0x2239168]: Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
2023-04-29 22:20:09.291 T:1451    debug <general>: ffmpeg[0x2239168]: [h264] nal_unit_type: 7(SPS), nal_ref_idc: 3
2023-04-29 22:20:09.291 T:1451    debug <general>: ffmpeg[0x2239168]: [h264] nal_unit_type: 8(PPS), nal_ref_idc: 3
2023-04-29 22:20:09.295 T:1451    debug <general>: ffmpeg[0x2239168]: [h264] nal_unit_type: 5(IDR), nal_ref_idc: 1
2023-04-29 22:20:09.295 T:1451    debug <general>: ffmpeg[0x2239168]: [h264] Format yuv420p chosen by get_format().
2023-04-29 22:20:09.295 T:1451    debug <general>: ffmpeg[0x2239168]: [h264] Reinit context to 1280x720, pix_fmt: yuv420p
2023-04-29 22:20:09.299 T:1451    debug <general>: ffmpeg[0x2239168]: [h264] no picture
2023-04-29 22:20:09.443 T:1451     info <general>: ffmpeg[0x2239168]: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/videos/Y2Mate.is - Rounding Corners in SDFs-s5NGeUV2EyU-720p-1656039850234.mp4':
2023-04-29 22:20:09.443 T:1451     info <general>: ffmpeg[0x2239168]:   Metadata:
2023-04-29 22:20:09.444 T:1451     info <general>: ffmpeg[0x2239168]:     major_brand     : mp42
2023-04-29 22:20:09.444 T:1451     info <general>: ffmpeg[0x2239168]:     minor_version   : 0
2023-04-29 22:20:09.444 T:1451     info <general>: ffmpeg[0x2239168]:     compatible_brands: isommp42
2023-04-29 22:20:09.444 T:1451     info <general>: ffmpeg[0x2239168]:     creation_time   : 2019-11-01T18:41:03.000000Z
2023-04-29 22:20:09.444 T:1451     info <general>: ffmpeg[0x2239168]:   Duration: 00:04:55.01, start: 0.000000, bitrate: 864 kb/s
2023-04-29 22:20:09.444 T:1451     info <general>: ffmpeg[0x2239168]:   Stream #0:0(und), 15, 1/15360: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 732 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
2023-04-29 22:20:09.444 T:1451     info <general>: ffmpeg[0x2239168]:     Metadata:
2023-04-29 22:20:09.445 T:1451     info <general>: ffmpeg[0x2239168]:       creation_time   : 2019-11-01T18:41:03.000000Z
2023-04-29 22:20:09.445 T:1451     info <general>: ffmpeg[0x2239168]:       handler_name    : ISO Media file produced by Google Inc. Created on: 11/01/2019.
2023-04-29 22:20:09.445 T:1451     info <general>: ffmpeg[0x2239168]:       vendor_id       : [0][0][0][0]
2023-04-29 22:20:09.445 T:1451     info <general>: ffmpeg[0x2239168]:   Stream #0:1(eng), 1, 1/44100: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
2023-04-29 22:20:09.445 T:1451     info <general>: ffmpeg[0x2239168]:     Metadata:
2023-04-29 22:20:09.445 T:1451     info <general>: ffmpeg[0x2239168]:       creation_time   : 2019-11-01T18:41:03.000000Z
2023-04-29 22:20:09.445 T:1451     info <general>: ffmpeg[0x2239168]:       handler_name    : ISO Media file produced by Google Inc. Created on: 11/01/2019.
2023-04-29 22:20:09.445 T:1451     info <general>: ffmpeg[0x2239168]:       vendor_id       : [0][0][0][0]
2023-04-29 22:20:09.447 T:1451    debug <general>: ffmpeg[0x2239168]: [AVHWDeviceContext] Opened DRM device /dev/dri/card0: driver sun4i-drm version 1.0.0.
2023-04-29 22:20:09.447 T:1451    debug <general>: ffmpeg[0x2239168]: [h264] Requested frame threading with a custom get_buffer2() implementation which is not marked as thread safe. This is not supported anymore, make your callback thread-safe.
2023-04-29 22:20:09.448 T:1451    debug <general>: ffmpeg[0x2239168]: [h264] nal_unit_type: 7(SPS), nal_ref_idc: 3
2023-04-29 22:20:09.448 T:1451    debug <general>: ffmpeg[0x2239168]: [h264] nal_unit_type: 8(PPS), nal_ref_idc: 3
2023-04-29 22:20:09.451 T:1451    debug <general>: ffmpeg[0x2239168]: [src] Setting 'video_size' to value '1280x720'
2023-04-29 22:20:09.452 T:1451    debug <general>: ffmpeg[0x2239168]: [src] Setting 'pix_fmt' to value '181'
2023-04-29 22:20:09.452 T:1451    debug <general>: ffmpeg[0x2239168]: [src] Setting 'time_base' to value '1/2000000'
2023-04-29 22:20:09.452 T:1451    debug <general>: ffmpeg[0x2239168]: [src] Setting 'pixel_aspect' to value '1/1'
2023-04-29 22:20:09.452 T:1451    debug <general>: ffmpeg[0x2239168]: [src] w:1280 h:720 pixfmt:drm_prime tb:1/2000000 fr:0/1 sar:1/1
2023-04-29 22:20:09.453 T:1451    debug <general>: ffmpeg[0x2239168]: [AVFilterGraph] query_formats: 3 queried, 2 merged, 0 already done, 0 delayed
2023-04-29 22:20:09.455 T:1451    debug <general>: ffmpeg[0x2239168]: probing device /dev/video1
2023-04-29 22:20:09.455 T:1451     info <general>: ffmpeg[0x2239168]: Using device /dev/video1
2023-04-29 22:20:09.455 T:1451    debug <general>: ffmpeg[0x2239168]: deint_v4l2m2m_destroy_context - destroying context
2023-04-29 22:20:09.469 T:1454    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 5(IDR), nal_ref_idc: 1
2023-04-29 22:20:09.469 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] Format drm_prime chosen by get_format().
2023-04-29 22:20:09.469 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] Format drm_prime requires hwaccel initialisation.
2023-04-29 22:20:09.470 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] ff_v4l2_request_init: avctx=0xa69d4040 hw_device_ctx=0xa9c57fa0 hw_frames_ctx=(nil)
2023-04-29 22:20:09.473 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_probe_media_device: avctx=0xa69d4040 ctx=0xac403c60 path=/dev/media0 driver=cedrus
2023-04-29 22:20:09.474 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_probe_video_device: avctx=0xa69d4040 ctx=0xac403c60 path=/dev/video0 capabilities=69238784
2023-04-29 22:20:09.474 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_init_context: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.475 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] ff_v4l2_request_frame_params: avctx=0xa69d4040 ctx=0xac403c60 hw_frames_ctx=0xac401a30 hwfc=0xac401930 pool=0xac4137b0 width=1280 height=720 initial_pool_size=3
2023-04-29 22:20:09.475 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac403600
2023-04-29 22:20:09.475 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac403734 type=2
2023-04-29 22:20:09.475 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:09.476 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac403734 index=0 fd=-1 addr=0x995fd000 width=1280 height=720 size=4194304
2023-04-29 22:20:09.476 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac403798 type=1
2023-04-29 22:20:09.477 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.478 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac403798 index=0 fd=59 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:09.478 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac403600 request_fd=60
2023-04-29 22:20:09.479 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac414600
2023-04-29 22:20:09.479 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac414734 type=2
2023-04-29 22:20:09.479 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:09.480 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac414734 index=1 fd=-1 addr=0x96ece000 width=1280 height=720 size=4194304
2023-04-29 22:20:09.480 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac414798 type=1
2023-04-29 22:20:09.480 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.482 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac414798 index=1 fd=61 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:09.482 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac414600 request_fd=62
2023-04-29 22:20:09.491 T:1161    debug <general>: ffmpeg[0x1775d90]: [SWR] Using fltp internally between filters
2023-04-29 22:20:09.492 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac414830
2023-04-29 22:20:09.492 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac414964 type=2
2023-04-29 22:20:09.493 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:09.497 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac414964 index=2 fd=-1 addr=0x92e31000 width=1280 height=720 size=4194304
2023-04-29 22:20:09.497 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac4149c8 type=1
2023-04-29 22:20:09.497 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.499 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac4149c8 index=2 fd=50 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:09.499 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac414830 request_fd=63
2023-04-29 22:20:09.500 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac420d80
2023-04-29 22:20:09.500 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac420eb4 type=2
2023-04-29 22:20:09.500 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:09.501 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac420eb4 index=3 fd=-1 addr=0x92a31000 width=1280 height=720 size=4194304
2023-04-29 22:20:09.501 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac420f18 type=1
2023-04-29 22:20:09.501 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.503 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac420f18 index=3 fd=57 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:09.504 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac420d80 request_fd=65
2023-04-29 22:20:09.504 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac425fd0
2023-04-29 22:20:09.504 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac426104 type=2
2023-04-29 22:20:09.504 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:09.505 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac426104 index=4 fd=-1 addr=0x92400000 width=1280 height=720 size=4194304
2023-04-29 22:20:09.505 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac426168 type=1
2023-04-29 22:20:09.506 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.508 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac426168 index=4 fd=66 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:09.508 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac425fd0 request_fd=67
2023-04-29 22:20:09.508 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac406890
2023-04-29 22:20:09.508 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac4069c4 type=2
2023-04-29 22:20:09.508 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:09.510 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac4069c4 index=5 fd=-1 addr=0x91e00000 width=1280 height=720 size=4194304
2023-04-29 22:20:09.510 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac406a28 type=1
2023-04-29 22:20:09.510 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.511 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac406a28 index=5 fd=68 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:09.512 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac406890 request_fd=69
2023-04-29 22:20:09.512 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac406c80
2023-04-29 22:20:09.512 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac406db4 type=2
2023-04-29 22:20:09.512 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:09.513 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac406db4 index=6 fd=-1 addr=0x91a00000 width=1280 height=720 size=4194304
2023-04-29 22:20:09.513 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac406e18 type=1
2023-04-29 22:20:09.513 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.515 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac406e18 index=6 fd=70 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:09.515 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac406c80 request_fd=71
2023-04-29 22:20:09.515 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac421210
2023-04-29 22:20:09.515 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac421344 type=2
2023-04-29 22:20:09.515 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:09.517 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac421344 index=7 fd=-1 addr=0x91400000 width=1280 height=720 size=4194304
2023-04-29 22:20:09.517 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac4213a8 type=1
2023-04-29 22:20:09.517 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.519 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac4213a8 index=7 fd=72 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:09.519 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac421210 request_fd=73
2023-04-29 22:20:09.519 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac421600
2023-04-29 22:20:09.519 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac421734 type=2
2023-04-29 22:20:09.519 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:09.520 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac421734 index=8 fd=-1 addr=0x91000000 width=1280 height=720 size=4194304
2023-04-29 22:20:09.520 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac421798 type=1
2023-04-29 22:20:09.521 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.522 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac421798 index=8 fd=74 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:09.522 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac421600 request_fd=75
2023-04-29 22:20:09.522 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac421af0
2023-04-29 22:20:09.523 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac421c24 type=2
2023-04-29 22:20:09.523 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:09.524 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac421c24 index=9 fd=-1 addr=0x90c00000 width=1280 height=720 size=4194304
2023-04-29 22:20:09.524 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac421c88 type=1
2023-04-29 22:20:09.524 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.526 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac421c88 index=9 fd=76 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:09.526 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac421af0 request_fd=77
2023-04-29 22:20:09.528 T:1454    debug <general>: ffmpeg[0x0]: [h264] Reinit context to 1280x720, pix_fmt: drm_prime
2023-04-29 22:20:09.532 T:1454    debug <general>: ffmpeg[0x0]: [h264] no picture
2023-04-29 22:20:09.532 T:1454    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa69d4040 used=107343 controls=5 index=9 fd=76 request_fd=77 first_slice=1 last_slice=1
2023-04-29 22:20:09.540 T:1455    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
2023-04-29 22:20:09.543 T:1455    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa6bffb70 used=19596 controls=5 index=8 fd=74 request_fd=75 first_slice=1 last_slice=1
2023-04-29 22:20:09.551 T:1456    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:09.572 T:1456    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa69d3510 used=273 controls=5 index=7 fd=72 request_fd=73 first_slice=1 last_slice=1
2023-04-29 22:20:09.578 T:1457    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:09.581 T:1457    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa6cff4d0 used=1306 controls=5 index=6 fd=70 request_fd=71 first_slice=1 last_slice=1
2023-04-29 22:20:09.587 T:1454    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:09.590 T:1454    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa69d4040 used=1958 controls=5 index=5 fd=68 request_fd=69 first_slice=1 last_slice=1
2023-04-29 22:20:09.760 T:1162    debug <general>: ffmpeg[0x17761b8]: [SWR] Using fltp internally between filters
2023-04-29 22:20:09.762 T:1161    debug <general>: ffmpeg[0x1775d90]: [SWR] Using fltp internally between filters
2023-04-29 22:20:09.771 T:1455    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:09.779 T:1455    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa6bffb70 used=1330 controls=5 index=4 fd=66 request_fd=67 first_slice=1 last_slice=1
2023-04-29 22:20:09.789 T:1456    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
2023-04-29 22:20:09.790 T:1456    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa69d3510 used=28395 controls=5 index=3 fd=57 request_fd=65 first_slice=1 last_slice=1
2023-04-29 22:20:09.796 T:1457    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:09.797 T:1457    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa6cff4d0 used=1372 controls=5 index=2 fd=50 request_fd=63 first_slice=1 last_slice=1
2023-04-29 22:20:09.803 T:1454    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:09.803 T:1454    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa69d4040 used=2131 controls=5 index=1 fd=61 request_fd=62 first_slice=1 last_slice=1
2023-04-29 22:20:09.810 T:1455    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:09.810 T:1455    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa6bffb70 used=2254 controls=5 index=0 fd=59 request_fd=60 first_slice=1 last_slice=1
2023-04-29 22:20:09.964 T:1456    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:09.964 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac41d3b0
2023-04-29 22:20:09.964 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac41d4e4 type=2
2023-04-29 22:20:09.964 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:09.967 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac41d4e4 index=10 fd=-1 addr=0x90800000 width=1280 height=720 size=4194304
2023-04-29 22:20:09.967 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac41d548 type=1
2023-04-29 22:20:09.967 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:09.970 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac41d548 index=10 fd=32 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:09.970 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac41d3b0 request_fd=78
2023-04-29 22:20:09.972 T:1456    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa69d3510 used=1427 controls=5 index=10 fd=32 request_fd=78 first_slice=1 last_slice=1
2023-04-29 22:20:10.004 T:1457    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
2023-04-29 22:20:10.005 T:1457    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa6cff4d0 used=13724 controls=5 index=7 fd=72 request_fd=73 first_slice=1 last_slice=1
2023-04-29 22:20:10.024 T:1454    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:10.024 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac41b030
2023-04-29 22:20:10.024 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac41b164 type=2
2023-04-29 22:20:10.025 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:10.026 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac41b164 index=11 fd=-1 addr=0x90400000 width=1280 height=720 size=4194304
2023-04-29 22:20:10.026 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac41b1c8 type=1
2023-04-29 22:20:10.026 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:10.028 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac41b1c8 index=11 fd=79 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:10.028 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac41b030 request_fd=80
2023-04-29 22:20:10.028 T:1454    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa69d4040 used=1271 controls=5 index=11 fd=79 request_fd=80 first_slice=1 last_slice=1
2023-04-29 22:20:10.065 T:1455    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:10.066 T:1455    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa6bffb70 used=2167 controls=5 index=6 fd=70 request_fd=71 first_slice=1 last_slice=1
2023-04-29 22:20:10.103 T:1456    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:10.104 T:1456    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa69d3510 used=2176 controls=5 index=4 fd=66 request_fd=67 first_slice=1 last_slice=1
2023-04-29 22:20:10.124 T:1457    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:10.125 T:1457    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa6cff4d0 used=1808 controls=5 index=5 fd=68 request_fd=69 first_slice=1 last_slice=1
2023-04-29 22:20:10.164 T:1454    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 1
2023-04-29 22:20:10.164 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac41d8b0
2023-04-29 22:20:10.314 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac41d9e4 type=2
2023-04-29 22:20:10.314 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=875967059 width=1280 height=720 bytesperline=0 sizeimage=4194304
2023-04-29 22:20:10.315 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac41d9e4 index=12 fd=-1 addr=0x90000000 width=1280 height=720 size=4194304
2023-04-29 22:20:10.316 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: avctx=0xa69d4040 buf=0xac41da48 type=1
2023-04-29 22:20:10.316 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: pixelformat=842094158 width=1280 height=720 bytesperline=1280 sizeimage=1382400
2023-04-29 22:20:10.317 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_buffer_alloc: buf=0xac41da48 index=12 fd=81 addr=(nil) width=1280 height=720 size=1382400
2023-04-29 22:20:10.317 T:1462    debug <general>: ffmpeg[0x230e540]: [h264] v4l2_request_frame_alloc: avctx=0xa69d4040 size=512 data=0xac41d8b0 request_fd=82
2023-04-29 22:20:10.318 T:1454    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa69d4040 used=13148 controls=5 index=12 fd=81 request_fd=82 first_slice=1 last_slice=1
2023-04-29 22:20:10.324 T:1455    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:10.325 T:1455    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa6bffb70 used=247 controls=5 index=1 fd=61 request_fd=62 first_slice=1 last_slice=1
2023-04-29 22:20:10.329 T:1456    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:10.330 T:1456    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa69d3510 used=1262 controls=5 index=10 fd=32 request_fd=78 first_slice=1 last_slice=1
2023-04-29 22:20:10.344 T:1457    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:10.345 T:1457    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa6cff4d0 used=1349 controls=5 index=9 fd=76 request_fd=77 first_slice=1 last_slice=1
2023-04-29 22:20:10.349 T:1454    debug <general>: ffmpeg[0x0]: [h264] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
2023-04-29 22:20:10.350 T:1454    debug <general>: ffmpeg[0x0]: [h264] v4l2_request_queue_decode: avctx=0xa69d4040 used=1071 controls=5 index=0 fd=59 request_fd=60 first_slice=1 last_slice=1

 

Kodi's ffmpeg is using function deint_v4l2m2m_destroy_context, which is part of another patch, which I didn't have: vf_deinterlace_v4l2m2m

I am compiling it now

 

Result: mpv takes the VAAPI route, then software decoding

 

Spoiler

roberto@orangepizero:~$ mpv -v --vo=gpu --gpu-context=drm --hwdec=auto youtube.mp4
[cplayer] Command line options: '-v' '--vo=gpu' '--gpu-context=drm' '--hwdec=auto' 'youtube.mp4'
[cplayer] mpv 0.35.1 Copyright © 2000-2023 mpv/MPlayer/mplayer2 projects
[cplayer]  built on UNKNOWN
[cplayer] FFmpeg library versions:
[cplayer]    libavutil       57.28.100
[cplayer]    libavcodec      59.37.100
[cplayer]    libavformat     59.27.100
[cplayer]    libswscale      6.7.100
[cplayer]    libavfilter     8.44.100
[cplayer]    libswresample   4.7.100
[cplayer] FFmpeg version: 5.1.2-3
[cplayer]
[cplayer] Configuration: meson configure build -Dprefix=/usr -Dbuildtype=plain -Doptimization=plain
[cplayer] List of enabled features: alsa av-channel-layout caca cdda cplayer cplugins dmabuf-interop-gl dmabuf-interop-pl dmabuf-wayland drm drm-is-kms dvbin dvdnav egl egl-drm egl-helpers egl-x11 ffmpeg gbm gl gl-wayland glibc-thread-name glob glob-posix gpl iconv jack javascript jpeg jpegxl lcms2 libarchive libass libavdevice libbluray libdl libm libmpv-shared libplacebo libplacebo-next librt linux-fstatfs lua52 manpage-build memfd_create noexecstack pipewire plain-gl posix pulse rubberband rubberband-3 sdl2 sdl2-audio sdl2-gamepad sdl2-video sixel spirv-cross stdatomic threads uchardet vaapi vaapi-drm vaapi-egl vaapi-libplacebo vaapi-wayland vaapi-x-egl vaapi-x11 vdpau vector vt.h vulkan wayland wayland_protocols_1_24 x11 xv zimg zlib
[cplayer] Reading config file /etc/mpv/encoding-profiles.conf
[cplayer] Applying profile 'default'...
[cplayer] Setting option 'v' = '' (flags = 😎
[cplayer] Setting option 'vo' = 'gpu' (flags = 😎
[cplayer] Setting option 'gpu-context' = 'drm' (flags = 😎
[cplayer] Setting option 'hwdec' = 'auto' (flags = 😎
[cplayer] Waiting for scripts...
[osd/libass] libass API version: 0x1701000
[osd/libass] libass source: tarball: 0.17.1
[osd/libass] Shaper: FriBidi 1.0.8 (SIMPLE) HarfBuzz-ng 6.0.0 (COMPLEX)
[osd/libass] Setting up fonts...
[osd/libass] Using font provider fontconfig
[osd/libass] Done.
[cplayer] Set property: shared-script-properties -> 1
[cplayer] Set property: shared-script-properties -> 1
[cplayer] Done loading scripts.
[cplayer] Running hook: ytdl_hook/on_load
[ytdl_hook] ytdl:// hook
[ytdl_hook] not a ytdl:// url
[ifo_dvdnav] Opening youtube.mp4
[bdmv/bluray] Opening youtube.mp4
[file] Opening youtube.mp4
[demux] Trying demuxers for level=normal.
[cplayer] Set property: shared-script-properties -> 1
[osd/libass] libass API version: 0x1701000
[osd/libass] libass source: tarball: 0.17.1
[osd/libass] Shaper: FriBidi 1.0.8 (SIMPLE) HarfBuzz-ng 6.0.0 (COMPLEX)
[osd/libass] Setting up fonts...
[lavf] Found 'mov,mp4,m4a,3gp,3g2,mj2' at score=100 size=2048.
[osd/libass] Using font provider fontconfig
[osd/libass] Done.
[cplayer] Set property: shared-script-properties -> 1
[cplayer] Set property: shared-script-properties -> 1
[demux] Detected file format: mov,mp4,m4a,3gp,3g2,mj2 (libavformat)
[cplayer] Opening done: youtube.mp4
[find_files] Loading external files in .
[cplayer] Running hook: ytdl_hook/on_preloaded
[lavf] select track 0
[lavf] select track 1
[cplayer]  (+) Video --vid=1 (*) (h264 1280x720 30.000fps)
[cplayer]  (+) Audio --aid=1 --alang=eng (*) (aac 2ch 44100Hz)
[vo/gpu/opengl] Initializing GPU context 'drm'
[vo/gpu] VT_GETMODE failed: Inappropriate ioctl for device
[vo/gpu/opengl] Failed to set up VT switcher. Terminal switching will be unavailable.
[vo/gpu/opengl] Initializing KMS
[vo/gpu/opengl] Picked DRM card 1, primary node /dev/dri/card0 as the default.
[vo/gpu/opengl] Driver: sun4i-drm 1.0.0 (20150629)
[vo/gpu/opengl/kms] Connector 62 currently connected to encoder 61
[vo/gpu/opengl/kms] Selected Encoder 61 with CRTC 60
[vo/gpu/opengl/kms] Could not find any preferred mode. Picking the first mode.
[vo/gpu/opengl/kms] Selected mode: PAL (720x576@50.00Hz)
[vo/gpu/opengl] DRM Atomic support found
[vo/gpu/opengl/kms] Using primary plane 56 as draw plane
[vo/gpu/opengl/kms] Using overlay plane 50 as drmprime plane
[vo/gpu] GBM_FORMAT_ARGB8888 supported by draw plane.
[vo/gpu] Supported modifier: 0x0
[vo/gpu] Creating GBM device
[vo/gpu] Initializing GBM surface (720 x 576)
[vo/gpu/opengl] Initializing EGL
[vo/gpu/opengl] EGL_VERSION=1.4
[vo/gpu/opengl] EGL_VENDOR=Mesa Project
[vo/gpu/opengl] EGL_CLIENT_APIS=OpenGL OpenGL_ES
[vo/gpu/opengl] Trying to create Desktop OpenGL context.
[vo/gpu/opengl] Attempting to find EGLConfig matching GBM_FORMAT_ARGB8888
[vo/gpu/opengl] Found matching EGLConfig for GBM_FORMAT_ARGB8888
[vo/gpu/opengl] Initializing EGL surface
[vo/gpu] GL_VERSION='2.1 Mesa 22.3.6'
[vo/gpu] Detected desktop OpenGL 2.1.
[vo/gpu] GL_VENDOR='lima'
[vo/gpu] GL_RENDERER='Mali400'
[vo/gpu] GL_SHADING_LANGUAGE_VERSION='1.20'
[vo/gpu] Loaded extension GL_ARB_map_buffer_range.
[vo/gpu] Loaded extension GL_ARB_vertex_array_object.
[vo/gpu] Loaded extension GL_ARB_texture_rg.
[vo/gpu] Loaded extension GL_ARB_sync.
[vo/gpu] Loaded extension GL_ARB_invalidate_subdata.
[vo/gpu] Loaded extension GL_ARB_get_program_binary.
[vo/gpu] Loaded extension GL_ARB_buffer_storage.
[vo/gpu] Loaded extension GL_ARB_debug_output.
[vo/gpu] Loaded extension GL_KHR_debug.
[vo/gpu/opengl] Preparing framebuffer
[vo/gpu/opengl] GBM surface using modifier 0x0
[vo/gpu] crtc is not VRR capable
[vo/gpu/opengl] Could not find path to render node. VAAPI hwdec will be disabled
[vo/gpu] Monitor pixel aspect: 1
[vo/gpu] Disabling HDR peak computation (one or more of the following is not supported: compute shaders=0, SSBO=0).
[vo/gpu] No advanced processing required. Enabling dumb mode.
[vo/gpu] Assuming 50.000000 FPS for display sync.
[vd] Container reported FPS: 30.000000
[vd] Codec list:
[vd]     h264 - H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[vd]     h264_v4l2m2m (h264) - V4L2 mem2mem H.264 decoder wrapper
[vd] Opening decoder h264
[vd] Looking at hwdec h264-vaapi...
[vo/gpu] Loading hwdec drivers for format: 'vaapi'
[vo/gpu] Loading hwdec driver 'vaapi'
[vo/gpu/vaapi] using EGL dmabuf interop
[vo/gpu/vaapi] Trying to open a x11 VA display...
[vo/gpu/vaapi] Trying to open a wayland VA display...
[vo/gpu/vaapi] Trying to open a drm VA display...
[vo/gpu/vaapi] Could not create a VA display.
[vo/gpu] Loading failed.
[vd] Could not create device.
[vd] Looking at hwdec h264-vdpau...
[vo/gpu] Loading hwdec drivers for format: 'vdpau'
[vd] Could not create device.
[vd] Looking at hwdec h264-vaapi-copy...
[vd] Could not create device.
[vd] Looking at hwdec h264-vdpau-copy...
[vd] Could not create device.
[vd] Looking at hwdec h264_v4l2m2m-v4l2m2m-copy...
[vd] Trying hardware decoding via h264_v4l2m2m-v4l2m2m-copy.
[vd] Using underlying hw-decoder 'h264_v4l2m2m'
[ffmpeg/video] h264_v4l2m2m: Could not find a valid device
[ffmpeg/video] h264_v4l2m2m: can't configure decoder
[vd] Could not open codec.
[vd] Falling back to software decoding.
[vd] Detected 4 logical cores.
[vd] Requesting 5 threads for decoding.
[vd] Selected codec: h264 (H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)
[vf] User filter list:
[vf]   (empty)
[ad] Codec list:
[ad]     aac - AAC (Advanced Audio Coding)
[ad]     aac_fixed (aac) - AAC (Advanced Audio Coding)
[ad] Opening decoder aac
[ad] Requesting 1 threads for decoding.
[ad] Selected codec: aac (AAC (Advanced Audio Coding))
[af] User filter list:
[af]   (empty)
[cplayer] Starting playback...
[af] [in] 44100Hz stereo 2ch floatp
[vd] DR failed - disabling.
[af] [userspeed] 44100Hz stereo 2ch floatp
[af] [userspeed] (disabled)
[af] [convert] 44100Hz stereo 2ch floatp
[vd] Using software decoding.
[vd] Decoder format: 1280x720 yuv420p bt.709/bt.709/bt.1886/limited/auto CL=mpeg2/4/h264
[vf] [in] 1280x720 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[vf] [userdeint] 1280x720 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[vf] [userdeint] (disabled)
[vf] [autorotate] 1280x720 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[vf] [autorotate] (disabled)
[vf] [convert] 1280x720 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[vf] [convert] (disabled)
[vf] [out] 1280x720 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ao] Trying audio driver 'pipewire'
[ao/pipewire] requested format: 44100 Hz, stereo channels, floatp
[ao/pipewire] Headers version: 0.3.65
[ao/pipewire] Library version: 0.3.65
[W][36208.299646] pw.conf      | [          conf.c:  939 try_load_conf()] can't load config client.conf: No such file or directory
[E][36208.300267] pw.conf      | [          conf.c:  963 pw_conf_load_conf_for_context()] can't load default config client.conf: No such file or directory
[ao] Trying audio driver 'pulse'
[ao/pulse] requested format: 44100 Hz, stereo channels, floatp
xcb_connection_has_error() returned true
[ao/pulse] Library version: 16.1.0
[ao/pulse] Proto: 35
[ao/pulse] Server proto: 4294967295
[ao] Trying audio driver 'alsa'
[ao/alsa] requested format: 44100 Hz, stereo channels, floatp
[ao/alsa] using ALSA version: 1.2.8
[ao/alsa] opening device 'default'
[ao/alsa] trying format float/14
[ao/alsa] hw pausing supported: yes
[ao/alsa] buffersize: 4410 samples
[ao/alsa] period size: 882 samples
[ao/alsa] device buffer: 4410 samples.
[ao/alsa] using soft-buffer of 8820 samples.
[cplayer] AO: [alsa] 44100Hz stereo 2ch float
[cplayer] AO: Description: ALSA audio output
[autoconvert] inserting resampler
[swresample] format change, reinitializing resampler
[swresample] 44100Hz stereo floatp -> 44100Hz stereo float
[af] [out] 44100Hz stereo 2ch float
[cplayer] VO: [gpu] 1280x720 yuv420p
[cplayer] VO: Description: Shader-based GPU Renderer
[vo/gpu] DR path suspected slow/uncached, disabling..reconfig to 1280x720 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[vo/gpu] Resize: 720x576
[vo/gpu] Window size: 720x576 (Borders: l=0 t=0 r=0 b=0)
[vo/gpu] Video source: 1280x720 (1:1)
[vo/gpu] Video display: (0, 0) 1280x720 -> (0, 85) 720x405
[vo/gpu] Video scale: 0.562500/0.562500
[vo/gpu] OSD borders: l=0 t=85 r=0 b=86
[vo/gpu] Video borders: l=0 t=85 r=0 b=86
[vo/gpu] Texture for plane 0: 1280x720
[vo/gpu] Texture for plane 1: 640x360
[vo/gpu] Texture for plane 2: 640x360
[vo/gpu] No advanced processing required. Enabling dumb mode.
[cplayer] first video frame after restart shown
[cplayer] Set property: shared-script-properties -> 1
[vo/gpu/opengl] GBM surface using modifier 0x0
[cplayer] audio ready
[cplayer] starting audio playback
[cplayer] playback restart complete @ 0.000000, audio=playing, video=playing
[ao/alsa] starting AO
[statusline] AV: 00:00:00 / 00:04:55 (0%) A-V: -0.000
[cplayer] Set property: shared-script-properties -> 1
[vo/gpu/opengl] GBM surface using modifier 0x0
[statusline] AV: 00:00:00 / 00:04:55 (0%) A-V: -0.000
[vo/gpu/opengl] GBM surface using modifier 0x0
[statusline] AV: 00:01:12 / 00:04:55 (25%) A-V: -0.000 Dropped: 1
[cplayer] EOF code: 5  
[cplayer] finished playback, success (reason 3)
[cplayer]
[cplayer] Exiting... (Quit)
[cplayer] Set property: shared-script-properties -> 1
roberto@orangepizero:~$

 

Edited by robertoj
Link to comment
Share on other sites

7 hours ago, robertoj said:

I didn't have: vf_deinterlace_v4l2m2m

Hmm, when I take another look at my previously posted ffmpeg.spec addition, I see  that I also carry a patchset with the name like that from a branch of @jernej github. Furthermore, I see that I also apply other patches from the v4l2-drmprime-n5.1.2 branch. Do you have similar patches in your portfolio?

Link to comment
Share on other sites

2 hours ago, usual user said:

Hmm, when I take another look at my previously posted ffmpeg.spec addition, I see  that I also carry a patchset with the name like that from a branch of @jernej github. Furthermore, I see that I also apply other patches from the v4l2-drmprime-n5.1.2 branch. Do you have similar patches in your portfolio?

Yes. I have applied that drmprime patch also.

 

I think it is a drm or gbm issue now.

Link to comment
Share on other sites

On 5/2/2023 at 3:40 AM, robertoj said:

What would be the closest orange pi to orange pi zero?

Sorry, but I don't quite understand what you're asking for here. When it comes to improving the display subsystem, I would start by rebuilding my kernel package. Since you have confirmed that LibreElec works, my first approach would be to apply all relevant LE patches. But I understand that it is apparently not so easy to implement with your build system.

Link to comment
Share on other sites

On 5/2/2023 at 9:41 PM, usual user said:

Sorry, but I don't quite understand what you're asking for here. When it comes to improving the display subsystem, I would start by rebuilding my kernel package. Since you have confirmed that LibreElec works, my first approach would be to apply all relevant LE patches. But I understand that it is apparently not so easy to implement with your build system.

what I meant is: I want to buy an orangepi H3 with HDMI port, so that I see if there's any difference in hardware decoding.

But the ultimate goal is that I get hardware decoding in analog video... it is possible, because Kodi does it.

 

I has been a very long time since I used RedHat... I used yum ... I will see whether "dnf builddeps" has an equivalent in Debian

 

I found in this discussion that: if ffmpeg hardware decoding works with "-f null -", but fails to present the video (my situation), then the problem might be the display driver:

https://forum.libreelec.tv/thread/25283-allwinner-h6-hevc/?postID=167090#post167090

 

Another important variable is the way mpv was configured before compile. Anyone who got it working, check the first few lines of running MPV. For example (something I found in the mpv github):

Spoiler

[cplayer] Command line options: '../VideoClip/Rings_2x2.mp4' '-v' '--hwdec=vaapi' '--vo=opengl:backend=drm-egl'
[cplayer] mpv git-0cdd8ff (C) 2000-2016 mpv/MPlayer/mplayer2 projects
[cplayer] built on Wed Mar 16 12:49:45 CST 2016
[cplayer] ffmpeg library versions:
[cplayer] libavutil 55.17.103
[cplayer] libavcodec 57.24.102
[cplayer] libavformat 57.25.100
[cplayer] libswscale 4.0.100
[cplayer] libavfilter 6.31.100
[cplayer] libswresample 2.0.101
[cplayer] ffmpeg version: 3.0
[cplayer]
[cplayer] Configuration: ./waf configure --disable-egl-x11
[cplayer] List of enabled features: any-gl asm atomic-builtins atomics audio-input av-avpacket-int64-duration av-new-pixdesc av-pix-fmt-mmal av-subtitle-nopict av-version-info avcodec-chroma-pos-api avcodec-profile-name avframe-metadata avframe-skip-samples build-date cplayer debug-build desktop-gl dlopen drm dvbin egl-drm enca encoding fchmod gbm gbm.h gl gl-x11 glibc-thread-name glob iconv libass libass-osd libav libavfilter libdl libm librt libswresample linux-fstatfs lua nanosleep optimize oss-audio oss-audio-native posix posix-or-mingw posix-spawn pthreads resampler shm sse4-intrinsics subprocess termios tv tv-v4l2 vaapi vaapi-drm vaapi-glx vaapi-hwaccel vaapi-x11 vdpau vdpau-gl-x11 videodev vt.h x11 xext xinerama xrandr zlib

 

Edited by robertoj
Link to comment
Share on other sites

13 hours ago, robertoj said:

I want to buy an orangepi H3 with HDMI port, so that I see if there's any difference in hardware decoding.

With regard to the hardware decoder, this will not provide any new insights. For the video decoder it is only relevant that the subsequent display pipeline can process the decoder output format. Be it GBM, Wayland, Xwindow or /dev/null.
See here for comparison a gstreamer video pipeline (gst-play-1.0-pipeline.pdf). It is always identical, regardless of which display pipeline (GstXvImageSink) ultimately comes to fruition. The decoder component (v4l2slh264dec) is backed by the respective hardware and is unmodified interchangeable as long as v4l2-compliance shows sufficient driver conformity.

 

13 hours ago, robertoj said:

But the ultimate goal is that I get hardware decoding in analog video.

No, the ultimate goal is to compose a video pipeline that is backed by a hardware decoder and to have a display pipeline that can display the format provided by the video pipeline in a hardware-accelerated manner.

 

13 hours ago, robertoj said:

I will see whether "dnf builddeps" has an equivalent in Debian

If I keep seeing the long dependency lists that are given to install when it comes to building a software, I would guess that it does not exist. But since this is about the kernel package, I don't see the problem here because it is self-contained and does not require any external dependencies. I see here rather the problem of using newly built kernels comfortably parallel in Armbian. This is due to the boot method and the way Armbian installs its kernel (a single kernel, not multiple kernels in parallel). But this can be changed, as I have already demonstrated several times in other forum threads.

 

13 hours ago, robertoj said:

if ffmpeg hardware decoding works with "-f null -", but fails to present the video (my situation), then the problem might be the display driver:

This works because the subsequent display pipeline (dev/null) can handle any format.
The display driver is only one part of the display pipeline, but probably the component that does not yet provide all the necessary prerequisites. This will certainly be added in LE with their kernel patches so that they can use a hardware-accelerate display pipeline. A display pipeline has no business with video decoding, we're not in x86 architecture, it deals only with already  decoded content.

Link to comment
Share on other sites

On 5/9/2023 at 12:59 AM, robertoj said:

but LibreElec’s windowing system is GBM, not X11… so that’s a thing that I need to follow… somehow.

You want a working GBM as the first step. An application can use the APIs provided by the kernel via GBM. It becomes the master user of the drm/KMS, i.e. if e.g. Kodi uses the display subsystem via GBM, it is the only user who has access to it. Other graphics applications will not be able to use the display subsystem at the same time. A desktop environment framework accesses the display subsystem using the same kernel APIs as GBM, and therefore becomes the master of drm/KMS. However, it manages the display subsystem resources so that multiple applications can use them simultaneously. For example, Kodi can be displayed in one window and a web browser in another window at the same time.
When it comes to choosing a desktop environment, Xwindow is a bad choice. It was developed for x86 architecture and therefore cannot deal efficiently with these new requirements due to its design. Their developers at that time also recognized this and therefore developed Wayland from scratch. So when it comes to efficiently using a video pipeline in combination with a display pipeline, a desktop environment with Wayland backend is the first choice.
But the good thing is, nowadays the majority support in current mainline is already available out-of-the-box. So in order to support a particular device, it is only necessary that a mainline kernel with the necessary drivers is available and everything else is just generic up-to-date mainline software. For your device you have confirmed that LE works with a mainline kernel, so all necessary code should be available, only it is not yet integrated out-of-the-box into the mainline kernel.

Link to comment
Share on other sites

Hi,
sorry to jump in on this thread, but I recently also tried to play hardware accelerated video (preferably on a virtual terminal without X11/Wayland) on my Pine A64 with current Armbian image (derived from Ubuntu 23.02). Unfortunately no method seems to work. Am I doing something wrong? What would be the "easiest" way to get mainline hw accelerated video decoding on A64? Is there another popular general purpose distribution I could try (except LibreELEC with Kodi)?

 

Kernel is 5.15.93-sunxi64 and has cedrus modules:
 

lsmod | grep cedrus
sunxi_cedrus           49152  0
videobuf2_dma_contig    24576  1 sunxi_cedrus
v4l2_mem2mem           36864  1 sunxi_cedrus
videobuf2_v4l2         24576  2 sunxi_cedrus,v4l2_mem2mem
videobuf2_common       49152  5 sunxi_cedrus,videobuf2_dma_contig,videobuf2_v4l2,v4l2_mem2mem,videobuf2_memops
videodev              204800  4 sunxi_cedrus,videobuf2_v4l2,videobuf2_common,v4l2_mem2mem
mc                     49152  5 sunxi_cedrus,videodev,videobuf2_v4l2,videobuf2_common,v4l2_mem2mem

 

Gstreamer is version 1.20, and it seems to have provide required codecs (after installing gstreamer1.0-plugins-bad).
 

gst-play-1.0 --version
gst-play-1.0 version 1.20.1
GStreamer 1.20.3


gst-inspect-1.0 | grep v4l2
v4l2codecs:  v4l2slh264dec: V4L2 Stateless H.264 Video Decoder
v4l2codecs:  v4l2slmpeg2dec: V4L2 Stateless Mpeg2 Video Decoder
v4l2codecs:  v4l2slvp8alphadecodebin: VP8 Alpha Decoder
v4l2codecs:  v4l2slvp8dec: V4L2 Stateless VP8 Video Decoder
video4linux2:  v4l2deviceprovider (GstDeviceProviderFactory)
video4linux2:  v4l2radio: Radio (video4linux2) Tuner
video4linux2:  v4l2sink: Video (video4linux2) Sink
video4linux2:  v4l2src: Video (video4linux2) Source

 

 

Unfortunately gst-play doesn't work, it completely freezes my Pine64 (not even Ctrl-Alt-Delete works anymore) after "Redistribute latency...".

gst-play-1.0 bbb_sunflower_1080p_60fps_normal.mp4

 

Kodi 19.4 from apt repo also doesn't play hw accelerated (although it should as mentioned in post #1), on start it prints this error:
 

$ kodi
libva info: VA-API version 1.14.0
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)


mpv also doesn't work:
 

$ mpv bbb_sunflower_1080p_60fps_normal.mp4
 (+) Video --vid=1 (*) (h264 1920x1080 60.000fps)
 (+) Audio --aid=1 (*) (mp3 2ch 48000Hz)
     Audio --aid=2 (*) (ac3 6ch 48000Hz)
File tags:
 Artist: Blender Foundation 2008, Janus Bager Kristensen 2013
 Comment: Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
 Composer: Sacha Goedegebure
 Genre: Animation
 Title: Big Buck Bunny, Sunflower version
[vo/gpu/opengl] Cannot retrieve DRM resources: Operation not supported
[vo/gpu/opengl] Failed to create KMS.
[vo/sdl] Using opengl
[vo/sdl] Warning: this legacy VO has bad performance. Consider fixing your graphics drivers, or not forcing the sdl VO.
AO: [alsa] 48000Hz stereo 2ch float
VO: [sdl] 1920x1080 yuv420p
AV: 00:00:03 / 00:10:34 (1%) A-V:  0.463 Dropped: 167


If I force hw accel, I get these warnings:

$ mpv --hwdec=auto --hwdec-codecs=all bbb_sunflower_1080p_60fps_normal.mp4 bbb_sunflower_1080p_60fps_normal.mp4
Playing: bbb_sunflower_1080p_60fps_normal.mp4
 (+) Video --vid=1 (*) (h264 1920x1080 60.000fps)
 (+) Audio --aid=1 (*) (mp3 2ch 48000Hz)
     Audio --aid=2 (*) (ac3 6ch 48000Hz)
File tags:
 Artist: Blender Foundation 2008, Janus Bager Kristensen 2013
 Comment: Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
 Composer: Sacha Goedegebure
 Genre: Animation
 Title: Big Buck Bunny, Sunflower version
[vo/gpu/opengl] Cannot retrieve DRM resources: Operation not supported
[vo/gpu/opengl] Failed to create KMS.
[vo/sdl] Using opengl
[vo/sdl] Warning: this legacy VO has bad performance. Consider fixing your graphics drivers, or not forcing the sdl VO.
[ffmpeg] AVHWDeviceContext: Cannot load libcuda.so.1
[ffmpeg] AVHWDeviceContext: Could not dynamically load CUDA
[vaapi] libva: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[ffmpeg/video] h264_v4l2m2m: Could not find a valid device
[ffmpeg/video] h264_v4l2m2m: can't configure decoder
Could not open codec.
AO: [alsa] 48000Hz stereo 2ch float
VO: [sdl] 1920x1080 yuv420p
AV: 00:00:02 / 00:10:34 (0%) A-V:  0.305 Dropped: 135


Audio/Video desynchronisation detected! Possible reasons include too slow
hardware, temporary CPU spikes, broken drivers, and broken files. Audio
position will not match to the video (see A-V status field).

AV: 00:00:13 / 00:10:34 (2%) A-V:  5.562 Dropped: 648
Audio device underrun detected.
AV: 00:00:23 / 00:10:34 (4%) A-V: 11.188 Dropped: 1150


mplayer also competely freezes the Pine A64 (like gst-play).


But ffmpeg even seems to have necessary decoders?
 

$ ffmpeg -hide_banner -decoders | grep v4l2
 V..... h263_v4l2m2m         V4L2 mem2mem H.263 decoder wrapper (codec h263)
 V..... h264_v4l2m2m         V4L2 mem2mem H.264 decoder wrapper (codec h264)
 V..... hevc_v4l2m2m         V4L2 mem2mem HEVC decoder wrapper (codec hevc)
 V..... mpeg1_v4l2m2m        V4L2 mem2mem MPEG1 decoder wrapper (codec mpeg1video)
 V..... mpeg2_v4l2m2m        V4L2 mem2mem MPEG2 decoder wrapper (codec mpeg2video)
 V..... mpeg4_v4l2m2m        V4L2 mem2mem MPEG4 decoder wrapper (codec mpeg4)
 V..... vc1_v4l2m2m          V4L2 mem2mem VC1 decoder wrapper (codec vc1)
 V..... vp8_v4l2m2m          V4L2 mem2mem VP8 decoder wrapper (codec vp8)
 V..... vp9_v4l2m2m          V4L2 mem2mem VP9 decoder wrapper (codec vp9)
$  ffmpeg -hide_banner -hwaccels
Hardware acceleration methods:
vdpau
cuda
vaapi
drm
opencl


Needless to say ffplay also doesn't work. When forced:
 

$ ffplay -vcodec h264_v4l2m2m bbb_sunflower_1080p_60fps_normal.mp4
...
[h264_v4l2m2m @ 0xffff6002b360] Could not find a valid device
[h264_v4l2m2m @ 0xffff6002b360] can't configure decoder

 

Output of vainfo:

 

$ vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.14.0
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
vaInitialize failed with error code -1 (unknown libva error),exit

 

Output of v4l2-compliance:
 

v4l2-compliance 1.22.1, 64 bits, 64-bit time_t

Compliance test for cedrus device /dev/video0:

Driver Info:
    Driver name      : cedrus
    Card type        : cedrus
    Bus info         : platform:cedrus
    Driver version   : 5.15.93
    Capabilities     : 0x84208000
        Video Memory-to-Memory
        Streaming
        Extended Pix Format
        Device Capabilities
    Device Caps      : 0x04208000
        Video Memory-to-Memory
        Streaming
        Extended Pix Format
Media Driver Info:
    Driver name      : cedrus
    Model            : cedrus
    Serial           :
    Bus info         : platform:cedrus
    Media version    : 5.15.93
    Hardware revision: 0x00000000 (0)
    Driver version   : 5.15.93
Interface Info:
    ID               : 0x0300000c
    Type             : V4L Video
Entity Info:
    ID               : 0x00000001 (1)
    Name             : cedrus-source
    Function         : V4L2 I/O
    Pad 0x01000002   : 0: Source
      Link 0x02000008: to remote pad 0x1000004 of entity 'cedrus-proc' (Video Decoder): Data, Enabled, Immutable

Required ioctls:
    test MC information (see 'Media Driver Info' above): OK
    test VIDIOC_QUERYCAP: OK
    test invalid ioctls: OK

Allow for multiple opens:
    test second /dev/video0 open: OK
    test VIDIOC_QUERYCAP: OK
    test VIDIOC_G/S_PRIORITY: OK
    test for unlimited opens: OK

Debug ioctls:
    test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
    test VIDIOC_LOG_STATUS: OK (Not Supported)

Input ioctls:
    test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
    test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
    test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
    test VIDIOC_ENUMAUDIO: OK (Not Supported)
    test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
    test VIDIOC_G/S_AUDIO: OK (Not Supported)
    Inputs: 0 Audio Inputs: 0 Tuners: 0

Output ioctls:
    test VIDIOC_G/S_MODULATOR: OK (Not Supported)
    test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
    test VIDIOC_ENUMAUDOUT: OK (Not Supported)
    test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
    test VIDIOC_G/S_AUDOUT: OK (Not Supported)
    Outputs: 0 Audio Outputs: 0 Modulators: 0

Input/Output configuration ioctls:
    test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
    test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
    test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
    test VIDIOC_G/S_EDID: OK (Not Supported)

Control ioctls:
    test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
    test VIDIOC_QUERYCTRL: OK
    test VIDIOC_G/S_CTRL: OK
        fail: v4l2-test-controls.cpp(717): try_ext_ctrls returned an error (22)
    test VIDIOC_G/S/TRY_EXT_CTRLS: FAIL
    test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
    test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
    Standard Controls: 7 Private Controls: 0
    Standard Compound Controls: 15 Private Compound Controls: 0

Format ioctls:
        fail: v4l2-test-formats.cpp(263): fmtdesc.description mismatch: was 'Sunxi Tiled NV12 Format', expected 'Y/CbCr 4:2:0 (32x32 Linear)'
    test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: FAIL
    test VIDIOC_G/S_PARM: OK (Not Supported)
    test VIDIOC_G_FBUF: OK (Not Supported)
        fail: v4l2-test-formats.cpp(460): pixelformat 32315453 (ST12) for buftype 1 not reported by ENUM_FMT
    test VIDIOC_G_FMT: FAIL
        fail: v4l2-test-formats.cpp(460): pixelformat 32315453 (ST12) for buftype 1 not reported by ENUM_FMT
    test VIDIOC_TRY_FMT: FAIL
        fail: v4l2-test-formats.cpp(460): pixelformat 32315453 (ST12) for buftype 1 not reported by ENUM_FMT
    test VIDIOC_S_FMT: FAIL
    test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
    test Cropping: OK (Not Supported)
    test Composing: OK (Not Supported)
    test Scaling: OK (Not Supported)

Codec ioctls:
    test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
    test VIDIOC_G_ENC_INDEX: OK (Not Supported)
        fail: v4l2-test-codecs.cpp(122): ret != 0
    test VIDIOC_(TRY_)DECODER_CMD: FAIL

Buffer ioctls:
    test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
    test VIDIOC_EXPBUF: OK
    test Requests: OK (Not Supported)

Total for cedrus device /dev/video0: 46, Succeeded: 40, Failed: 6, Warnings: 0

 

So what is going on here? Am I missing a package or kernel module (concerning drm?)? Or do I need an ffmpeg with `--enable-v4l2-request`? And/or an libva-v4l2-request? Where do I get one that compiles with kernel 5.15?

 

Thank you!

 

Link to comment
Share on other sites

12 hours ago, mrfusion said:

So what is going on here? Am I missing a package or kernel module (concerning drm?)?

IMHO, you're using a software stack that's way too outdated. You are missing features and improvements that have already landed. I'm not an expert in analyzing compliance logs, but if you compare your log to the one provided by @robertoj above, you'll see that your kernel at least lacks features that its provides:

 Format ioctls:
@robertoj    test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK

@mrfusion        fail: v4l2-test-formats.cpp(263): fmtdesc.description mismatch: was 'Sunxi Tiled NV12 Format', expected 'Y/CbCr 4:2:0 (32x32 Linear)'
@mrfusion    test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: FAIL

@robertoj    test VIDIOC_G_FMT: OK
@robertoj    test VIDIOC_TRY_FMT: OK
@robertoj    test VIDIOC_S_FMT: OK

@mrfusion        fail: v4l2-test-formats.cpp(460): pixelformat 32315453 (ST12) for buftype 1 not reported by ENUM_FMT
@mrfusion    test VIDIOC_G_FMT: FAIL
@mrfusion        fail: v4l2-test-formats.cpp(460): pixelformat 32315453 (ST12) for buftype 1 not reported by ENUM_FMT
@mrfusion    test VIDIOC_TRY_FMT: FAIL
@mrfusion        fail: v4l2-test-formats.cpp(460): pixelformat 32315453 (ST12) for buftype 1 not reported by ENUM_FMT
@mrfusion    test VIDIOC_S_FMT: FAIL

 

Link to comment
Share on other sites

I am using allwinner h3, and you are using A64… I don’t know whether cedrus.ko is right for you.

 

Look in this thread here, whether any kernel module has created a /dev/video device that can input h264, like cedrus can.

 

Run libreeelec again and take note of the kernel version, the kernel modules, and the “.config”, and try to rebuild armbian with those options.

 

https://github.com/robertojguerra/orangepi-zero-full-setup/blob/main/README2.md

 

then you would be at the same spot where I am, with the kernel being unable to display the video due to some gbm missing functionality in my kernel.

 

Edited by robertoj
Link to comment
Share on other sites

Thanks for your valuable feedback, both of you!

 

In the meantime I've tried LibreELEC (hw accel in kodi works, but no ethernet or wifi is detect, so not really usable), fedora iot (newer software stack, same problems), and Armbian Rolling Release CI based on Ubuntu Lunar (which also has the same errors; freeze with gstreamer, vaapi-error with kodi, ffmpeg, mpv). I think I'm giving up 😕

Link to comment
Share on other sites

Don’t give up yet.

 

i found this discussion, where retroarch is recompiled, using a libgbm-dev installed just in time… so that Mesa’s (GPU library) gbm component matches exactly with the desired retroarch in that discussion.

 

i have a feeling that we must do the same, but compiling ffmpeg and mpv with the latest available libgbm-dev in place… perhaps just mpv.

 

Usualuser… can you share the mesa and libgbm version you are using?

dpkg -l | grep libgbm or libOSmesa

 

MAYBE there are some useful tips here:

https://bbs.archlinux.org/viewtopic.php?id=278390

Edited by robertoj
Link to comment
Share on other sites

On 5/31/2023 at 9:17 PM, robertoj said:

Usualuser… can you share the mesa and libgbm version you are using?

 

dpkg -l | grep libgbm
bash: dpkg: command not found...

I'm currently running mesa 23.0.3 and since libgbm is an integral part of mesa,  the version is of course identical. However, the current version is not really important, as the necessary API support is already very mature. It is only important that it is built with the current headers of its BuildRequires to represent the status quo.

 

On 5/31/2023 at 9:17 PM, robertoj said:

i have a feeling that we must do the same, but compiling ffmpeg and mpv with the latest available libgbm-dev in place… perhaps just mpv.

Because the API between gbm and mpv does not change, but possibly by applying kernel patches between kernel and gbm (sun4i-drm_dri), it is probably more appropriate to rebuild mesa with the updated kernel headers.
BTW, to get retroarch I would do:

dnf install retroarch

 

Link to comment
Share on other sites

Dpkg and apt won’t work For you… since you are using an rpm/yum/dnf operating system 🤣

 

good point. Mesa may also need recompilation to match a patched kernel (analog video patch), and see whether LibreElec has done anything to Mesa.

 

update: LibreElec patched the linux kernel to add analog video and there’s only one H file affected for this purpose: sun8i_mixer.h but I will still recompile mesa to see if it helps the gbm functionality

 

Patch: https://github.com/LibreELEC/LibreELEC.tv/blob/d43e1a4d9222a949a346f23779c547f7e1208c43/projects/Allwinner/patches/linux/0036-wip-h3-h5-cvbs.patch#L4

instructions:

https://github.com/robertojguerra/orangepi-zero-full-setup/blob/main/README2.md

Edited by robertoj
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines