Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VAAPI can support video engine based rotation, flip, crop, scaling now. MPV should use hardware acceleration to handle these jobs. #11050

Open
PeytonLee616 opened this issue Dec 26, 2022 · 14 comments

Comments

@PeytonLee616
Copy link

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17557#diff-content-5f7f69ba0a2eeaac66400a4bae4249662d000e59
From the link above, mesa (VAAPI) has started to support video engine based effects to handle image scaling, cropping, etc.
I tried to specify to use video filter such as "scale_vaapi", but it seems that MPV will not actively use VAAPI to handle scaling.

Expected behavior of the wanted feature

mpv should use these hardware based functions to handle scaling, cropping, etc.
This should save more CPU and GPU performance.

Alternative behavior of the wanted feature

mpv --hwdec=vaapi --vf=scale_vaapi

Log file

[ 0.004][v][cplayer] mpv 0.35.0-60-g874e28f4a4 Copyright © 2000-2022 mpv/MPlayer/mplayer2 projects
[ 0.004][v][cplayer] built on Fri Dec 23 06:03:04 CST 2022
[ 0.004][v][cplayer] libplacebo version: v5.229.1-45-gacaba0f
[ 0.004][v][cplayer] FFmpeg version: n5.1.2
[ 0.004][v][cplayer] FFmpeg library versions:
[ 0.004][v][cplayer] libavutil 57.28.100
[ 0.004][v][cplayer] libavcodec 59.37.100
[ 0.004][v][cplayer] libavformat 59.27.100
[ 0.004][v][cplayer] libswscale 6.7.100
[ 0.004][v][cplayer] libavfilter 8.44.100
[ 0.004][v][cplayer] libswresample 4.7.100
[ 0.004][v][cplayer]
[ 0.004][v][cplayer] Configuration: ./waf configure
[ 0.004][v][cplayer] List of enabled features: alsa asm av-channel-layout build-date cplayer cplugins debug-build dmabuf-interop-gl dmabuf-interop-pl drm drm-is-kms egl egl-drm egl-helpers egl-x11 ffmpeg gbm gbm.h gl glibc-thread-name glob glob-posix gpl iconv jpegxl libass libavdevice libdl libm libplacebo libplacebo-next librt linux-fstatfs linux-input-event-codes optimize posix posix-or-mingw pthreads pulse stdatomic vaapi vaapi-drm vaapi-egl vaapi-libplacebo vaapi-x-egl vaapi-x11 vdpau vector vt.h x11 xv zlib
[ 0.004][v][cplayer] Command line options: '--hwdec=vaapi' '--vf=scale_vaapi' '/home/peytolee/Downloads/1080P_Video.mp4' '--log-file=output.txt'
[ 0.004][v][cplayer] mpv 0.35.0-60-g874e28f4a4 Copyright © 2000-2022 mpv/MPlayer/mplayer2 projects
[ 0.004][v][cplayer] built on Fri Dec 23 06:03:04 CST 2022
[ 0.004][v][cplayer] libplacebo version: v5.229.1-45-gacaba0f
[ 0.004][v][cplayer] FFmpeg version: n5.1.2
[ 0.004][v][cplayer] FFmpeg library versions:
[ 0.004][v][cplayer] libavutil 57.28.100
[ 0.004][v][cplayer] libavcodec 59.37.100
[ 0.004][v][cplayer] libavformat 59.27.100
[ 0.004][v][cplayer] libswscale 6.7.100
[ 0.004][v][cplayer] libavfilter 8.44.100
[ 0.004][v][cplayer] libswresample 4.7.100
[ 0.004][v][cplayer]
[ 0.004][v][cplayer] Configuration: ./waf configure
[ 0.004][v][cplayer] List of enabled features: alsa asm av-channel-layout build-date cplayer cplugins debug-build dmabuf-interop-gl dmabuf-interop-pl drm drm-is-kms egl egl-drm egl-helpers egl-x11 ffmpeg gbm gbm.h gl glibc-thread-name glob glob-posix gpl iconv jpegxl libass libavdevice libdl libm libplacebo libplacebo-next librt linux-fstatfs linux-input-event-codes optimize posix posix-or-mingw pthreads pulse stdatomic vaapi vaapi-drm vaapi-egl vaapi-libplacebo vaapi-x-egl vaapi-x11 vdpau vector vt.h x11 xv zlib
[ 0.004][d][global] config path: '' -> '/home/peytolee/.config/mpv'
[ 0.004][d][global] user path: '~~home/' -> '/home/peytolee/.config/mpv'
[ 0.004][d][global] user path: '~~old_home/' -> '/home/peytolee/.mpv'
[ 0.004][d][global] config path: 'encoding-profiles.conf' -/-> '/home/peytolee/.config/mpv/encoding-profiles.conf'
[ 0.004][d][global] config path: 'encoding-profiles.conf' -/-> '/home/peytolee/.mpv/encoding-profiles.conf'
[ 0.004][d][global] config path: 'encoding-profiles.conf' -> '/usr/local/etc/mpv/encoding-profiles.conf'
[ 0.004][v][cplayer] Reading config file /usr/local/etc/mpv/encoding-profiles.conf
[ 0.005][v][cplayer] Applying profile 'default'...
[ 0.005][d][global] config path: 'mpv.conf' -/-> '/home/peytolee/.config/mpv/mpv.conf'
[ 0.005][d][global] config path: 'config' -/-> '/home/peytolee/.config/mpv/config'
[ 0.005][d][global] config path: 'mpv.conf' -/-> '/home/peytolee/.mpv/mpv.conf'
[ 0.005][d][global] config path: 'config' -/-> '/home/peytolee/.mpv/config'
[ 0.005][d][global] config path: 'mpv.conf' -/-> '/usr/local/etc/mpv/mpv.conf'
[ 0.005][d][global] config path: 'config' -/-> '/usr/local/etc/mpv/config'
[ 0.005][v][cplayer] Setting option 'hwdec' = 'vaapi' (flags = 8)
[ 0.005][v][cplayer] Setting option 'vf' = 'scale_vaapi' (flags = 8)
[ 0.005][v][cplayer] Setting option 'log-file' = 'output.txt' (flags = 8)
[ 0.006][d][global] config path: 'input.conf' -/-> '/home/peytolee/.config/mpv/input.conf'
[ 0.006][d][global] config path: 'input.conf' -/-> '/home/peytolee/.mpv/input.conf'
[ 0.006][d][global] config path: 'input.conf' -/-> '/usr/local/etc/mpv/input.conf'
[ 0.006][d][global] user path: 'output.txt' -> 'output.txt'
[ 0.006][d][global] config path: 'scripts' -/-> '/home/peytolee/.config/mpv/scripts'
[ 0.006][d][global] config path: 'scripts' -/-> '/home/peytolee/.mpv/scripts'
[ 0.006][d][global] config path: 'scripts' -/-> '/usr/local/etc/mpv/scripts'
[ 0.006][d][global] config path: 'watch_later' -> '/home/peytolee/.config/mpv/watch_later'
[ 0.006][v][file] Opening /home/peytolee/Downloads/1080P_Video.mp4
[ 0.006][d][file] resize stream to 131072 bytes, drop 0 bytes
[ 0.006][d][file] Stream opened successfully.
[ 0.006][v][demux] Trying demuxers for level=normal.
[ 0.006][d][demux] Trying demuxer: disc (force-level: normal)
[ 0.006][d][demux] Trying demuxer: edl (force-level: normal)
[ 0.006][d][demux] Trying demuxer: cue (force-level: normal)
[ 0.006][d][demux] Trying demuxer: rawaudio (force-level: normal)
[ 0.006][d][demux] Trying demuxer: rawvideo (force-level: normal)
[ 0.006][d][demux] Trying demuxer: mkv (force-level: normal)
[ 0.006][d][demux] Trying demuxer: lavf (force-level: normal)
[ 0.011][v][lavf] Found 'mov,mp4,m4a,3gp,3g2,mj2' at score=100 size=2048.
[ 0.036][v][file] stream level seek from 3228127 to 2388355094
[ 0.036][v][demux] Detected file format: mov,mp4,m4a,3gp,3g2,mj2 (libavformat)
[ 0.036][v][cplayer] Opening done: /home/peytolee/Downloads/1080P_Video.mp4
[ 0.037][v][find_files] Loading external files in /home/peytolee/Downloads/
[ 0.037][d][global] config path: 'sub' -/-> '/home/peytolee/.config/mpv/sub'
[ 0.037][d][global] config path: 'sub' -/-> '/home/peytolee/.mpv/sub'
[ 0.037][d][global] config path: 'sub' -/-> '/usr/local/etc/mpv/sub'
[ 0.037][v][lavf] select track 0
[ 0.037][v][lavf] select track 1
[ 0.037][i][cplayer] (+) Video --vid=1 () (h264 1920x1080 23.976fps)
[ 0.037][i][cplayer] (+) Audio --aid=1 (
) (aac 2ch 48000Hz)
[ 0.037][v][vo/gpu] Probing for best GPU context.
[ 0.037][v][vo/gpu/opengl] Initializing GPU context 'x11egl'
[ 0.037][v][vo/gpu/x11] X11 opening display: :0
[ 0.039][d][vo/gpu/x11] X11 running at 3200x1800 (":0" => local display)
[ 0.039][d][vo/gpu/x11] Detected wm supports NetWM.
[ 0.039][d][vo/gpu/x11] Detected wm supports FULLSCREEN state.
[ 0.039][d][vo/gpu/x11] Detected wm supports ABOVE state.
[ 0.039][d][vo/gpu/x11] Detected wm supports BELOW state.
[ 0.039][d][vo/gpu/x11] Detected wm supports STICKY state.
[ 0.039][v][vo/gpu/x11] Display 0 (XWAYLAND0): [0, 0, 3200, 1800] @ 59.925664 FPS
[ 0.039][v][vo/gpu/x11] Current display FPS: 59.925664
[ 0.060][v][vo/gpu/opengl] EGL_VERSION=1.5
[ 0.060][v][vo/gpu/opengl] EGL_VENDOR=Mesa Project
[ 0.060][v][vo/gpu/opengl] EGL_CLIENT_APIS=OpenGL OpenGL_ES
[ 0.060][v][vo/gpu/opengl] Trying to create Desktop OpenGL context.
[ 0.060][d][vo/gpu/opengl] Chosen EGLConfig:
[ 0.060][d][vo/gpu/opengl] EGL_CONFIG_ID=0x11
[ 0.060][d][vo/gpu/opengl] EGL_RED_SIZE=0x8
[ 0.060][d][vo/gpu/opengl] EGL_GREEN_SIZE=0x8
[ 0.060][d][vo/gpu/opengl] EGL_BLUE_SIZE=0x8
[ 0.060][d][vo/gpu/opengl] EGL_ALPHA_SIZE=0x0
[ 0.060][d][vo/gpu/opengl] EGL_COLOR_BUFFER_TYPE=0x308e
[ 0.060][d][vo/gpu/opengl] EGL_CONFIG_CAVEAT=0x3038
[ 0.060][d][vo/gpu/opengl] EGL_CONFORMANT=0x4d
[ 0.060][d][vo/gpu/opengl] EGL_NATIVE_VISUAL_ID=0x44
[ 0.061][v][vo/gpu/opengl] Choosing visual EGL config 0x11, visual ID 0x44
[ 0.061][v][vo/gpu/x11] The XPresent extension was found.
[ 0.061][v][vo/gpu/x11] XPresent disabled.
[ 0.066][v][vo/gpu/opengl] GL_VERSION='4.6 (Core Profile) Mesa 22.0.5'
[ 0.066][v][vo/gpu/opengl] Detected desktop OpenGL 4.6.
[ 0.066][v][vo/gpu/opengl] GL_VENDOR='AMD'
[ 0.066][v][vo/gpu/opengl] GL_RENDERER='AMD Radeon RX 6700 XT (navy_flounder, LLVM 13.0.1, DRM 3.42, 5.15.0-56-generic)'
[ 0.066][v][vo/gpu/opengl] GL_SHADING_LANGUAGE_VERSION='4.60'
[ 0.066][d][vo/gpu/opengl] Combined OpenGL extensions string:
[ 0.066][d][vo/gpu/opengl] EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_CHROMIUM_sync_control EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_swap_buffers_with_damage EGL_KHR_cl_event2 EGL_KHR_config_attribs 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_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_NOK_texture_from_pixmap EGL_WL_bind_wayland_display GL_AMD_conservative_depth GL_AMD_depth_clamp_separate GL_AMD_draw_buffers_blend GL_AMD_framebuffer_multisample_advanced GL_AMD_gpu_shader_int64 GL_AMD_multi_draw_indirect GL_AMD_performance_monitor GL_AMD_pinned_memory GL_AMD_query_buffer_object GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_AMD_shader_trinary_minmax GL_AMD_texture_texture4 GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_ES2_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compressed_texture_pixel_storage GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_shader GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_stencil_export GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map_array GL_ARB_texture_filter_anisotropic GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ATI_blend_equation_separate GL_ATI_meminfo GL_ATI_texture_float GL_ATI_texture_mirror_once GL_EXT_EGL_image_storage GL_EXT_EGL_sync GL_EXT_abgr GL_EXT_blend_equation_separate GL_EXT_demote_to_helper_invocation GL_EXT_depth_bounds_test GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_semaphore GL_EXT_semaphore_fd GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shader_samples_identical GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_decode GL_EXT_texture_shadow_lod GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_IBM_multimode_draw_arrays GL_INTEL_blackhole_render GL_KHR_blend_equation_advanced GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_sliced_3d GL_MESA_framebuffer_flip_y GL_MESA_pack_invert GL_MESA_shader_integer_functions GL_MESA_texture_signed_rgba GL_NVX_gpu_memory_info GL_NV_alpha_to_coverage_dither_control GL_NV_compute_shader_derivatives GL_NV_conditional_render GL_NV_copy_image GL_NV_depth_clamp GL_NV_packed_depth_stencil GL_NV_shader_atomic_int64 GL_NV_texture_barrier GL_NV_vdpau_interop GL_OES_EGL_image GL_S3_s3tc
[ 0.066][v][vo/gpu/opengl] Loaded extension GL_NV_vdpau_interop.
[ 0.066][v][vo/gpu/opengl] Loaded extension GL_KHR_debug.
[ 0.066][d][vo/gpu/opengl] Texture formats:
[ 0.066][d][vo/gpu/opengl] NAME COMPTYPE SIZE DEPTH PER COMP.
[ 0.066][d][vo/gpu/opengl] r8 1
unorm 1B LF CR ST {8}
[ 0.066][d][vo/gpu/opengl] rg8 2unorm 2B LF CR ST {8 8}
[ 0.066][d][vo/gpu/opengl] rgb8 3
unorm 3B LF CR ST {8 8 8}
[ 0.066][d][vo/gpu/opengl] rgba8 4unorm 4B LF CR ST {8 8 8 8}
[ 0.066][d][vo/gpu/opengl] r16 1
unorm 2B LF CR ST {16}
[ 0.066][d][vo/gpu/opengl] rg16 2unorm 4B LF CR ST {16 16}
[ 0.066][d][vo/gpu/opengl] rgb16 3
unorm 6B LF CR ST {16 16 16}
[ 0.066][d][vo/gpu/opengl] rgba16 4unorm 8B LF CR ST {16 16 16 16}
[ 0.066][d][vo/gpu/opengl] r8ui 1
uint 1B CR ST {8}
[ 0.066][d][vo/gpu/opengl] rg8ui 2uint 2B CR ST {8 8}
[ 0.066][d][vo/gpu/opengl] rgb8ui 3
uint 3B ST {8 8 8}
[ 0.066][d][vo/gpu/opengl] rgba8ui 4uint 4B CR ST {8 8 8 8}
[ 0.066][d][vo/gpu/opengl] r16ui 1
uint 2B CR ST {16}
[ 0.066][d][vo/gpu/opengl] rg16ui 2uint 4B CR ST {16 16}
[ 0.066][d][vo/gpu/opengl] rgb16ui 3
uint 6B ST {16 16 16}
[ 0.066][d][vo/gpu/opengl] rgba16ui 4uint 8B CR ST {16 16 16 16}
[ 0.066][d][vo/gpu/opengl] r16f 1
float 4B LF CR ST {32/16}
[ 0.066][d][vo/gpu/opengl] rg16f 2float 8B LF CR ST {32/16 32/16}
[ 0.066][d][vo/gpu/opengl] rgb16f 3
float 12B LF CR ST {32/16 32/16 32/16}
[ 0.066][d][vo/gpu/opengl] rgba16f 4float 16B LF CR ST {32/16 32/16 32/16 32/16}
[ 0.066][d][vo/gpu/opengl] r32f 1
float 4B LF CR ST {32}
[ 0.066][d][vo/gpu/opengl] rg32f 2float 8B LF CR ST {32 32}
[ 0.066][d][vo/gpu/opengl] rgb32f 3
float 12B LF CR ST {32 32 32}
[ 0.066][d][vo/gpu/opengl] rgba32f 4float 16B LF CR ST {32 32 32 32}
[ 0.066][d][vo/gpu/opengl] rgb10_a2 4
unorm 4B LF CR ST {0/10 0/10 0/10 0/2}
[ 0.066][d][vo/gpu/opengl] rgba12 4unorm 8B LF CR ST {16 16 16 16}
[ 0.066][d][vo/gpu/opengl] rgb10 3
unorm 6B LF CR ST {16/10 16/10 16/10}
[ 0.066][d][vo/gpu/opengl] rgb565 3*unorm 2B LF ST {0/8 0/8 0/8}
[ 0.066][d][vo/gpu/opengl] LA = LUMINANCE_ALPHA hack format
[ 0.066][d][vo/gpu/opengl] LF = linear filterable
[ 0.066][d][vo/gpu/opengl] CR = can be used for render targets
[ 0.066][d][vo/gpu/opengl] ST = can be used for storable images
[ 0.066][d][vo/gpu/opengl] Image formats:
[ 0.066][d][vo/gpu/opengl] yuv444p => 3 planes 1x1 8/0 [r8/r8/r8] (r/g/b) [unorm]
[ 0.066][d][vo/gpu/opengl] yuv420p => 3 planes 2x2 8/0 [r8/r8/r8] (r/g/b) [unorm]
[ 0.066][d][vo/gpu/opengl] gray => 1 planes 1x1 8/0 [r8] (r) [unorm]
[ 0.066][d][vo/gpu/opengl] gray16 => 1 planes 1x1 16/0 [r16] (r) [unorm]
[ 0.066][d][vo/gpu/opengl] uyvy422
[ 0.066][d][vo/gpu/opengl] nv12 => 2 planes 2x2 8/0 [r8/rg8] (r/gb) [unorm]
[ 0.066][d][vo/gpu/opengl] p010 => 2 planes 2x2 16/6 [r16/rg16] (r/gb) [unorm]
[ 0.066][d][vo/gpu/opengl] argb => 1 planes 1x1 8/0 [rgba8] (argb) [unorm]
[ 0.066][d][vo/gpu/opengl] bgra => 1 planes 1x1 8/0 [rgba8] (bgra) [unorm]
[ 0.066][d][vo/gpu/opengl] abgr => 1 planes 1x1 8/0 [rgba8] (abgr) [unorm]
[ 0.066][d][vo/gpu/opengl] rgba => 1 planes 1x1 8/0 [rgba8] (rgba) [unorm]
[ 0.066][d][vo/gpu/opengl] bgr24 => 1 planes 1x1 8/0 [rgb8] (bgr) [unorm]
[ 0.066][d][vo/gpu/opengl] rgb24 => 1 planes 1x1 8/0 [rgb8] (rgb) [unorm]
[ 0.066][d][vo/gpu/opengl] 0rgb => 1 planes 1x1 8/0 [rgba8] (_rgb) [unorm]
[ 0.066][d][vo/gpu/opengl] bgr0 => 1 planes 1x1 8/0 [rgba8] (bgr) [unorm]
[ 0.066][d][vo/gpu/opengl] 0bgr => 1 planes 1x1 8/0 [rgba8] (_bgr) [unorm]
[ 0.066][d][vo/gpu/opengl] rgb0 => 1 planes 1x1 8/0 [rgba8] (rgb) [unorm]
[ 0.066][d][vo/gpu/opengl] rgba64 => 1 planes 1x1 16/0 [rgba16] (rgba) [unorm]
[ 0.066][d][vo/gpu/opengl] rgb565 => 1 planes 1x1 0/0 [rgb565] (rgb) [unknown]
[ 0.066][d][vo/gpu/opengl] pal8
[ 0.066][d][vo/gpu/opengl] vdpau
[ 0.066][d][vo/gpu/opengl] d3d11
[ 0.066][d][vo/gpu/opengl] dxva2_vld
[ 0.066][d][vo/gpu/opengl] mmal
[ 0.066][d][vo/gpu/opengl] mediacodec
[ 0.066][d][vo/gpu/opengl] cuda
[ 0.066][d][vo/gpu/opengl] yap8 => 2 planes 1x1 8/0 [r8/r8] (r/a) [unorm]
[ 0.066][d][vo/gpu/opengl] yap16 => 2 planes 1x1 16/0 [r16/r16] (r/a) [unorm]
[ 0.066][d][vo/gpu/opengl] grayaf32 => 2 planes 1x1 32/0 [r16f/r16f] (r/a) [float]
[ 0.066][d][vo/gpu/opengl] yuv444pf => 3 planes 1x1 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[ 0.066][d][vo/gpu/opengl] yuva444pf => 4 planes 1x1 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[ 0.066][d][vo/gpu/opengl] yuv420pf => 3 planes 2x2 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[ 0.066][d][vo/gpu/opengl] yuva420pf => 4 planes 2x2 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[ 0.066][d][vo/gpu/opengl] yuv422pf => 3 planes 2x1 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[ 0.066][d][vo/gpu/opengl] yuva422pf => 4 planes 2x1 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[ 0.066][d][vo/gpu/opengl] yuv440pf => 3 planes 1x2 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[ 0.066][d][vo/gpu/opengl] yuva440pf => 4 planes 1x2 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[ 0.066][d][vo/gpu/opengl] yuv410pf => 3 planes 4x4 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[ 0.066][d][vo/gpu/opengl] yuva410pf => 4 planes 4x4 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[ 0.066][d][vo/gpu/opengl] yuv411pf => 3 planes 4x1 32/0 [r16f/r16f/r16f] (r/g/b) [float]
[ 0.066][d][vo/gpu/opengl] yuva411pf => 4 planes 4x1 32/0 [r16f/r16f/r16f/r16f] (r/g/b/a) [float]
[ 0.066][d][vo/gpu/opengl] rgb30 => 1 planes 1x1 10/0 [rgb10_a2] (bgr) [unknown]
[ 0.066][d][vo/gpu/opengl] y1 => 1 planes 1x1 8/-7 [r8] (r) [unorm]
[ 0.066][d][vo/gpu/opengl] gbrp1 => 3 planes 1x1 8/-7 [r8/r8/r8] (g/b/r) [unorm]
[ 0.066][d][vo/gpu/opengl] gbrp2 => 3 planes 1x1 8/-6 [r8/r8/r8] (g/b/r) [unorm]
[ 0.066][d][vo/gpu/opengl] gbrp3 => 3 planes 1x1 8/-5 [r8/r8/r8] (g/b/r) [unorm]
[ 0.066][d][vo/gpu/opengl] gbrp4 => 3 planes 1x1 8/-4 [r8/r8/r8] (g/b/r) [unorm]
[ 0.066][d][vo/gpu/opengl] gbrp5 => 3 planes 1x1 8/-3 [r8/r8/r8] (g/b/r) [unorm]
[ 0.066][d][vo/gpu/opengl] gbrp6 => 3 planes 1x1 8/-2 [r8/r8/r8] (g/b/r) [unorm]
[ 0.066][d][vo/gpu/opengl] vdpau_output
[ 0.066][d][vo/gpu/opengl] vaapi
[ 0.066][d][vo/gpu/opengl] videotoolbox
[ 0.066][d][vo/gpu/opengl] drm_prime
[ 0.066][d][vo/gpu/opengl] yuyv422
[ 0.066][d][vo/gpu/opengl] yuv422p => 3 planes 2x1 8/0 [r8/r8/r8] (r/g/b) [unorm]
[ 0.066][d][vo/gpu/opengl] yuv410p => 3 planes 4x4 8/0 [r8/r8/r8] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv411p => 3 planes 4x1 8/0 [r8/r8/r8] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] monow
[ 0.067][d][vo/gpu/opengl] monob
[ 0.067][d][vo/gpu/opengl] yuvj422p => 3 planes 2x1 8/0 [r8/r8/r8] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] uyyvyy411
[ 0.067][d][vo/gpu/opengl] bgr8
[ 0.067][d][vo/gpu/opengl] bgr4
[ 0.067][d][vo/gpu/opengl] bgr4_byte
[ 0.067][d][vo/gpu/opengl] rgb8
[ 0.067][d][vo/gpu/opengl] rgb4
[ 0.067][d][vo/gpu/opengl] rgb4_byte
[ 0.067][d][vo/gpu/opengl] nv21 => 2 planes 2x2 8/0 [r8/rg8] (r/bg) [unorm]
[ 0.067][d][vo/gpu/opengl] gray16be
[ 0.067][d][vo/gpu/opengl] yuv440p => 3 planes 1x2 8/0 [r8/r8/r8] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuvj440p => 3 planes 1x2 8/0 [r8/r8/r8] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva420p => 4 planes 2x2 8/0 [r8/r8/r8/r8] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] rgb48be
[ 0.067][d][vo/gpu/opengl] rgb48 => 1 planes 1x1 16/0 [rgb16] (rgb) [unorm]
[ 0.067][d][vo/gpu/opengl] rgb565be
[ 0.067][d][vo/gpu/opengl] rgb555be
[ 0.067][d][vo/gpu/opengl] rgb555
[ 0.067][d][vo/gpu/opengl] bgr565be
[ 0.067][d][vo/gpu/opengl] bgr565
[ 0.067][d][vo/gpu/opengl] bgr555be
[ 0.067][d][vo/gpu/opengl] bgr555
[ 0.067][d][vo/gpu/opengl] yuv420p16 => 3 planes 2x2 16/0 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv420p16be
[ 0.067][d][vo/gpu/opengl] yuv422p16 => 3 planes 2x1 16/0 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv422p16be
[ 0.067][d][vo/gpu/opengl] yuv444p16 => 3 planes 1x1 16/0 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv444p16be
[ 0.067][d][vo/gpu/opengl] rgb444
[ 0.067][d][vo/gpu/opengl] rgb444be
[ 0.067][d][vo/gpu/opengl] bgr444
[ 0.067][d][vo/gpu/opengl] bgr444be
[ 0.067][d][vo/gpu/opengl] ya8 => 1 planes 1x1 8/0 [rg8] (ra) [unorm]
[ 0.067][d][vo/gpu/opengl] bgr48be
[ 0.067][d][vo/gpu/opengl] bgr48 => 1 planes 1x1 16/0 [rgb16] (bgr) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv420p9be
[ 0.067][d][vo/gpu/opengl] yuv420p9 => 3 planes 2x2 16/-7 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv420p10be
[ 0.067][d][vo/gpu/opengl] yuv420p10 => 3 planes 2x2 16/-6 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv422p10be
[ 0.067][d][vo/gpu/opengl] yuv422p10 => 3 planes 2x1 16/-6 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv444p9be
[ 0.067][d][vo/gpu/opengl] yuv444p9 => 3 planes 1x1 16/-7 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv444p10be
[ 0.067][d][vo/gpu/opengl] yuv444p10 => 3 planes 1x1 16/-6 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv422p9be
[ 0.067][d][vo/gpu/opengl] yuv422p9 => 3 planes 2x1 16/-7 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] gbrp => 3 planes 1x1 8/0 [r8/r8/r8] (g/b/r) [unorm]
[ 0.067][d][vo/gpu/opengl] gbrp9be
[ 0.067][d][vo/gpu/opengl] gbrp9 => 3 planes 1x1 16/-7 [r16/r16/r16] (g/b/r) [unorm]
[ 0.067][d][vo/gpu/opengl] gbrp10be
[ 0.067][d][vo/gpu/opengl] gbrp10 => 3 planes 1x1 16/-6 [r16/r16/r16] (g/b/r) [unorm]
[ 0.067][d][vo/gpu/opengl] gbrp16be
[ 0.067][d][vo/gpu/opengl] gbrp16 => 3 planes 1x1 16/0 [r16/r16/r16] (g/b/r) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva422p => 4 planes 2x1 8/0 [r8/r8/r8/r8] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva444p => 4 planes 1x1 8/0 [r8/r8/r8/r8] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva420p9be
[ 0.067][d][vo/gpu/opengl] yuva420p9 => 4 planes 2x2 16/-7 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva422p9be
[ 0.067][d][vo/gpu/opengl] yuva422p9 => 4 planes 2x1 16/-7 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva444p9be
[ 0.067][d][vo/gpu/opengl] yuva444p9 => 4 planes 1x1 16/-7 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva420p10be
[ 0.067][d][vo/gpu/opengl] yuva420p10 => 4 planes 2x2 16/-6 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva422p10be
[ 0.067][d][vo/gpu/opengl] yuva422p10 => 4 planes 2x1 16/-6 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva444p10be
[ 0.067][d][vo/gpu/opengl] yuva444p10 => 4 planes 1x1 16/-6 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva420p16be
[ 0.067][d][vo/gpu/opengl] yuva420p16 => 4 planes 2x2 16/0 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva422p16be
[ 0.067][d][vo/gpu/opengl] yuva422p16 => 4 planes 2x1 16/0 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva444p16be
[ 0.067][d][vo/gpu/opengl] yuva444p16 => 4 planes 1x1 16/0 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] xyz12 => 1 planes 1x1 16/4 [rgb16] (rgb) [unorm]
[ 0.067][d][vo/gpu/opengl] xyz12be
[ 0.067][d][vo/gpu/opengl] nv16 => 2 planes 2x1 8/0 [r8/rg8] (r/gb) [unorm]
[ 0.067][d][vo/gpu/opengl] nv20 => 2 planes 2x1 16/-6 [r16/rg16] (r/gb) [unorm]
[ 0.067][d][vo/gpu/opengl] nv20be
[ 0.067][d][vo/gpu/opengl] rgba64be
[ 0.067][d][vo/gpu/opengl] bgra64be
[ 0.067][d][vo/gpu/opengl] bgra64 => 1 planes 1x1 16/0 [rgba16] (bgra) [unorm]
[ 0.067][d][vo/gpu/opengl] yvyu422
[ 0.067][d][vo/gpu/opengl] ya16be
[ 0.067][d][vo/gpu/opengl] ya16 => 1 planes 1x1 16/0 [rg16] (ra) [unorm]
[ 0.067][d][vo/gpu/opengl] gbrap => 4 planes 1x1 8/0 [r8/r8/r8/r8] (g/b/r/a) [unorm]
[ 0.067][d][vo/gpu/opengl] gbrap16be
[ 0.067][d][vo/gpu/opengl] gbrap16 => 4 planes 1x1 16/0 [r16/r16/r16/r16] (g/b/r/a) [unorm]
[ 0.067][d][vo/gpu/opengl] qsv
[ 0.067][d][vo/gpu/opengl] d3d11va_vld
[ 0.067][d][vo/gpu/opengl] yuv420p12be
[ 0.067][d][vo/gpu/opengl] yuv420p12 => 3 planes 2x2 16/-4 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv420p14be
[ 0.067][d][vo/gpu/opengl] yuv420p14 => 3 planes 2x2 16/-2 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv422p12be
[ 0.067][d][vo/gpu/opengl] yuv422p12 => 3 planes 2x1 16/-4 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv422p14be
[ 0.067][d][vo/gpu/opengl] yuv422p14 => 3 planes 2x1 16/-2 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv444p12be
[ 0.067][d][vo/gpu/opengl] yuv444p12 => 3 planes 1x1 16/-4 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv444p14be
[ 0.067][d][vo/gpu/opengl] yuv444p14 => 3 planes 1x1 16/-2 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] gbrp12be
[ 0.067][d][vo/gpu/opengl] gbrp12 => 3 planes 1x1 16/-4 [r16/r16/r16] (g/b/r) [unorm]
[ 0.067][d][vo/gpu/opengl] gbrp14be
[ 0.067][d][vo/gpu/opengl] gbrp14 => 3 planes 1x1 16/-2 [r16/r16/r16] (g/b/r) [unorm]
[ 0.067][d][vo/gpu/opengl] yuvj411p => 3 planes 4x1 8/0 [r8/r8/r8] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] bayer_bggr8
[ 0.067][d][vo/gpu/opengl] bayer_rggb8
[ 0.067][d][vo/gpu/opengl] bayer_gbrg8
[ 0.067][d][vo/gpu/opengl] bayer_grbg8
[ 0.067][d][vo/gpu/opengl] bayer_bggr16
[ 0.067][d][vo/gpu/opengl] bayer_bggr16be
[ 0.067][d][vo/gpu/opengl] bayer_rggb16
[ 0.067][d][vo/gpu/opengl] bayer_rggb16be
[ 0.067][d][vo/gpu/opengl] bayer_gbrg16
[ 0.067][d][vo/gpu/opengl] bayer_gbrg16be
[ 0.067][d][vo/gpu/opengl] bayer_grbg16
[ 0.067][d][vo/gpu/opengl] bayer_grbg16be
[ 0.067][d][vo/gpu/opengl] xvmc
[ 0.067][d][vo/gpu/opengl] yuv440p10 => 3 planes 1x2 16/-6 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv440p10be
[ 0.067][d][vo/gpu/opengl] yuv440p12 => 3 planes 1x2 16/-4 [r16/r16/r16] (r/g/b) [unorm]
[ 0.067][d][vo/gpu/opengl] yuv440p12be
[ 0.067][d][vo/gpu/opengl] ayuv64 => 1 planes 1x1 16/0 [rgba16] (argb) [unorm]
[ 0.067][d][vo/gpu/opengl] ayuv64be
[ 0.067][d][vo/gpu/opengl] p010be
[ 0.067][d][vo/gpu/opengl] gbrap12be
[ 0.067][d][vo/gpu/opengl] gbrap12 => 4 planes 1x1 16/-4 [r16/r16/r16/r16] (g/b/r/a) [unorm]
[ 0.067][d][vo/gpu/opengl] gbrap10be
[ 0.067][d][vo/gpu/opengl] gbrap10 => 4 planes 1x1 16/-6 [r16/r16/r16/r16] (g/b/r/a) [unorm]
[ 0.067][d][vo/gpu/opengl] gray12be
[ 0.067][d][vo/gpu/opengl] gray12 => 1 planes 1x1 16/-4 [r16] (r) [unorm]
[ 0.067][d][vo/gpu/opengl] gray10be
[ 0.067][d][vo/gpu/opengl] gray10 => 1 planes 1x1 16/-6 [r16] (r) [unorm]
[ 0.067][d][vo/gpu/opengl] p016 => 2 planes 2x2 16/0 [r16/rg16] (r/gb) [unorm]
[ 0.067][d][vo/gpu/opengl] p016be
[ 0.067][d][vo/gpu/opengl] gray9be
[ 0.067][d][vo/gpu/opengl] gray9 => 1 planes 1x1 16/-7 [r16] (r) [unorm]
[ 0.067][d][vo/gpu/opengl] gbrpf32be
[ 0.067][d][vo/gpu/opengl] gbrpf32 => 3 planes 1x1 32/0 [r16f/r16f/r16f] (g/b/r) [float]
[ 0.067][d][vo/gpu/opengl] gbrapf32be
[ 0.067][d][vo/gpu/opengl] gbrapf32 => 4 planes 1x1 32/0 [r16f/r16f/r16f/r16f] (g/b/r/a) [float]
[ 0.067][d][vo/gpu/opengl] opencl
[ 0.067][d][vo/gpu/opengl] gray14be
[ 0.067][d][vo/gpu/opengl] gray14 => 1 planes 1x1 16/-2 [r16] (r) [unorm]
[ 0.067][d][vo/gpu/opengl] grayf32be
[ 0.067][d][vo/gpu/opengl] grayf32 => 1 planes 1x1 32/0 [r16f] (r) [float]
[ 0.067][d][vo/gpu/opengl] yuva422p12be
[ 0.067][d][vo/gpu/opengl] yuva422p12 => 4 planes 2x1 16/-4 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] yuva444p12be
[ 0.067][d][vo/gpu/opengl] yuva444p12 => 4 planes 1x1 16/-4 [r16/r16/r16/r16] (r/g/b/a) [unorm]
[ 0.067][d][vo/gpu/opengl] nv24 => 2 planes 1x1 8/0 [r8/rg8] (r/gb) [unorm]
[ 0.067][d][vo/gpu/opengl] nv42 => 2 planes 1x1 8/0 [r8/rg8] (r/bg) [unorm]
[ 0.067][d][vo/gpu/opengl] vulkan
[ 0.067][d][vo/gpu/opengl] y210be
[ 0.067][d][vo/gpu/opengl] y210
[ 0.067][d][vo/gpu/opengl] x2rgb10be
[ 0.067][d][vo/gpu/opengl] x2bgr10
[ 0.067][d][vo/gpu/opengl] x2bgr10be
[ 0.067][d][vo/gpu/opengl] p210be
[ 0.067][d][vo/gpu/opengl] p210 => 2 planes 2x1 16/6 [r16/rg16] (r/gb) [unorm]
[ 0.067][d][vo/gpu/opengl] p410be
[ 0.067][d][vo/gpu/opengl] p410 => 2 planes 1x1 16/6 [r16/rg16] (r/gb) [unorm]
[ 0.067][d][vo/gpu/opengl] p216be
[ 0.067][d][vo/gpu/opengl] p216 => 2 planes 2x1 16/0 [r16/rg16] (r/gb) [unorm]
[ 0.067][d][vo/gpu/opengl] p416be
[ 0.067][d][vo/gpu/opengl] p416 => 2 planes 1x1 16/0 [r16/rg16] (r/gb) [unorm]
[ 0.067][v][vo/gpu] Testing FBO format rgba16f
[ 0.067][d][vo/gpu] Resizing texture: 16x16
[ 0.067][v][vo/gpu] Using FBO format rgba16f.
[ 0.067][v][vo/gpu] No advanced processing required. Enabling dumb mode.
[ 0.067][v][vo/gpu] Assuming 59.925664 FPS for display sync.
[ 0.067][v][vd] Container reported FPS: 23.976024
[ 0.067][v][vd] Codec list:
[ 0.067][v][vd] h264 - H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
[ 0.067][v][vd] h264_v4l2m2m (h264) - V4L2 mem2mem H.264 decoder wrapper
[ 0.067][v][vd] Opening decoder h264
[ 0.067][v][vd] Looking at hwdec h264-vaapi...
[ 0.067][v][vo/gpu] Loading hwdec drivers for format: 'vaapi'
[ 0.067][v][vo/gpu] Loading hwdec driver 'vaapi'
[ 0.067][v][vo/gpu/vaapi] using EGL dmabuf interop
[ 0.067][v][vo/gpu/vaapi] Trying to open a x11 VA display...
[ 0.067][d][vo/gpu/vaapi/vaapi] libva: VA-API version 1.14.0
[ 0.067][d][vo/gpu/vaapi/vaapi] libva: User environment variable requested driver 'radeonsi'
[ 0.067][d][vo/gpu/vaapi/vaapi] libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
[ 0.079][d][vo/gpu/vaapi/vaapi] libva: Found init function __vaDriverInit_1_14
[ 0.099][d][vo/gpu/vaapi/vaapi] libva: va_openDriver() returns 0
[ 0.099][v][vo/gpu/vaapi/vaapi] Initialized VAAPI: version 1.14
[ 0.099][d][ffmpeg] AVHWDeviceContext: VAAPI driver: Mesa Gallium driver 22.0.5 for AMD Radeon RX 6700 XT (navy_flounder, LLVM 13.0.1, DRM 3.42, 5.15.0-56-generic).
[ 0.099][d][ffmpeg] AVHWDeviceContext: Driver not found in known nonstandard list, using standard behaviour.
[ 0.099][v][vo/gpu/vaapi] Going to probe surface formats (may log bogus errors)...
[ 0.107][d][vo/gpu/vaapi] Failed to create mapper
[ 0.107][d][vo/gpu/vaapi] Unsupported format: yuyv422
[ 0.107][d][vo/gpu/vaapi] Failed to create mapper
[ 0.107][d][vo/gpu/vaapi] Unsupported format: uyvy422
[ 0.108][d][vo/gpu/vaapi] Supported formats:
[ 0.108][d][vo/gpu/vaapi] nv12
[ 0.108][d][vo/gpu/vaapi] p010
[ 0.108][d][vo/gpu/vaapi] yuv420p
[ 0.108][d][vo/gpu/vaapi] bgra
[ 0.108][d][vo/gpu/vaapi] rgba
[ 0.108][d][vo/gpu/vaapi] bgr0
[ 0.108][d][vo/gpu/vaapi] rgb0
[ 0.108][v][vo/gpu/vaapi] Done probing surface formats.
[ 0.108][v][vd] Trying hardware decoding via h264-vaapi.
[ 0.108][v][vd] Selected codec: h264 (H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10)
[ 0.108][v][vf] User filter list:
[ 0.108][v][vf] scale_vaapi (scale_vaapi.00)
[ 0.108][v][ad] Codec list:
[ 0.108][v][ad] aac - AAC (Advanced Audio Coding)
[ 0.108][v][ad] aac_fixed (aac) - AAC (Advanced Audio Coding)
[ 0.108][v][ad] Opening decoder aac
[ 0.109][v][ad] Requesting 1 threads for decoding.
[ 0.109][v][ad] Selected codec: aac (AAC (Advanced Audio Coding))
[ 0.110][v][af] User filter list:
[ 0.110][v][af] (empty)
[ 0.110][v][cplayer] Starting playback...
[ 0.110][v][file] stream level seek from 2388355169 to 3151979
[ 0.110][v][vd] Pixel formats supported by decoder: vdpau vaapi yuv420p
[ 0.110][v][vd] Codec profile: High (0x64)
[ 0.110][v][vd] Requesting pixfmt 'vaapi' from decoder.
[ 0.110][d][ffmpeg/video] h264: Reinit context to 1920x1088, pix_fmt: vaapi
[ 0.116][i][vd] Using hardware decoding (vaapi).
[ 0.116][v][vd] Decoder format: 1920x1080 vaapi[nv12] auto/auto/auto/auto/auto CL=mpeg2/4/h264
[ 0.116][v][vd] Using container aspect ratio.
[ 0.116][v][vf] [in] 1920x1080 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.116][v][vf] [userdeint] 1920x1080 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.116][v][vf] [userdeint] (disabled)
[ 0.116][v][vf] [scale_vaapi] 1920x1080 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.116][d][ffmpeg] mpv_src_default_in: w:1920 h:1080 pixfmt:vaapi tb:1/1000000 fr:24000/1001 sar:1/1
[ 0.116][v][lavfi] Configuring hwdec_interop=vaapi for filter graph: scale_vaapi
[ 0.124][v][vf] [autorotate] 1920x1080 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.124][v][vf] [autorotate] (disabled)
[ 0.124][v][vf] [convert] 1920x1080 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.124][v][vf] [convert] (disabled)
[ 0.124][v][vf] [out] 1920x1080 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.124][v][af] [in] 48000Hz stereo 2ch floatp
[ 0.124][v][af] [userspeed] 48000Hz stereo 2ch floatp
[ 0.124][v][af] [userspeed] (disabled)
[ 0.124][v][af] [convert] 48000Hz stereo 2ch floatp
[ 0.124][v][ao] Trying audio driver 'pulse'
[ 0.124][v][ao/pulse] requested format: 48000 Hz, stereo channels, floatp
[ 0.125][v][ao/pulse] Library version: 15.99.0
[ 0.125][v][ao/pulse] Proto: 35
[ 0.125][v][ao/pulse] Server proto: 4294967295
[ 0.125][v][ao/pulse] Channel layouts:
[ 0.125][v][ao/pulse] - #fl
[ 0.125][v][ao/pulse] - #fr
[ 0.125][v][ao/pulse] - #fc
[ 0.125][v][ao/pulse] - #lfe
[ 0.125][v][ao/pulse] - #bl
[ 0.125][v][ao/pulse] - #br
[ 0.125][v][ao/pulse] - #flc
[ 0.125][v][ao/pulse] - #frc
[ 0.125][v][ao/pulse] - #bc
[ 0.125][v][ao/pulse] - #sl
[ 0.125][v][ao/pulse] - #sr
[ 0.125][v][ao/pulse] - #tc
[ 0.125][v][ao/pulse] - #tfl
[ 0.125][v][ao/pulse] - #tfc
[ 0.125][v][ao/pulse] - #tfr
[ 0.125][v][ao/pulse] - #tbl
[ 0.125][v][ao/pulse] - #tbc
[ 0.125][v][ao/pulse] - #tbr
[ 0.125][v][ao/pulse] result: stereo
[ 0.126][v][ao/pulse] device buffer: 4800 samples.
[ 0.126][v][ao/pulse] using soft-buffer of 9600 samples.
[ 0.126][i][cplayer] AO: [pulse] 48000Hz stereo 2ch float
[ 0.126][v][cplayer] AO: Description: PulseAudio audio output
[ 0.126][v][autoconvert] inserting resampler
[ 0.126][v][swresample] format change, reinitializing resampler
[ 0.126][v][swresample] 48000Hz stereo floatp -> 48000Hz stereo float
[ 0.126][v][af] [out] 48000Hz stereo 2ch float
[ 0.126][i][cplayer] VO: [gpu] 1920x1080 vaapi[nv12]
[ 0.126][v][cplayer] VO: Description: Shader-based GPU Renderer
[ 0.126][v][vo/gpu] reconfig to 1920x1080 vaapi[nv12] bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.126][d][vo/gpu] max content size: 3200x1800
[ 0.126][d][vo/gpu] monitor size: 3200x1800
[ 0.127][v][vo/gpu/x11] not waiting for MapNotify
[ 0.127][v][vo/gpu] Resize: 1920x1080
[ 0.127][v][vo/gpu] Window size: 1920x1080 (Borders: l=0 t=0 r=0 b=0)
[ 0.127][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 0.127][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1920x1080
[ 0.127][v][vo/gpu] Video scale: 1.000000/1.000000
[ 0.127][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 0.127][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 0.127][v][vo/gpu] Reported display depth: 8
[ 0.127][v][vo/gpu] Testing FBO format rgba16f
[ 0.127][d][vo/gpu] Resizing texture: 16x16
[ 0.127][v][vo/gpu] Using FBO format rgba16f.
[ 0.127][v][vo/gpu] No advanced processing required. Enabling dumb mode.
[ 0.132][d][vo/gpu/opengl] vertex shader source:
[ 0.132][d][vo/gpu/opengl] [ 1] #version 440
[ 0.132][d][vo/gpu/opengl] [ 2] #define tex1D texture
[ 0.132][d][vo/gpu/opengl] [ 3] #define tex3D texture
[ 0.132][d][vo/gpu/opengl] [ 4] #define LUT_POS(x, lut_size) mix(0.5 / (lut_size), 1.0 - 0.5 / (lut_size), (x))
[ 0.132][d][vo/gpu/opengl] [ 5] in vec2 vertex_position;
[ 0.132][d][vo/gpu/opengl] [ 6] in vec2 vertex_texcoord0;
[ 0.132][d][vo/gpu/opengl] [ 7] out vec2 texcoord0;
[ 0.132][d][vo/gpu/opengl] [ 8] in vec2 vertex_texcoord1;
[ 0.132][d][vo/gpu/opengl] [ 9] out vec2 texcoord1;
[ 0.132][d][vo/gpu/opengl] [ 10] void main() {
[ 0.132][d][vo/gpu/opengl] [ 11] gl_Position = vec4(vertex_position, 1.0, 1.0);
[ 0.132][d][vo/gpu/opengl] [ 12] texcoord0 = vertex_texcoord0;
[ 0.132][d][vo/gpu/opengl] [ 13] texcoord1 = vertex_texcoord1;
[ 0.132][d][vo/gpu/opengl] [ 14] }
[ 0.132][d][vo/gpu/opengl] fragment shader source:
[ 0.132][d][vo/gpu/opengl] [ 1] #version 440
[ 0.132][d][vo/gpu/opengl] [ 2] #define tex1D texture
[ 0.132][d][vo/gpu/opengl] [ 3] #define tex3D texture
[ 0.132][d][vo/gpu/opengl] [ 4] #define LUT_POS(x, lut_size) mix(0.5 / (lut_size), 1.0 - 0.5 / (lut_size), (x))
[ 0.132][d][vo/gpu/opengl] [ 5] out vec4 out_color;
[ 0.132][d][vo/gpu/opengl] [ 6] in vec2 texcoord0;
[ 0.132][d][vo/gpu/opengl] [ 7] in vec2 texcoord1;
[ 0.132][d][vo/gpu/opengl] [ 8] layout(std140, binding=0) uniform UBO {
[ 0.132][d][vo/gpu/opengl] [ 9] layout(offset=0) mat3 colormatrix;
[ 0.132][d][vo/gpu/opengl] [ 10] layout(offset=48) vec3 colormatrix_c;
[ 0.132][d][vo/gpu/opengl] [ 11] layout(offset=64) vec3 src_luma;
[ 0.132][d][vo/gpu/opengl] [ 12] layout(offset=80) vec3 dst_luma;
[ 0.132][d][vo/gpu/opengl] [ 13] layout(offset=96) vec2 texture_size0;
[ 0.132][d][vo/gpu/opengl] [ 14] layout(offset=112) mat2 texture_rot0;
[ 0.132][d][vo/gpu/opengl] [ 15] layout(offset=144) vec2 texture_off0;
[ 0.132][d][vo/gpu/opengl] [ 16] layout(offset=152) vec2 pixel_size0;
[ 0.132][d][vo/gpu/opengl] [ 17] layout(offset=160) vec2 texture_size1;
[ 0.132][d][vo/gpu/opengl] [ 18] layout(offset=176) mat2 texture_rot1;
[ 0.132][d][vo/gpu/opengl] [ 19] layout(offset=208) vec2 texture_off1;
[ 0.132][d][vo/gpu/opengl] [ 20] layout(offset=216) vec2 pixel_size1;
[ 0.132][d][vo/gpu/opengl] [ 21] };
[ 0.132][d][vo/gpu/opengl] [ 22] uniform sampler2D texture0;
[ 0.132][d][vo/gpu/opengl] [ 23] uniform sampler2D texture1;
[ 0.132][d][vo/gpu/opengl] [ 24] void main() {
[ 0.132][d][vo/gpu/opengl] [ 25] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[ 0.132][d][vo/gpu/opengl] [ 26] color.r = 1.000000 * vec4(texture(texture0, texcoord0)).r;
[ 0.132][d][vo/gpu/opengl] [ 27] color.gb = 1.000000 * vec4(texture(texture1, texcoord1)).rg;
[ 0.132][d][vo/gpu/opengl] [ 28] color = color.rgbr;
[ 0.132][d][vo/gpu/opengl] [ 29] color.rgb = mat3(colormatrix) * color.rgb + colormatrix_c;
[ 0.132][d][vo/gpu/opengl] [ 30] color.a = 1.0;
[ 0.132][d][vo/gpu/opengl] [ 31] // color mapping
[ 0.132][d][vo/gpu/opengl] [ 32] color.rgb *= vec3(1.000000);
[ 0.132][d][vo/gpu/opengl] [ 33] color.rgb *= vec3(1.000000);
[ 0.132][d][vo/gpu/opengl] [ 34] out_color = color;
[ 0.132][d][vo/gpu/opengl] [ 35] }
[ 0.133][d][vo/gpu/opengl] shader link log (status=1):
[ 0.140][v][cplayer] first video frame after restart shown
[ 0.140][v][cplayer] audio ready
[ 0.140][d][cplayer] starting video playback
[ 0.140][v][cplayer] delaying audio start 0.000000 vs. 0.000000, diff=0.000000
[ 0.140][v][cplayer] playback restart complete @ 0.000000, audio=ready, video=playing
[ 0.141][v][cplayer] starting audio playback
[ 0.141][v][ao/pulse] starting AO
[ 0.141][v][vo/gpu/x11] Disabling screensaver.
[ 4.785][v][vo/gpu] Resize: 1919x1079
[ 4.787][v][vo/gpu] Window size: 1919x1079 (Borders: l=0 t=0 r=0 b=0)
[ 4.787][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 4.787][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1918x1079
[ 4.787][v][vo/gpu] Video scale: 0.998958/0.999074
[ 4.787][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 4.787][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 4.787][v][vo/gpu] Reported display depth: 8
[ 4.827][v][vo/gpu] Resize: 1918x1078
[ 4.827][v][vo/gpu] Window size: 1918x1078 (Borders: l=0 t=0 r=0 b=0)
[ 4.827][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 4.827][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (1, 0) 1916x1078
[ 4.827][v][vo/gpu] Video scale: 0.997917/0.998148
[ 4.827][v][vo/gpu] OSD borders: l=1 t=0 r=1 b=0
[ 4.827][v][vo/gpu] Video borders: l=1 t=0 r=1 b=0
[ 4.827][v][vo/gpu] Reported display depth: 8
[ 4.869][v][vo/gpu] Resize: 1901x1069
[ 4.869][v][vo/gpu] Window size: 1901x1069 (Borders: l=0 t=0 r=0 b=0)
[ 4.869][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 4.869][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1900x1069
[ 4.869][v][vo/gpu] Video scale: 0.989583/0.989815
[ 4.869][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 4.869][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 4.869][v][vo/gpu] Reported display depth: 8
[ 4.911][v][vo/gpu] Resize: 1822x1024
[ 4.911][v][vo/gpu] Window size: 1822x1024 (Borders: l=0 t=0 r=0 b=0)
[ 4.911][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 4.911][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (1, 0) 1820x1024
[ 4.911][v][vo/gpu] Video scale: 0.947917/0.948148
[ 4.911][v][vo/gpu] OSD borders: l=1 t=0 r=1 b=0
[ 4.911][v][vo/gpu] Video borders: l=1 t=0 r=1 b=0
[ 4.911][v][vo/gpu] Reported display depth: 8
[ 4.952][v][vo/gpu] Resize: 1670x939
[ 4.952][v][vo/gpu] Window size: 1670x939 (Borders: l=0 t=0 r=0 b=0)
[ 4.952][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 4.952][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1669x939
[ 4.952][v][vo/gpu] Video scale: 0.869271/0.869444
[ 4.952][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 4.952][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 4.952][v][vo/gpu] Reported display depth: 8
[ 4.994][v][vo/gpu] Resize: 1562x878
[ 4.994][v][vo/gpu] Window size: 1562x878 (Borders: l=0 t=0 r=0 b=0)
[ 4.994][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 4.994][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (1, 0) 1560x878
[ 4.994][v][vo/gpu] Video scale: 0.812500/0.812963
[ 4.994][v][vo/gpu] OSD borders: l=1 t=0 r=1 b=0
[ 4.994][v][vo/gpu] Video borders: l=1 t=0 r=1 b=0
[ 4.994][v][vo/gpu] Reported display depth: 8
[ 5.036][v][vo/gpu] Resize: 1467x825
[ 5.036][v][vo/gpu] Window size: 1467x825 (Borders: l=0 t=0 r=0 b=0)
[ 5.036][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 5.036][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1466x825
[ 5.036][v][vo/gpu] Video scale: 0.763542/0.763889
[ 5.036][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 5.036][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 5.036][v][vo/gpu] Reported display depth: 8
[ 5.077][v][vo/gpu] Resize: 1415x796
[ 5.077][v][vo/gpu] Window size: 1415x796 (Borders: l=0 t=0 r=0 b=0)
[ 5.077][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 5.077][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1415x796
[ 5.077][v][vo/gpu] Video scale: 0.736979/0.737037
[ 5.077][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 5.077][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 5.077][v][vo/gpu] Reported display depth: 8
[ 5.119][v][vo/gpu] Resize: 1406x791
[ 5.119][v][vo/gpu] Window size: 1406x791 (Borders: l=0 t=0 r=0 b=0)
[ 5.120][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 5.120][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1406x791
[ 5.120][v][vo/gpu] Video scale: 0.732292/0.732407
[ 5.120][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 5.120][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 5.120][v][vo/gpu] Reported display depth: 8
[ 5.161][v][vo/gpu] Resize: 1379x776
[ 5.161][v][vo/gpu] Window size: 1379x776 (Borders: l=0 t=0 r=0 b=0)
[ 5.161][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 5.161][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1379x776
[ 5.161][v][vo/gpu] Video scale: 0.718229/0.718519
[ 5.161][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 5.161][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 5.161][v][vo/gpu] Reported display depth: 8
[ 5.203][v][vo/gpu] Resize: 1343x755
[ 5.203][v][vo/gpu] Window size: 1343x755 (Borders: l=0 t=0 r=0 b=0)
[ 5.203][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 5.203][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1342x755
[ 5.203][v][vo/gpu] Video scale: 0.698958/0.699074
[ 5.203][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 5.203][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 5.203][v][vo/gpu] Reported display depth: 8
[ 5.245][v][vo/gpu] Resize: 1315x740
[ 5.245][v][vo/gpu] Window size: 1315x740 (Borders: l=0 t=0 r=0 b=0)
[ 5.245][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 5.245][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1315x740
[ 5.245][v][vo/gpu] Video scale: 0.684896/0.685185
[ 5.245][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 5.245][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 5.245][v][vo/gpu] Reported display depth: 8
[ 5.287][v][vo/gpu] Resize: 1293x727
[ 5.287][v][vo/gpu] Window size: 1293x727 (Borders: l=0 t=0 r=0 b=0)
[ 5.287][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 5.287][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1292x727
[ 5.287][v][vo/gpu] Video scale: 0.672917/0.673148
[ 5.287][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 5.287][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 5.287][v][vo/gpu] Reported display depth: 8
[ 5.328][v][vo/gpu] Resize: 1283x721
[ 5.328][v][vo/gpu] Window size: 1283x721 (Borders: l=0 t=0 r=0 b=0)
[ 5.328][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 5.328][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (1, 0) 1281x721
[ 5.328][v][vo/gpu] Video scale: 0.667188/0.667593
[ 5.328][v][vo/gpu] OSD borders: l=1 t=0 r=1 b=0
[ 5.328][v][vo/gpu] Video borders: l=1 t=0 r=1 b=0
[ 5.328][v][vo/gpu] Reported display depth: 8
[ 6.370][v][vo/gpu] Resize: 1281x720
[ 6.370][v][vo/gpu] Window size: 1281x720 (Borders: l=0 t=0 r=0 b=0)
[ 6.370][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 6.370][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1280x720
[ 6.370][v][vo/gpu] Video scale: 0.666667/0.666667
[ 6.370][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 6.370][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 6.370][v][vo/gpu] Reported display depth: 8
[ 6.412][v][vo/gpu] Resize: 1261x709
[ 6.412][v][vo/gpu] Window size: 1261x709 (Borders: l=0 t=0 r=0 b=0)
[ 6.412][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 6.412][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1260x709
[ 6.412][v][vo/gpu] Video scale: 0.656250/0.656481
[ 6.412][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 6.412][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 6.412][v][vo/gpu] Reported display depth: 8
[ 6.454][v][vo/gpu] Resize: 1170x658
[ 6.454][v][vo/gpu] Window size: 1170x658 (Borders: l=0 t=0 r=0 b=0)
[ 6.454][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 6.454][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1169x658
[ 6.454][v][vo/gpu] Video scale: 0.608854/0.609259
[ 6.454][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 6.454][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 6.454][v][vo/gpu] Reported display depth: 8
[ 6.496][v][vo/gpu] Resize: 1004x565
[ 6.496][v][vo/gpu] Window size: 1004x565 (Borders: l=0 t=0 r=0 b=0)
[ 6.496][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 6.496][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1004x565
[ 6.496][v][vo/gpu] Video scale: 0.522917/0.523148
[ 6.496][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 6.496][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 6.496][v][vo/gpu] Reported display depth: 8
[ 6.537][v][vo/gpu] Resize: 909x511
[ 6.537][v][vo/gpu] Window size: 909x511 (Borders: l=0 t=0 r=0 b=0)
[ 6.537][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 6.537][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 908x511
[ 6.537][v][vo/gpu] Video scale: 0.472917/0.473148
[ 6.537][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 6.537][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 6.537][v][vo/gpu] Reported display depth: 8
[ 6.579][v][vo/gpu] Resize: 873x491
[ 6.579][v][vo/gpu] Window size: 873x491 (Borders: l=0 t=0 r=0 b=0)
[ 6.579][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 6.579][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 872x491
[ 6.579][v][vo/gpu] Video scale: 0.454167/0.454630
[ 6.579][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 6.579][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 6.579][v][vo/gpu] Reported display depth: 8
[ 6.621][v][vo/gpu] Resize: 845x476
[ 6.621][v][vo/gpu] Window size: 845x476 (Borders: l=0 t=0 r=0 b=0)
[ 6.621][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 6.621][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 845x475
[ 6.621][v][vo/gpu] Video scale: 0.440104/0.439815
[ 6.621][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=1
[ 6.621][v][vo/gpu] Video borders: l=0 t=0 r=0 b=1
[ 6.621][v][vo/gpu] Reported display depth: 8
[ 6.663][v][vo/gpu] Resize: 830x467
[ 6.663][v][vo/gpu] Window size: 830x467 (Borders: l=0 t=0 r=0 b=0)
[ 6.663][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 6.663][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 830x467
[ 6.663][v][vo/gpu] Video scale: 0.432292/0.432407
[ 6.663][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 6.663][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 6.663][v][vo/gpu] Reported display depth: 8
[ 6.705][v][vo/gpu] Resize: 826x464
[ 6.705][v][vo/gpu] Window size: 826x464 (Borders: l=0 t=0 r=0 b=0)
[ 6.705][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 6.705][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (1, 0) 824x464
[ 6.705][v][vo/gpu] Video scale: 0.429167/0.429630
[ 6.705][v][vo/gpu] OSD borders: l=1 t=0 r=1 b=0
[ 6.705][v][vo/gpu] Video borders: l=1 t=0 r=1 b=0
[ 6.705][v][vo/gpu] Reported display depth: 8
[ 7.330][v][vo/gpu] Resize: 829x466
[ 7.330][v][vo/gpu] Window size: 829x466 (Borders: l=0 t=0 r=0 b=0)
[ 7.330][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 7.330][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 828x466
[ 7.330][v][vo/gpu] Video scale: 0.431250/0.431481
[ 7.330][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 7.330][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 7.330][v][vo/gpu] Reported display depth: 8
[ 7.371][v][vo/gpu] Resize: 848x477
[ 7.371][v][vo/gpu] Window size: 848x477 (Borders: l=0 t=0 r=0 b=0)
[ 7.371][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 7.371][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 848x477
[ 7.371][v][vo/gpu] Video scale: 0.441667/0.441667
[ 7.371][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 7.371][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 7.371][v][vo/gpu] Reported display depth: 8
[ 7.413][v][vo/gpu] Resize: 918x517
[ 7.413][v][vo/gpu] Window size: 918x517 (Borders: l=0 t=0 r=0 b=0)
[ 7.413][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 7.413][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 918x516
[ 7.413][v][vo/gpu] Video scale: 0.478125/0.477778
[ 7.413][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=1
[ 7.413][v][vo/gpu] Video borders: l=0 t=0 r=0 b=1
[ 7.413][v][vo/gpu] Reported display depth: 8
[ 7.455][v][vo/gpu] Resize: 1047x589
[ 7.455][v][vo/gpu] Window size: 1047x589 (Borders: l=0 t=0 r=0 b=0)
[ 7.455][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 7.455][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1047x589
[ 7.455][v][vo/gpu] Video scale: 0.545312/0.545370
[ 7.455][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 7.455][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 7.455][v][vo/gpu] Reported display depth: 8
[ 7.497][v][vo/gpu] Resize: 1208x679
[ 7.497][v][vo/gpu] Window size: 1208x679 (Borders: l=0 t=0 r=0 b=0)
[ 7.497][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 7.497][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1207x679
[ 7.497][v][vo/gpu] Video scale: 0.628646/0.628704
[ 7.497][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 7.497][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 7.497][v][vo/gpu] Reported display depth: 8
[ 7.538][v][vo/gpu] Resize: 1359x764
[ 7.538][v][vo/gpu] Window size: 1359x764 (Borders: l=0 t=0 r=0 b=0)
[ 7.538][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 7.538][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1358x764
[ 7.538][v][vo/gpu] Video scale: 0.707292/0.707407
[ 7.538][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 7.538][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 7.538][v][vo/gpu] Reported display depth: 8
[ 7.580][v][vo/gpu] Resize: 1468x826
[ 7.580][v][vo/gpu] Window size: 1468x826 (Borders: l=0 t=0 r=0 b=0)
[ 7.580][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 7.580][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1468x826
[ 7.580][v][vo/gpu] Video scale: 0.764583/0.764815
[ 7.580][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 7.580][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 7.580][v][vo/gpu] Reported display depth: 8
[ 7.623][v][vo/gpu] Resize: 1570x883
[ 7.623][v][vo/gpu] Window size: 1570x883 (Borders: l=0 t=0 r=0 b=0)
[ 7.623][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 7.623][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1569x883
[ 7.623][v][vo/gpu] Video scale: 0.817187/0.817593
[ 7.623][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 7.623][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 7.623][v][vo/gpu] Reported display depth: 8
[ 7.664][v][vo/gpu] Resize: 1629x916
[ 7.664][v][vo/gpu] Window size: 1629x916 (Borders: l=0 t=0 r=0 b=0)
[ 7.664][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 7.664][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1628x916
[ 7.664][v][vo/gpu] Video scale: 0.847917/0.848148
[ 7.664][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 7.664][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 7.664][v][vo/gpu] Reported display depth: 8
[ 7.705][v][vo/gpu] Resize: 1677x943
[ 7.705][v][vo/gpu] Window size: 1677x943 (Borders: l=0 t=0 r=0 b=0)
[ 7.705][v][vo/gpu] Video source: 1920x1080 (1:1)
[ 7.705][v][vo/gpu] Video display: (0, 0) 1920x1080 -> (0, 0) 1676x943
[ 7.705][v][vo/gpu] Video scale: 0.872917/0.873148
[ 7.705][v][vo/gpu] OSD borders: l=0 t=0 r=1 b=0
[ 7.705][v][vo/gpu] Video borders: l=0 t=0 r=1 b=0
[ 7.705][v][vo/gpu] Reported display depth: 8
[ 10.958][d][cplayer] Run command: quit, flags=73, args=[code="0"]
[ 10.960][v][cplayer] EOF code: 5
[ 10.960][d][ad] Uninit decoder.
[ 10.960][v][vo/gpu/x11] Enabling screensaver.
[ 10.960][d][vd] Uninit decoder.
[ 10.960][d][cplayer] Terminating demuxers...
[ 10.960][d][cplayer] Done terminating demuxers.
[ 10.960][v][cplayer] finished playback, success (reason 3)
[ 10.960][i][cplayer]
[ 10.960][i][cplayer] Exiting... (Quit)
[ 10.961][d][vo/gpu] flushing shader cache
[ 10.965][d][vo/gpu/x11] uninit ...

@CounterPillow
Copy link
Contributor

CounterPillow commented Dec 26, 2022

mpv should use these hardware based functions to handle scaling

Hell no. If you want shit quality output, you can always use the vaapi VO, but don't sully vo_gpu with this.

The thing you link to is specific to d3d12 so I'm not sure why you're linking it?

@nyanmisaka
Copy link

The MR you linked is only for WSL. It won't work for Linux host.

@LaserEyess
Copy link
Contributor

There's also --vo=dmabuf-wayland which when combined with --hwdec=vaapi will use hardware scaling. It's specifically designed for your usecase: bad quality but low power.

@lavilao
Copy link

lavilao commented Dec 26, 2022

@LaserEyess does --vo=dmabuf-wayland uses hw scaling? thats new, is there a way to configure it?
@PeytonLee616 I think it works hw scaling works in intel vaapi, you just have to specify the target resolution ej of hw filters:
mpv -no-config -hwdec=auto -gpu-api=vulkan -vf=scale_vaapi=1366:768:nv12:hq,deinterlace_vaapi=motion_compensated:2

@LaserEyess
Copy link
Contributor

It uses fixed function hardware scaling, not vavpp, but actual display hardware color conversion and scaling (bilinear). It is pretty much the least amount of power (in theory) possible to display a frame to the display.

@lavilao
Copy link

lavilao commented Dec 26, 2022

It uses fixed function hardware scaling, not vavpp, but actual display hardware color conversion and scaling (bilinear). It is pretty much the least amount of power (in theory) possible to display a frame to the display.

Shame, I thought it was like dxva-hd or d3d11va scaling.

@PeytonLee616
Copy link
Author

Sorry for the misunderstanding, I put this link to show that the MESA frontend layer has additional support for hardware scaling. (maybe d3d12 is the only one who is supported now)
But when I use a command like "-vf=scale_vaapi=1366:768", ffmpeg will always output the video with resolution 1366:768.
If I change the viewport size of MPV to 4K, the result of VAAPI (or should I say ffmpeg) is still 1366:768. Finally MPV seems to use the GPU to scale the movie to its final size (4K).
Is it possible to avoid using GPU or CPU but just hardware scaler?

@LaserEyess
Copy link
Contributor

Your feature request is already implemented. Use --vo=vaapi --hwdec=vaapi for using vaapi scaling and color conversion. For raw dmabufs to the screen (display hardware, even less power usage than vaapi) use --vo=dmabuf-wayland --hwdec=vaapi.

--vo=gpu{,-next} is explicitly for high quality rendering, so it is expected to use more GPU than other vos. If you don't want that, don't use it.

@PeytonLee616
Copy link
Author

@LaserEyess
Thanks your reply.
I have tried to use --vo=vaapi --hwdec=vaapi and then MPV seems to use vaPutSurface() to complete the scaling and color conversion.
The patch of microsoft implements the video post processing within vaRenderPicture(). That's why I wonder if there is a chance for MPV to use vaRenderPicture() to automatically handle scaling and color conversion.

@LaserEyess
Copy link
Contributor

I don't know much about the libva API, but vaPutSurface seems to be an X11 specific call because --vo=vaapi is x11 specific. However, once again this feature is already implemented in mpv . Mpv is never, ever, ever going to replace high quality rendering in --vo=gpu{,-next} with shitty vavpp stuff. Just don't even bother asking. If you think mpv is not using --vo=vaapi correctly then be specific about what is wrong with it. Why is vaRenderPicture() better?

@PeytonLee616
Copy link
Author

I am not saying it's not correctly using --vo=vaapi.
What I want to say is that microsoft patch has added a new video post processing in vaRenderPicture(), which allows application using hardware based scaling and color conversion. I think this is a new feature in VAAPI, so it's normal if MPV didn't use it before.
If the hardware based scaling in vaRenderPicture() is used, CPU/GPU power can be saved, even if the picture quality is poor.
That's the original idea I requested.

@LaserEyess
Copy link
Contributor

LaserEyess commented Jan 3, 2023

What I want to say is that microsoft patch has added a new video post processing in vaRenderPicture(), which allows application using hardware based scaling and color conversion.

This part, in bold, is already implemented. If you use --vo=vaapi you are using "hardware based scaling and color conversion".

I think this is a new feature in VAAPI, so it's normal if MPV didn't use it before.

You are wrong, this is not a new feature, vaapi has always had this. I even linked you the --vo-vaapi-scaling option which lets you control which hardware scaler it uses. Hardware color conversion is automatic and therefore it is impossible to use "another" one. But I assure you it is working, because you aren't complaining that the colors look abnormally washed out.

Unless you can explain exactly what new API features vaRenderPicture() is using and what "new" stuff it adds, then I can only keep telling you that the feature you want is already implemented in mpv. I literally cannot be any clearer than this.

EDIT: If you want to explain what - specifically, exactly, and in detail - vaRenderPicture() is doing that vaPutSurface() is not, then that is what your feature request will be. But if you say "vaRenderPicture() does hardware scaling" then sorry but that's not a compelling argument because vaPutSurface() already does that.

@PeytonLee616
Copy link
Author

Got your point, thanks. I explained in the wrong way. Let I try to explain in detail, and please let me know if i am wrong.

After microsoft's patch merged, you can see there is a new function vlVaVidEngineBlit() in postproc.c. The order of the process is vlVaRenderPicture() -> vlVaHandleVAProcPipelineParameterBufferType() -> vlVaVidEngineBlit().
And in vlVaVidEngineBlit(), the process is re-directed to use graphic card's specified hardware IP for handling scaling, fliping, color conversion, etc.

in vaPutSurface() surface.c, the process uses compositor for hanling scaling and color conversion.

My understanding is that compositor's task should be done by GPU. And using a specified purpose hardware IP instead of GPU should save more power and give more performance.

@LaserEyess
Copy link
Contributor

Did you even read this issue?

  1. mpv already supports VAVPP, and if you want to use that on your laptop you can
  2. --vo=gpu{,-next} is not for low power, if you want low power use something else

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants