Mpv-0.36 how to setup

My device can only support hevc 8bit. hevc 10bit will immediately crash the system the last I tried. I am assuming hevc is H265.

mpv --vo=gpu-next --profile=fast --hwdec=v4l2m2m '/home/jfl/Videos/jellyfish-20-mbps-hd-hevc.mkv' 
 (+) Video --vid=1 (*) (hevc 1920x1080 29.970fps)
Using hardware decoding (v4l2m2m).
VO: [gpu-next] 1920x1080 drm_prime[nv12]
Invalid video timestamp: 29.997000 -> 29.930000
Exiting... (End of file)

v4l2m2m seems didn’t like some resolution format.
[ffmpeg/video] h264_v4l2m2m: Failed to find Size=2276x976, fmt=BGR4 in 1 frame size enums
Could not open codec.

jc-kynesim’s 5.1.4-main updated.

I have too many programs that depend on ffmpeg6. Do you want to test the new mesa 24.0.1?

Mesa 24.0.1

PiOS update ffmpeg-5.1.4-main & VLC.
mesa-24.0.x & 24.1-git and 6.8-rc4, test V3DV cpu-jobs failed.

Hi @Darksky,

FYI, could not update system due to dependency issue. Upgrading “libjxl” will break “rpi-ffmpeg”.

jfl@jfl-gtkpro    sudo pacman -Syu
[sudo] password for jfl: 
:: Synchronizing package databases...
 core                          266.1 KiB   651 KiB/s 00:00 [################################] 100%
 extra                           9.3 MiB  3.95 MiB/s 00:02 [################################] 100%
 community is up to date
:: Starting full system upgrade...
warning: gnupg: local (2.4.3-2) is newer than core (2.2.41-2)
warning: mkinitcpio: ignoring package upgrade (36-1 => 37.3-1)
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing libjxl (0.10.0-1) breaks dependency 'libjxl.so=0.9-64' required by rpi-ffmpeg
   jfl@jfl-gtkpro   

Does that means a new “rpi-ffmpeg” is required?

Temporarily Ignore/Hold “libjxl” so that system updates/upgrades can proceed.

@JFL

rpi-ffmpeg rebuild

Thank you.

The rebuild rpi-ffmpeg works.

  jfl@jfl-gtkpro    mpv --gpu-context=wayland --profile=fast --hwdec=v4l2m2m https://www.youtube.com/watch?v=aqz-KE-bpKQ
 (+) Video --vid=1 (*) (h264 1920x1080 60.000fps)
 (+) Audio --aid=1 (*) (aac 6ch 48000Hz)
File tags:
 Uploader: Blender
 Channel_URL: https://www.youtube.com/channel/UCSMOQeBJ2RAnuFungnQOxLg
Using hardware decoding (v4l2m2m).
AO: [pulse] 48000Hz 5.1 6ch float
VO: [gpu-next] 1920x1080 drm_prime[nv12]
Exiting... (Quit)
1 Like

jc-kynesim’s 6.0.1-main updated.

edit,
6.1/rpi_import_1 updated, too.

I would rather maintain the ffmpeg version closer to the one in our repo. I am not going to maintain multiple versions.

rpi-ffmpeg 6.1.r112734.g3d640ab1f4-1

after days test 6.0.1 & 6.1 update, mpv did not dropped frames :smile:

@Darksky, Thanks. Works on GT King Pro.

 jfl@jfl-gtkpro    mpv --profile=fast --hwdec=v4l2m2m https://www.youtube.com/watch?v=7PIji8OubXU&pp=ygURNGsgdmlkZW8gdWx0cmEgaGQ%3D
[1] 3040
   jfl@jfl-gtkpro     (+) Video --vid=1 (*) (h264 1920x1080 60.000fps)
 (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
File tags:
 Uploader: 8K Earth
 Channel_URL: https://www.youtube.com/channel/UChB3UnDddahXU7FKZXmpzMA
Using hardware decoding (v4l2m2m).
AO: [pulse] 48000Hz stereo 2ch float
VO: [gpu-next] 1920x1080 drm_prime[nv12]

  jfl@jfl-gtkpro    pacman -Qs rpi-ffmpeg
local/rpi-ffmpeg 6.1.r112734.g3d640ab1f4-1
    Complete solution to record, convert and stream audio and video (git
    version)

1 Like

@Darksky
After the last vulkan update, rpi-ffmpeg 6.1 or 6.1.1 don’t compile with error from vulkan av1 whatever i change to the configure option ?

CC	libavcodec/vulkan_av1.o
Dans le fichier inclus depuis libavcodec/vulkan_av1.c:21:
libavcodec/vulkan_decode.h:31:5: erreur: nom de type « VkVideoDecodeAV1ProfileInfoMESA » inconnu
   31 |     VkVideoDecodeAV1ProfileInfoMESA av1_profile;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libavcodec/vulkan_av1.c:38:5: erreur: nom de type « StdVideoAV1MESATile » inconnu
   38 |     StdVideoAV1MESATile            tiles[MAX_TILES];
      |     ^~~~~~~~~~~~~~~~~~~
libavcodec/vulkan_av1.c:39:5: erreur: nom de type « StdVideoAV1MESATileList » inconnu
   39 |     StdVideoAV1MESATileList        tile_list;
      |     ^~~~~~~~~~~~~~~~~~~~~~~
libavcodec/vulkan_av1.c:43:5: erreur: nom de type « VkVideoDecodeAV1DpbSlotInfoMESA » inconnu
   43 |     VkVideoDecodeAV1DpbSlotInfoMESA    vkav1_ref;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libavcodec/vulkan_av1.c:44:5: erreur: nom de type « StdVideoAV1MESAFrameHeader » inconnu
   44 |     StdVideoAV1MESAFrameHeader         av1_frame_header;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
libavcodec/vulkan_av1.c:45:5: erreur: nom de type « VkVideoDecodeAV1PictureInfoMESA » inconnu
   45 |     VkVideoDecodeAV1PictureInfoMESA    av1_pic_info;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libavcodec/vulkan_av1.c:49:5: erreur: nom de type « VkVideoDecodeAV1DpbSlotInfoMESA » inconnu
   49 |     VkVideoDecodeAV1DpbSlotInfoMESA     vkav1_refs[AV1_NUM_REF_FRAMES];
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libavcodec/vulkan_av1.c:58:29: erreur: nom de type « VkVideoDecodeAV1DpbSlotInfoMESA » inconnu; vouliez-vous utiliser « VkVideoDecodeAV1DpbSlotInfoKHR » ?
   58 |                             VkVideoDecodeAV1DpbSlotInfoMESA *vkav1_ref, /* Goes in ^ */
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                             VkVideoDecodeAV1DpbSlotInfoKHR
libavcodec/vulkan_av1.c: Dans la fonction « vk_av1_create_params »:
libavcodec/vulkan_av1.c:113:5: erreur: nom de type « StdVideoAV1MESASequenceHeader » inconnu; vouliez-vous utiliser « StdVideoAV1SequenceHeader » ?
  113 |     StdVideoAV1MESASequenceHeader av1_sequence_header;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |     StdVideoAV1SequenceHeader
libavcodec/vulkan_av1.c:114:5: erreur: nom de type « VkVideoDecodeAV1SessionParametersAddInfoMESA » inconnu; vouliez-vous utiliser « VkVideoDecodeH265SessionParametersAddInfoKHR » ?
  114 |     VkVideoDecodeAV1SessionParametersAddInfoMESA av1_params_info;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |     VkVideoDecodeH265SessionParametersAddInfoKHR
libavcodec/vulkan_av1.c:115:5: erreur: nom de type « VkVideoDecodeAV1SessionParametersCreateInfoMESA » inconnu; vouliez-vous utiliser « VkVideoDecodeAV1SessionParametersCreateInfoKHR » ?
  115 |     VkVideoDecodeAV1SessionParametersCreateInfoMESA av1_params;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |     VkVideoDecodeAV1SessionParametersCreateInfoKHR
libavcodec/vulkan_av1.c:120:28: erreur: « StdVideoAV1MESASequenceHeader » non déclaré (première utilisation dans cette fonction); vouliez-vous utiliser « StdVideoAV1SequenceHeader » ?
  120 |     av1_sequence_header = (StdVideoAV1MESASequenceHeader) {
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            StdVideoAV1SequenceHeader
libavcodec/vulkan_av1.c:120:28: note: chaque identificateur non déclaré est rapporté une seule fois pour chaque fonction dans laquelle il apparaît
libavcodec/vulkan_av1.c:120:58: erreur: expected « ; » before « { » token
  120 |     av1_sequence_header = (StdVideoAV1MESASequenceHeader) {
      |                                                          ^~
      |                                                          ;
libavcodec/vulkan_av1.c:171:24: erreur: « VkVideoDecodeAV1SessionParametersAddInfoMESA » non déclaré (première utilisation dans cette fonction); vouliez-vous utiliser « VkVideoDecodeH265SessionParametersAddInfoKHR » ?
  171 |     av1_params_info = (VkVideoDecodeAV1SessionParametersAddInfoMESA) {
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                        VkVideoDecodeH265SessionParametersAddInfoKHR
libavcodec/vulkan_av1.c:171:69: erreur: expected « ; » before « { » token
  171 |     av1_params_info = (VkVideoDecodeAV1SessionParametersAddInfoMESA) {
      |                                                                     ^~
      |                                                                     ;
libavcodec/vulkan_av1.c:175:19: erreur: « VkVideoDecodeAV1SessionParametersCreateInfoMESA » non déclaré (première utilisation dans cette fonction); vouliez-vous utiliser « VkVideoDecodeAV1SessionParametersCreateInfoKHR » ?
  175 |     av1_params = (VkVideoDecodeAV1SessionParametersCreateInfoMESA) {
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                   VkVideoDecodeAV1SessionParametersCreateInfoKHR
libavcodec/vulkan_av1.c:175:67: erreur: expected « ; » before « { » token
  175 |     av1_params = (VkVideoDecodeAV1SessionParametersCreateInfoMESA) {
      |                                                                   ^~
      |                                                                   ;
libavcodec/vulkan_av1.c:114:50: attention: variable « av1_params_info » définie mais non utilisée [-Wunused-but-set-variable]
  114 |     VkVideoDecodeAV1SessionParametersAddInfoMESA av1_params_info;
      |                                                  ^~~~~~~~~~~~~~~
libavcodec/vulkan_av1.c:113:35: attention: variable « av1_sequence_header » définie mais non utilisée [-Wunused-but-set-variable]
  113 |     StdVideoAV1MESASequenceHeader av1_sequence_header;
      |                                   ^~~~~~~~~~~~~~~~~~~
libavcodec/vulkan_av1.c:111:33: attention: variable inutilisée « seq » [-Wunused-variable]
  111 |     const AV1RawSequenceHeader *seq = s->raw_seq;
      |                                 ^~~
libavcodec/vulkan_av1.c: Dans la fonction « vk_av1_start_frame »:
libavcodec/vulkan_av1.c:237:15: erreur: déclaration implicite de la fonction « vk_av1_fill_pict » [-Werror=implicit-function-declaration]
  237 |         err = vk_av1_fill_pict(avctx, &ap->ref_src[i], &vp->ref_slots[i],
      |               ^~~~~~~~~~~~~~~~
libavcodec/vulkan_av1.c:252:18: erreur: accès au membre « nb_tiles » de quelque chose qui n'est ni une structure ni une union
  252 |     ap->tile_list.nb_tiles = 0;
      |                  ^
libavcodec/vulkan_av1.c:253:18: erreur: accès au membre « tile_list » de quelque chose qui n'est ni une structure ni une union
  253 |     ap->tile_list.tile_list = ap->tiles;
      |                  ^
libavcodec/vulkan_av1.c:255:25: erreur: « VkVideoDecodeAV1PictureInfoMESA » non déclaré (première utilisation dans cette fonction); vouliez-vous utiliser « VkVideoDecodeAV1PictureInfoKHR » ?
  255 |     ap->av1_pic_info = (VkVideoDecodeAV1PictureInfoMESA) {
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                         VkVideoDecodeAV1PictureInfoKHR
libavcodec/vulkan_av1.c:255:57: erreur: expected « ; » before « { » token
  255 |     ap->av1_pic_info = (VkVideoDecodeAV1PictureInfoMESA) {
      |                                                         ^~
      |                                                         ;
libavcodec/vulkan_av1.c:278:29: erreur: « StdVideoAV1MESAFrameHeader » non déclaré (première utilisation dans cette fonction); vouliez-vous utiliser « StdVideoAV1SequenceHeader » ?
  278 |     ap->av1_frame_header = (StdVideoAV1MESAFrameHeader) {
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                             StdVideoAV1SequenceHeader
libavcodec/vulkan_av1.c:278:56: erreur: expected « ; » before « { » token
  278 |     ap->av1_frame_header = (StdVideoAV1MESAFrameHeader) {
      |                                                        ^~
      |                                                        ;
libavcodec/vulkan_av1.c:402:29: erreur: accès au membre « tiling » de quelque chose qui n'est ni une structure ni une union
  402 |         ap->av1_frame_header.tiling.width_in_sbs_minus_1[i] = frame_header->width_in_sbs_minus_1[i];
      |                             ^
libavcodec/vulkan_av1.c:403:29: erreur: accès au membre « tiling » de quelque chose qui n'est ni une structure ni une union
  403 |         ap->av1_frame_header.tiling.height_in_sbs_minus_1[i] = frame_header->height_in_sbs_minus_1[i];
      |                             ^
libavcodec/vulkan_av1.c:404:29: erreur: accès au membre « tiling » de quelque chose qui n'est ni une structure ni une union
  404 |         ap->av1_frame_header.tiling.tile_start_col_sb[i] = frame_header->tile_start_col_sb[i];
      |                             ^
libavcodec/vulkan_av1.c:405:29: erreur: accès au membre « tiling » de quelque chose qui n'est ni une structure ni une union
  405 |         ap->av1_frame_header.tiling.tile_start_row_sb[i] = frame_header->tile_start_row_sb[i];
      |                             ^
libavcodec/vulkan_av1.c:409:29: erreur: accès au membre « segmentation » de quelque chose qui n'est ni une structure ni une union
  409 |         ap->av1_frame_header.segmentation.feature_enabled_bits[i] = 0;
      |                             ^
libavcodec/vulkan_av1.c:411:33: erreur: accès au membre « segmentation » de quelque chose qui n'est ni une structure ni une union
  411 |             ap->av1_frame_header.segmentation.feature_enabled_bits[i] |= (frame_header->feature_enabled[i][j] << j);
      |                                 ^
libavcodec/vulkan_av1.c:412:33: erreur: accès au membre « segmentation » de quelque chose qui n'est ni une structure ni une union
  412 |             ap->av1_frame_header.segmentation.feature_data[i][j] = frame_header->feature_value[i][j];
      |                                 ^
libavcodec/vulkan_av1.c:415:29: erreur: accès au membre « loop_filter » de quelque chose qui n'est ni une structure ni une union
  415 |         ap->av1_frame_header.loop_filter.ref_deltas[i] = frame_header->loop_filter_ref_deltas[i];
      |                             ^
libavcodec/vulkan_av1.c:417:29: erreur: accès au membre « cdef » de quelque chose qui n'est ni une structure ni une union
  417 |         ap->av1_frame_header.cdef.y_pri_strength[i] = frame_header->cdef_y_pri_strength[i];
      |                             ^
libavcodec/vulkan_av1.c:418:29: erreur: accès au membre « cdef » de quelque chose qui n'est ni une structure ni une union
  418 |         ap->av1_frame_header.cdef.y_sec_strength[i] = frame_header->cdef_y_sec_strength[i];
      |                             ^
libavcodec/vulkan_av1.c:419:29: erreur: accès au membre « cdef » de quelque chose qui n'est ni une structure ni une union
  419 |         ap->av1_frame_header.cdef.uv_pri_strength[i] = frame_header->cdef_uv_pri_strength[i];
      |                             ^
libavcodec/vulkan_av1.c:420:29: erreur: accès au membre « cdef » de quelque chose qui n'est ni une structure ni une union
  420 |         ap->av1_frame_header.cdef.uv_sec_strength[i] = frame_header->cdef_uv_sec_strength[i];
      |                             ^
libavcodec/vulkan_av1.c:422:29: erreur: accès au membre « ref_order_hint » de quelque chose qui n'est ni une structure ni une union
  422 |         ap->av1_frame_header.ref_order_hint[i] = frame_header->ref_order_hint[i];
      |                             ^
libavcodec/vulkan_av1.c:423:29: erreur: accès au membre « global_motion » de quelque chose qui n'est ni une structure ni une union
  423 |         ap->av1_frame_header.global_motion[i] = (StdVideoAV1MESAGlobalMotion) {
      |                             ^
libavcodec/vulkan_av1.c:423:50: erreur: « StdVideoAV1MESAGlobalMotion » non déclaré (première utilisation dans cette fonction); vouliez-vous utiliser « StdVideoAV1GlobalMotion » ?
  423 |         ap->av1_frame_header.global_motion[i] = (StdVideoAV1MESAGlobalMotion) {
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                  StdVideoAV1GlobalMotion
libavcodec/vulkan_av1.c:423:78: erreur: expected « ; » before « { » token
  423 |         ap->av1_frame_header.global_motion[i] = (StdVideoAV1MESAGlobalMotion) {
      |                                                                              ^~
      |                                                                              ;
libavcodec/vulkan_av1.c:437:29: erreur: accès au membre « ref_frame_idx » de quelque chose qui n'est ni une structure ni une union
  437 |         ap->av1_frame_header.ref_frame_idx[i] = frame_header->ref_frame_idx[i];
      |                             ^
libavcodec/vulkan_av1.c:438:29: erreur: accès au membre « delta_frame_id_minus1 » de quelque chose qui n'est ni une structure ni une union
  438 |         ap->av1_frame_header.delta_frame_id_minus1[i] = frame_header->delta_frame_id_minus1[i];
      |                             ^
libavcodec/vulkan_av1.c:441:21: erreur: accès au membre « skip_mode_frame_idx » de quelque chose qui n'est ni une structure ni une union
  441 |     ap->av1_pic_info.skip_mode_frame_idx[0] = s->cur_frame.skip_mode_frame_idx[0];
      |                     ^
libavcodec/vulkan_av1.c:442:21: erreur: accès au membre « skip_mode_frame_idx » de quelque chose qui n'est ni une structure ni une union
  442 |     ap->av1_pic_info.skip_mode_frame_idx[1] = s->cur_frame.skip_mode_frame_idx[1];
      |                     ^
libavcodec/vulkan_av1.c:446:33: erreur: accès au membre « film_grain » de quelque chose qui n'est ni une structure ni une union
  446 |             ap->av1_frame_header.film_grain.point_y_value[i] = film_grain->point_y_value[i];
      |                                 ^
libavcodec/vulkan_av1.c:447:33: erreur: accès au membre « film_grain » de quelque chose qui n'est ni une structure ni une union
  447 |             ap->av1_frame_header.film_grain.point_y_scaling[i] = film_grain->point_y_scaling[i];
      |                                 ^
libavcodec/vulkan_av1.c:451:33: erreur: accès au membre « film_grain » de quelque chose qui n'est ni une structure ni une union
  451 |             ap->av1_frame_header.film_grain.point_cb_value[i] = film_grain->point_cb_value[i];
      |                                 ^
libavcodec/vulkan_av1.c:452:33: erreur: accès au membre « film_grain » de quelque chose qui n'est ni une structure ni une union
  452 |             ap->av1_frame_header.film_grain.point_cb_scaling[i] = film_grain->point_cb_scaling[i];
      |                                 ^
libavcodec/vulkan_av1.c:453:33: erreur: accès au membre « film_grain » de quelque chose qui n'est ni une structure ni une union
  453 |             ap->av1_frame_header.film_grain.point_cr_value[i] = film_grain->point_cr_value[i];
      |                                 ^
libavcodec/vulkan_av1.c:454:33: erreur: accès au membre « film_grain » de quelque chose qui n'est ni une structure ni une union
  454 |             ap->av1_frame_header.film_grain.point_cr_scaling[i] = film_grain->point_cr_scaling[i];
      |                                 ^
libavcodec/vulkan_av1.c:458:33: erreur: accès au membre « film_grain » de quelque chose qui n'est ni une structure ni une union
  458 |             ap->av1_frame_header.film_grain.ar_coeffs_y_plus_128[i] = film_grain->ar_coeffs_y_plus_128[i];
      |                                 ^
libavcodec/vulkan_av1.c:459:33: erreur: accès au membre « film_grain » de quelque chose qui n'est ni une structure ni une union
  459 |             ap->av1_frame_header.film_grain.ar_coeffs_cb_plus_128[i] = film_grain->ar_coeffs_cb_plus_128[i];
      |                                 ^
libavcodec/vulkan_av1.c:460:33: erreur: accès au membre « film_grain » de quelque chose qui n'est ni une structure ni une union
  460 |             ap->av1_frame_header.film_grain.ar_coeffs_cr_plus_128[i] = film_grain->ar_coeffs_cr_plus_128[i];
      |                                 ^
libavcodec/vulkan_av1.c:463:29: erreur: accès au membre « film_grain » de quelque chose qui n'est ni une structure ni une union
  463 |         ap->av1_frame_header.film_grain.ar_coeffs_cb_plus_128[24] = film_grain->ar_coeffs_cb_plus_128[24];
      |                             ^
libavcodec/vulkan_av1.c:464:29: erreur: accès au membre « film_grain » de quelque chose qui n'est ni une structure ni une union
  464 |         ap->av1_frame_header.film_grain.ar_coeffs_cr_plus_128[24] = film_grain->ar_coeffs_cr_plus_128[24];
      |                             ^
libavcodec/vulkan_av1.c: Dans la fonction « vk_av1_decode_slice »:
libavcodec/vulkan_av1.c:483:32: erreur: accès au membre « nb_tiles » de quelque chose qui n'est ni une structure ni une union
  483 |         ap->tiles[ap->tile_list.nb_tiles] = (StdVideoAV1MESATile) {
      |                                ^
libavcodec/vulkan_av1.c:483:46: erreur: « StdVideoAV1MESATile » non déclaré (première utilisation dans cette fonction); vouliez-vous utiliser « StdVideoAV1Profile » ?
  483 |         ap->tiles[ap->tile_list.nb_tiles] = (StdVideoAV1MESATile) {
      |                                              ^~~~~~~~~~~~~~~~~~~
      |                                              StdVideoAV1Profile
libavcodec/vulkan_av1.c:483:66: erreur: expected « ; » before « { » token
  483 |         ap->tiles[ap->tile_list.nb_tiles] = (StdVideoAV1MESATile) {
      |                                                                  ^~
      |                                                                  ;
libavcodec/vulkan_av1.c:495:52: erreur: accès au membre « nb_tiles » de quelque chose qui n'est ni une structure ni une union
  495 |                                      &ap->tile_list.nb_tiles,
      |                                                    ^
libavcodec/vulkan_av1.c:500:32: erreur: accès au membre « nb_tiles » de quelque chose qui n'est ni une structure ni une union
  500 |         ap->tiles[ap->tile_list.nb_tiles - 1].offset = ap->tile_offsets[ap->tile_list.nb_tiles - 1];
      |                                ^
libavcodec/vulkan_av1.c:500:86: erreur: accès au membre « nb_tiles » de quelque chose qui n'est ni une structure ni une union
  500 |         ap->tiles[ap->tile_list.nb_tiles - 1].offset = ap->tile_offsets[ap->tile_list.nb_tiles - 1];
      |                                                                                      ^
libavcodec/vulkan_av1.c: Dans la fonction « vk_av1_end_frame »:
libavcodec/vulkan_av1.c:516:23: erreur: accès au membre « nb_tiles » de quelque chose qui n'est ni une structure ni une union
  516 |     if (!ap->tile_list.nb_tiles)
      |                       ^
libavcodec/vulkan_av1.c:534:42: erreur: accès au membre « nb_tiles » de quelque chose qui n'est ni une structure ni une union
  534 |            vp->slices_size, ap->tile_list.nb_tiles);
      |                                          ^
cc1 : certains avertissements sont traités comme des erreurs
make: *** [ffbuild/common.mak:81: libavcodec/vulkan_av1.o] Error 1

Edit :
I had needed to downgrade to vulkan-headers-1:1.3.276 and vulkan-icd-loader-1.3.276.

Second edit :
https://github.com/jc-kynesim/rpi-ffmpeg/issues/87

There is a temp fix by cherry picking this commit but it is not in jc-kynesim’s tree.

https://github.com/FFmpeg/FFmpeg/commit/fef22c87ada4517441701e6e61e062c9f4399c8e

I also added another fix I ran across with another cherry pick. I am not sure what it is all about but also included it.

   # Fix bug in av_fft_end
   git cherry-pick -n a562cfee2e214252f8b3f516527272ae32ef9532
   git cherry-pick -n 250471ea1745fc703eb346a2a662304536a311b1

Here is his 6.1.1/rpi_import tree compiled with the fix. I have not tested it with vulkan so all I know that it compiled with out any issue after patching.

https://drive.google.com/file/d/1r-K27SySLt-X5-rParjouZuyRONLdtrp/view?usp=sharing

With

git cherry-pick -n fef22c87ada4517441701e6e61e062c9f4399c8e
==> Starting prepare()...
Auto-merging libavcodec/vorbisdec.c
patching file libavformat/avformat.h
Hunk #1 succeeded at 1030 with fuzz 2 (offset -98 lines).
patching file libavformat/mux_utils.c
Hunk #1 succeeded at 40 with fuzz 2 (offset 3 lines).
Auto-merging configure
Auto-merging libavcodec/nvenc.c
Auto-merging libavcodec/nvenc.h
Auto-merging libavcodec/nvenc_h264.c
Auto-merging libavcodec/nvenc_hevc.c
Auto-merging libavcodec/avfft.c
fatal: bad object fef22c87ada4517441701e6e61e062c9f4399c8e
==> ERROR: A failure occurred in prepare().
    Aborting...

Only this fails.
I have made a av1.patch and it’s Ok with that. But what’s the problem ?

As I mentioned above that commit was not in jc-kynesim’s tree so you will not be able to use git cherry pick. I had to manually add back that commit. To complicate things there was 2 files that was renamed. My best guess is jc-kynesim rebased his tree and the commit was lost.

libxkbcommon updated, mpv-git need rebuild.

edit,
ok, build by myself, add -Ddmabuf-wayland=enabled

mpv --vo=dmabuf-wayland file.mkv
Using hardware decoding (v4l2m2m).
AO: [pipewire] 48000Hz stereo 2ch floatp
VO: [dmabuf-wayland] 1920x1080 drm_prime[yuv420p]

FFmpeg 7.0 “Dijkstra” Released with Important AArch64 Optimizations for HEVC.

mpv is 0.38 now, --vo=dmabuf-wayland & --vo=gpu-next both work with 6.0.1_main build.

sometimes got h265 clips, but can not make it work? Pi4.