avcodec: vaapi: a vout is recreated after a flush (from user)
cf. this code added in !6507 (merged):
if (p_sys->use_hwframes)
{
/* When using hwframes API, ffmpeg is reseting the hardware
* context of the AVCodecContext before calling the
* `get_format` callback. Therefore, the va context need to be
* closed and opened again. */
msg_Dbg(p_dec, "recreating decoder output format %d", pi_fmt[i]);
and this discussion here: !6507 (comment 466029)
For now, only VAAPI use hwframes. When the user seeks, a vout is always re-created, causing some glitches (depending on scaling/interface).
Log when seeking:
[000055f99c3fefb0] main input debug: control type=3
[000055f99c3fefb0] main input debug: ES_OUT_RESET_PCR called
[000055f99c3e2b60] [qt] qt generic debug: on_player_buffering
[00007fd944c020f0] mp4 demux debug: elst (0) gives 0ms (movie)-> 33ms (track)
[00007fd944c020f0] mp4 demux debug: track[Id 0x1] using Sync Sample Box (stss)
[00007fd944c020f0] mp4 demux debug: stss gives 1 --> 0 (sample number)
[00007fd944c020f0] mp4 demux debug: track[Id 0x1] sync point found sample 0(-1)
[00007fd944c020f0] mp4 demux debug: seeking with 0ms preroll (use input-fast-seek to avoid) to 1
[000055f99c3e2b60] [qt] qt generic debug: on_player_buffering
[000055f99c3fefb0] main input debug: Buffering 0%
[000055f99c3e2b60] [qt] qt generic debug: on_player_buffering
[000055f99c3fefb0] main input debug: Buffering 25%
[000055f99c3e2b60] [qt] qt generic debug: on_player_buffering
[000055f99c3fefb0] main input debug: Buffering 50%
[00007fd945e69f20] main decoder warning: non-dated audio buffer received
[000055f99c3e2b60] [qt] qt generic debug: on_player_buffering
[000055f99c3fefb0] main input debug: Buffering 75%
[000055f99c3e2b60] [qt] qt generic debug: on_player_buffering
[000055f99c3fefb0] main input debug: Stream buffering done (1000 ms in 0 ms)
[00007fd944c170c0] avcodec decoder debug: available hardware decoder output format 98 (vdpau)
[00007fd944c170c0] avcodec decoder debug: available hardware decoder output format 190 (vulkan)
[00007fd944c170c0] avcodec decoder debug: available hardware decoder output format 44 (vaapi)
[00007fd944c170c0] avcodec decoder debug: available software decoder output format 0 (yuv420p)
[00007fd944c170c0] avcodec decoder debug: recreating decoder output format 44
ffmpeg_OpenVa
[00007fd92d13ee50] vaapi generic: Using Intel iHD driver for Intel(R) Gen Graphics - 25.2.3 ()
UpdateVideoFormat: created_vout: 0
vctx: 0x7fd92c0a9f10 vs 0x7fd92c18b590
configure new vout
[00007fd92c0a70f0] main window debug: requested window size: 1280x720
[00007fd92ce91840] main generic debug: removing "opengl sw interop" module "glinterop_sw"
[00007fd8d8000f20] main generic debug: removing "opengl filter" module "gl"
[00007fd8d8000f20] main generic debug: attempt to destroy nonexistent variable "module-name"
[00007fd92c0922b0] main generic debug: removing "glinterop" module "glinterop_vaapi"
[00007fd92c0922b0] main generic debug: attempt to destroy nonexistent variable "module-name"
[00007fd92c04a5a0] main video output debug: deinterlace -1, mode auto, is_needed 0
[00007fd92c04a5a0] main video output debug: Opening vout display wrapper
[00007fd92cfc14a0] main vout display debug: looking for vout display module matching "any": 7 candidates
[00007fd9592f3808] main generic debug: looking for opengl module matching "any": 5 candidates
[00007fd92c081ab0] xcb_egl gl debug: EGL client extensions: EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_explicit_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_EXT_platform_x11 EGL_KHR_platform_x11 EGL_EXT_platform_xcb EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
[00007fd92c081ab0] egl_wl gl debug: EGL client extensions: EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_explicit_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_EXT_platform_x11 EGL_KHR_platform_x11 EGL_EXT_platform_xcb EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
[00007fd92c081ab0] egl_wl gl warning: EGL display reference counting not supported
[00007fd92c081ab0] egl_x11 gl debug: EGL client extensions: EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_explicit_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_EXT_platform_x11 EGL_KHR_platform_x11 EGL_EXT_platform_xcb EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
[00007fd92c081ab0] egl_gbm_wl gl debug: EGL client extensions: EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_explicit_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_EXT_platform_x11 EGL_KHR_platform_x11 EGL_EXT_platform_xcb EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
[00007fd92c081ab0] egl_gbm_wl gl debug: open drm device /dev/dri/renderD128
[00007fd92c081ab0] egl_gbm_wl gl debug: EGL version 1.5 by Mesa Project
[00007fd92c081ab0] egl_gbm_wl gl debug: EGL display extensions: EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age EGL_EXT_config_select_group EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_protected_content EGL_EXT_query_reset_notification_strategy EGL_EXT_surface_compression EGL_IMG_context_priority EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_context_flush_control EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_partial_update EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_gl_interop EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_MESA_x11_native_visual_id EGL_WL_bind_wayland_display
[00007fd9592f3808] main generic debug: using opengl module "egl_gbm_wl"
[00007fd9592f37b8] main generic debug: looking for glinterop module matching "any": 3 candidates
[00007fd9592f37b8] main generic debug: using glinterop module "glinterop_vaapi"
[00007fd9592f36b8] main generic debug: looking for opengl filter module matching "renderer": 2 candidates
[00007fd92c081ab0] gl gl debug: Initialized libplacebo v7.349.0 (API v349)
[00007fd92c081ab0] gl gl debug: Detected OpenGL version strings:
[00007fd92c081ab0] gl gl debug: GL_VERSION: 4.6 (Compatibility Profile) Mesa 25.0.7-2
[00007fd92c081ab0] gl gl debug: GL_VENDOR: Intel
[00007fd92c081ab0] gl gl debug: GL_RENDERER: Mesa Intel(R) Arc(tm) Graphics (MTL)
[00007fd92c081ab0] gl gl debug: GL_SHADING_LANGUAGE_VERSION: 4.60
[00007fd92c081ab0] gl gl debug: GPU information:
[00007fd92c081ab0] gl gl debug: GLSL version: 460
[00007fd92c081ab0] gl gl debug: max_shmem_size: 65536
[00007fd92c081ab0] gl gl debug: max_group_threads: 1024
[00007fd92c081ab0] gl gl debug: max_group_size[0]: 1024
[00007fd92c081ab0] gl gl debug: max_group_size[1]: 1024
[00007fd92c081ab0] gl gl debug: max_group_size[2]: 1024
[00007fd92c081ab0] gl gl debug: subgroup_size: 0
[00007fd92c081ab0] gl gl debug: min_gather_offset: -32
[00007fd92c081ab0] gl gl debug: max_gather_offset: 31
[00007fd92c081ab0] gl gl debug: Limits:
[00007fd92c081ab0] gl gl debug: thread_safe: 0
[00007fd92c081ab0] gl gl debug: callbacks: 1
[00007fd92c081ab0] gl gl debug: max_buf_size: 18446744073709551615
[00007fd92c081ab0] gl gl debug: max_ubo_size: 65536
[00007fd92c081ab0] gl gl debug: max_ssbo_size: 134217728
[00007fd92c081ab0] gl gl debug: max_vbo_size: 18446744073709551615
[00007fd92c081ab0] gl gl debug: max_mapped_size: 18446744073709551615
[00007fd92c081ab0] gl gl debug: max_buffer_texels: 0
[00007fd92c081ab0] gl gl debug: align_host_ptr: 0
[00007fd92c081ab0] gl gl debug: host_cached: 0
[00007fd92c081ab0] gl gl debug: max_tex_1d_dim: 16384
[00007fd92c081ab0] gl gl debug: max_tex_2d_dim: 16384
[00007fd92c081ab0] gl gl debug: max_tex_3d_dim: 2048
[00007fd92c081ab0] gl gl debug: blittable_1d_3d: 0
[00007fd92c081ab0] gl gl debug: buf_transfer: 1
[00007fd92c081ab0] gl gl debug: align_tex_xfer_pitch: 4
[00007fd92c081ab0] gl gl debug: align_tex_xfer_offset: 32
[00007fd92c081ab0] gl gl debug: max_variable_comps: 16384
[00007fd92c081ab0] gl gl debug: max_constants: 0
[00007fd92c081ab0] gl gl debug: max_pushc_size: 0
[00007fd92c081ab0] gl gl debug: align_vertex_stride: 1
[00007fd92c081ab0] gl gl debug: max_dispatch[0]: 2147483646
[00007fd92c081ab0] gl gl debug: max_dispatch[1]: 2147483646
[00007fd92c081ab0] gl gl debug: max_dispatch[2]: 2147483646
[00007fd92c081ab0] gl gl debug: fragment_queues: 1
[00007fd92c081ab0] gl gl debug: compute_queues: 1
[00007fd92c081ab0] gl gl debug: libplacebo shader: (unknown shader)
[00007fd9592f36b8] main generic debug: using opengl filter module "gl"
[00007fd9592f37b8] main generic debug: looking for opengl sw interop module matching "sw": 1 candidates
[00007fd9592f37b8] main generic debug: using opengl sw interop module "glinterop_sw"
[00007fd92cfc14a0] main vout display debug: using vout display module "gl"
[00007fd92c04a5a0] main video output debug: original format sz 1280x720, of (0,0), vsz 1280x720, 4cc VAOP, sar 1:1, orient: normal
[00007fd92c04e600] main spu text debug: removing "text renderer" module "freetype"
[00007fd9592f3aa0] main generic debug: looking for text renderer module matching "any": 3 candidates
[00007fd92c04e600] freetype spu text debug: Building font databases.
[00007fd92c04e600] freetype spu text debug: Took 3847 microseconds
[00007fd9592f3aa0] main generic debug: using text renderer module "freetype"
[00007fd92c04a5a0] main video output debug: resetting projection_mode to 0
[00007fd92c04a5a0] main video output debug: setting projection_mode to 0
[h264 @ 0x7fd9458f3a80] Reinit context to 1280x720, pix_fmt: vaapi
[00007fd944c170c0] main decoder debug: Received first picture
[00007fd91c1fb758] main generic debug: looking for opengl filter module matching "renderer": 2 candidates
[00007fd8d8097150] main generic debug: set config option: video-stereo-mode to 0
[00007fd8d8097150] main generic debug: set config option: projection-mode to 0
[00007fd92c081ab0] gl gl debug: Initialized libplacebo v7.349.0 (API v349)
[000055f99c3fefb0] main input debug: Decoder wait done in 34 ms
[00007fd92c081ab0] gl gl debug: Detected OpenGL version strings:
[00007fd92c081ab0] gl gl debug: GL_VERSION: 4.6 (Compatibility Profile) Mesa 25.0.7-2
[00007fd92c081ab0] gl gl debug: GL_VENDOR: Intel
[00007fd92c081ab0] gl gl debug: GL_RENDERER: Mesa Intel(R) Arc(tm) Graphics (MTL)
[00007fd92c081ab0] gl gl debug: GL_SHADING_LANGUAGE_VERSION: 4.60
[00007fd92c081ab0] gl gl debug: GPU information:
[00007fd92c081ab0] gl gl debug: GLSL version: 460
[00007fd92c081ab0] gl gl debug: max_shmem_size: 65536
[00007fd92c081ab0] gl gl debug: max_group_threads: 1024
[00007fd92c081ab0] gl gl debug: max_group_size[0]: 1024
[00007fd92c081ab0] gl gl debug: max_group_size[1]: 1024
[00007fd92c081ab0] gl gl debug: max_group_size[2]: 1024
[00007fd92c081ab0] gl gl debug: subgroup_size: 0
[00007fd92c081ab0] gl gl debug: min_gather_offset: -32
[00007fd92c081ab0] gl gl debug: max_gather_offset: 31
[00007fd92c081ab0] gl gl debug: Limits:
[00007fd92c081ab0] gl gl debug: thread_safe: 0
[00007fd92c081ab0] gl gl debug: callbacks: 1
[00007fd92c081ab0] gl gl debug: max_buf_size: 18446744073709551615
[00007fd92c081ab0] gl gl debug: max_ubo_size: 65536
[00007fd92c081ab0] gl gl debug: max_ssbo_size: 134217728
[00007fd92c081ab0] gl gl debug: max_vbo_size: 18446744073709551615
[00007fd92c081ab0] gl gl debug: max_mapped_size: 18446744073709551615
[00007fd92c081ab0] gl gl debug: max_buffer_texels: 0
[00007fd92c081ab0] gl gl debug: align_host_ptr: 0
[00007fd92c081ab0] gl gl debug: host_cached: 0
[00007fd92c081ab0] gl gl debug: max_tex_1d_dim: 16384
[00007fd92c081ab0] gl gl debug: max_tex_2d_dim: 16384
[00007fd92c081ab0] gl gl debug: max_tex_3d_dim: 2048
[00007fd92c081ab0] gl gl debug: blittable_1d_3d: 0
[00007fd92c081ab0] gl gl debug: buf_transfer: 1
[00007fd92c081ab0] gl gl debug: align_tex_xfer_pitch: 4
[00007fd92c081ab0] gl gl debug: align_tex_xfer_offset: 32
[00007fd92c081ab0] gl gl debug: max_variable_comps: 16384
[00007fd92c081ab0] gl gl debug: max_constants: 0
[00007fd92c081ab0] gl gl debug: max_pushc_size: 0
[00007fd92c081ab0] gl gl debug: align_vertex_stride: 1
[00007fd92c081ab0] gl gl debug: max_dispatch[0]: 2147483646
[00007fd92c081ab0] gl gl debug: max_dispatch[1]: 2147483646
[00007fd92c081ab0] gl gl debug: max_dispatch[2]: 2147483646
[00007fd92c081ab0] gl gl debug: fragment_queues: 1
[00007fd92c081ab0] gl gl debug: compute_queues: 1
[00007fd92c081ab0] gl gl debug: libplacebo shader: (unknown shader)
[00007fd91c1fb758] main generic debug: using opengl filter module "gl"
[00007fd92c0992c0] main generic debug: removing "opengl filter" module "gl"
[00007fd92c0992c0] main generic debug: attempt to destroy nonexistent variable "module-name"
[00007fd92c081ab0] gl gl debug: Changed to projection mode 0
[000055f99c3356f0] pipewire audio output debug: starting on time
Edited by Thomas Guillem