Git Product home page Git Product logo

Comments (40)

dilworks avatar dilworks commented on August 13, 2024

Is this related to missing hardware video decoding?

not implemented: PPB_VideoDecoder(Dev);0.16

so far, the usual workarounds/config edits for Flash for enabling VDPAU don't seem to work here.

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

Is this related to missing hardware video decoding?

Yes, it is. When the issue was opened there were no such messages in a log. They appeared after only after enable_hw_video_decode=1 was passed as "command line arguments" to Flash player. Now when it asks for appropriate interface, there is high probability it will work once those interfaces get implemented (both PPB_VideoDecoder(Dev) and PPP_VideoDecoder(Dev)).

the usual workarounds/config edits for Flash for enabling VDPAU don't seem to work here.

Pepper Flash uses solely PPAPI for every interaction with browser and/or OS. Since Chromium runs PPAPI plug-ins in a sandbox, there is no way to directly use system level API, such as VDPAU.

from freshplayerplugin.

simonbcn avatar simonbcn commented on August 13, 2024

Ubuntu 14.04 64 bits
NVIDIA proprietary drivers installed, downloaded from NVIDIA website
PepperFlash version 16.0.0.305

My /etc/freshwrapper.conf:

# "Command-line" arguments for Flash
flash_command_line = "enable_hw_video_decode=1,enable_stagevideo_auto=1"

# enable 3d and stage 3d
enable_3d = 1

# when set to 1, limits output to warnings and errors only
quiet = 1

# Enables DNS query case randomization to partially protect against DNS
# poisoning attacks. It was reported that some Mikrotik routers do not
# support this trick. Set parameter to 0 if you have an affected model
randomize_dns_case = 1

Where can I find a guide of these parameters? Why do I have to enable the 3D to enable the hardware acceleration?

In flash config is enabled:
20150304_13 06 07_01

But when I play any video this is showed in stats:
20150304_13 05 31_01

Why no hardware acceleration is enabled?

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

@simonbcn, I don't have an access to a machine with nVidia hardware at the moment, and only can guess.

Where can I find a guide of these parameters?

freshwrapper.conf.example is the only guide available (aside source code). flash_command_line and enable_3d are the values passed to PepperFlash when it asks for them.

Why do I have to enable the 3D to enable the hardware acceleration?

Because hardware acceleration is the same as OpenGL|ES 2 support. 3d for short. PepperFlash uses OpenGL|ES 2 to scale video. Video decoding interface is also depends on OpenGL|ES 2. But accelerated video decoding is not implemented.

Why no hardware acceleration is enabled?

GLES 2 should be available and it's probably not, on your machine. I currently use GLX to acquire context, but rather than GL, I ask for GLES 2, which is exposed by driver as GLX_ARB_create_context, GLX_ARB_create_context_profile, and GLX_EXT_create_context_es2_profile extensions. Ensure they are amongst server glx extensions in glxinfo output.

from freshplayerplugin.

simonbcn avatar simonbcn commented on August 13, 2024

That isn't the problem:

$ glxinfo 
name of display: :0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_multisample, GLX_EXT_buffer_age, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_framebuffer_sRGB, GLX_EXT_stereo_tree, GLX_EXT_swap_control, 
    GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_NV_delay_before_swap, 
    GLX_NV_float_buffer, GLX_NV_multisample_coverage, GLX_SGIX_fbconfig, 
    GLX_SGIX_pbuffer, GLX_SGI_swap_control, GLX_SGI_video_sync
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_buffer_age, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, 
    GLX_EXT_import_context, GLX_EXT_stereo_tree, GLX_EXT_swap_control, 
    GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_NV_copy_image, 
    GLX_NV_delay_before_swap, GLX_NV_float_buffer, 
    GLX_NV_multisample_coverage, GLX_NV_present_video, GLX_NV_swap_group, 
    GLX_NV_video_capture, GLX_NV_video_out, GLX_SGIX_fbconfig, 
    GLX_SGIX_pbuffer, GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_buffer_age, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_framebuffer_sRGB, GLX_EXT_stereo_tree, GLX_EXT_swap_control, 
    GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_NV_delay_before_swap, 
    GLX_NV_float_buffer, GLX_NV_multisample_coverage, GLX_SGIX_fbconfig, 
    GLX_SGIX_pbuffer, GLX_SGI_swap_control, GLX_SGI_video_sync
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 220/PCIe/SSE2
OpenGL core profile version string: 3.3.0 NVIDIA 340.76
OpenGL core profile shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
    GL_ARB_ES2_compatibility, GL_ARB_ES3_compatibility, 
    GL_ARB_arrays_of_arrays, GL_ARB_base_instance, GL_ARB_blend_func_extended, 
    GL_ARB_clear_buffer_object, GL_ARB_color_buffer_float, 
    GL_ARB_compressed_texture_pixel_storage, GL_ARB_conservative_depth, 
    GL_ARB_copy_buffer, GL_ARB_copy_image, GL_ARB_debug_output, 
    GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_depth_texture, 
    GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, 
    GL_ARB_draw_elements_base_vertex, 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_program, 
    GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, 
    GL_ARB_framebuffer_no_attachments, GL_ARB_framebuffer_object, 
    GL_ARB_framebuffer_sRGB, GL_ARB_geometry_shader4, 
    GL_ARB_get_program_binary, GL_ARB_half_float_pixel, 
    GL_ARB_half_float_vertex, GL_ARB_imaging, 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_multisample, 
    GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_occlusion_query2, 
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite, 
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex, 
    GL_ARB_robust_buffer_access_behavior, GL_ARB_robustness, 
    GL_ARB_sample_shading, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map, 
    GL_ARB_separate_shader_objects, GL_ARB_shader_bit_encoding, 
    GL_ARB_shader_objects, GL_ARB_shader_texture_lod, 
    GL_ARB_shading_language_100, GL_ARB_shading_language_420pack, 
    GL_ARB_shading_language_include, GL_ARB_shading_language_packing, 
    GL_ARB_shadow, GL_ARB_stencil_texturing, GL_ARB_sync, 
    GL_ARB_texture_border_clamp, GL_ARB_texture_buffer_object, 
    GL_ARB_texture_buffer_range, GL_ARB_texture_compression, 
    GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map, 
    GL_ARB_texture_cube_map_array, GL_ARB_texture_env_add, 
    GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, 
    GL_ARB_texture_env_dot3, GL_ARB_texture_float, GL_ARB_texture_gather, 
    GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat, 
    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_feedback_instanced, GL_ARB_transpose_matrix, 
    GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra, 
    GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_binding, 
    GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, 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_ARB_window_pos, GL_ATI_draw_buffers, 
    GL_ATI_texture_float, GL_ATI_texture_mirror_once, 
    GL_EXTX_framebuffer_mixed_formats, GL_EXT_Cg_shader, GL_EXT_abgr, 
    GL_EXT_bgra, GL_EXT_bindable_uniform, GL_EXT_blend_color, 
    GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, 
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array, 
    GL_EXT_depth_bounds_test, GL_EXT_direct_state_access, 
    GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_draw_range_elements, 
    GL_EXT_fog_coord, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, 
    GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object, 
    GL_EXT_framebuffer_sRGB, GL_EXT_geometry_shader4, 
    GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4, 
    GL_EXT_import_sync_object, GL_EXT_multi_draw_arrays, 
    GL_EXT_packed_depth_stencil, GL_EXT_packed_float, GL_EXT_packed_pixels, 
    GL_EXT_pixel_buffer_object, GL_EXT_point_parameters, 
    GL_EXT_provoking_vertex, GL_EXT_rescale_normal, GL_EXT_secondary_color, 
    GL_EXT_separate_shader_objects, GL_EXT_separate_specular_color, 
    GL_EXT_shader_integer_mix, GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, 
    GL_EXT_stencil_wrap, GL_EXT_texture3D, GL_EXT_texture_array, 
    GL_EXT_texture_buffer_object, GL_EXT_texture_compression_dxt1, 
    GL_EXT_texture_compression_latc, GL_EXT_texture_compression_rgtc, 
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, 
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, 
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, 
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_integer, 
    GL_EXT_texture_lod, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp, 
    GL_EXT_texture_object, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode, 
    GL_EXT_texture_shared_exponent, GL_EXT_texture_storage, 
    GL_EXT_texture_swizzle, GL_EXT_timer_query, GL_EXT_transform_feedback2, 
    GL_EXT_vertex_array, GL_EXT_vertex_array_bgra, GL_EXT_x11_sync_object, 
    GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, GL_KHR_debug, 
    GL_KTX_buffer_region, GL_NVX_conditional_render, GL_NVX_gpu_memory_info, 
    GL_NV_ES1_1_compatibility, GL_NV_blend_square, GL_NV_conditional_render, 
    GL_NV_copy_depth_to_color, GL_NV_copy_image, GL_NV_depth_buffer_float, 
    GL_NV_depth_clamp, GL_NV_explicit_multisample, GL_NV_fence, 
    GL_NV_float_buffer, GL_NV_fog_distance, GL_NV_fragment_program, 
    GL_NV_fragment_program2, GL_NV_fragment_program_option, 
    GL_NV_framebuffer_multisample_coverage, GL_NV_geometry_shader4, 
    GL_NV_gpu_program4, GL_NV_gpu_program4_1, GL_NV_half_float, 
    GL_NV_light_max_exponent, GL_NV_multisample_coverage, 
    GL_NV_multisample_filter_hint, GL_NV_occlusion_query, 
    GL_NV_packed_depth_stencil, GL_NV_parameter_buffer_object, 
    GL_NV_parameter_buffer_object2, GL_NV_path_rendering, 
    GL_NV_pixel_data_range, GL_NV_point_sprite, GL_NV_primitive_restart, 
    GL_NV_register_combiners, GL_NV_register_combiners2, 
    GL_NV_shader_buffer_load, GL_NV_texgen_reflection, GL_NV_texture_barrier, 
    GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4, 
    GL_NV_texture_expand_normal, GL_NV_texture_multisample, 
    GL_NV_texture_rectangle, GL_NV_texture_shader, GL_NV_texture_shader2, 
    GL_NV_texture_shader3, GL_NV_transform_feedback, 
    GL_NV_transform_feedback2, GL_NV_vdpau_interop, GL_NV_vertex_array_range, 
    GL_NV_vertex_array_range2, GL_NV_vertex_buffer_unified_memory, 
    GL_NV_vertex_program, GL_NV_vertex_program1_1, GL_NV_vertex_program2, 
    GL_NV_vertex_program2_option, GL_NV_vertex_program3, GL_S3_s3tc, 
    GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, GL_SGIX_depth_texture, 
    GL_SGIX_shadow, GL_SUN_slice_accum

OpenGL version string: 3.3.0 NVIDIA 340.76
OpenGL shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
    GL_ARB_ES2_compatibility, GL_ARB_ES3_compatibility, 
    GL_ARB_arrays_of_arrays, GL_ARB_base_instance, GL_ARB_blend_func_extended, 
    GL_ARB_clear_buffer_object, GL_ARB_color_buffer_float, 
    GL_ARB_compatibility, GL_ARB_compressed_texture_pixel_storage, 
    GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_copy_image, 
    GL_ARB_debug_output, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, 
    GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, 
    GL_ARB_draw_elements_base_vertex, 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_program, 
    GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, 
    GL_ARB_framebuffer_no_attachments, GL_ARB_framebuffer_object, 
    GL_ARB_framebuffer_sRGB, GL_ARB_geometry_shader4, 
    GL_ARB_get_program_binary, GL_ARB_half_float_pixel, 
    GL_ARB_half_float_vertex, GL_ARB_imaging, 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_multisample, 
    GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_occlusion_query2, 
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite, 
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex, 
    GL_ARB_robust_buffer_access_behavior, GL_ARB_robustness, 
    GL_ARB_sample_shading, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map, 
    GL_ARB_separate_shader_objects, GL_ARB_shader_bit_encoding, 
    GL_ARB_shader_objects, GL_ARB_shader_texture_lod, 
    GL_ARB_shading_language_100, GL_ARB_shading_language_420pack, 
    GL_ARB_shading_language_include, GL_ARB_shading_language_packing, 
    GL_ARB_shadow, GL_ARB_stencil_texturing, GL_ARB_sync, 
    GL_ARB_texture_border_clamp, GL_ARB_texture_buffer_object, 
    GL_ARB_texture_buffer_range, GL_ARB_texture_compression, 
    GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map, 
    GL_ARB_texture_cube_map_array, GL_ARB_texture_env_add, 
    GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, 
    GL_ARB_texture_env_dot3, GL_ARB_texture_float, GL_ARB_texture_gather, 
    GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat, 
    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_feedback_instanced, GL_ARB_transpose_matrix, 
    GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra, 
    GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_binding, 
    GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, 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_ARB_window_pos, GL_ATI_draw_buffers, 
    GL_ATI_texture_float, GL_ATI_texture_mirror_once, 
    GL_EXTX_framebuffer_mixed_formats, GL_EXT_Cg_shader, GL_EXT_abgr, 
    GL_EXT_bgra, GL_EXT_bindable_uniform, GL_EXT_blend_color, 
    GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, 
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array, 
    GL_EXT_depth_bounds_test, GL_EXT_direct_state_access, 
    GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_draw_range_elements, 
    GL_EXT_fog_coord, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, 
    GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object, 
    GL_EXT_framebuffer_sRGB, GL_EXT_geometry_shader4, 
    GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4, 
    GL_EXT_import_sync_object, GL_EXT_multi_draw_arrays, 
    GL_EXT_packed_depth_stencil, GL_EXT_packed_float, GL_EXT_packed_pixels, 
    GL_EXT_pixel_buffer_object, GL_EXT_point_parameters, 
    GL_EXT_provoking_vertex, GL_EXT_rescale_normal, GL_EXT_secondary_color, 
    GL_EXT_separate_shader_objects, GL_EXT_separate_specular_color, 
    GL_EXT_shader_integer_mix, GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, 
    GL_EXT_stencil_wrap, GL_EXT_texture3D, GL_EXT_texture_array, 
    GL_EXT_texture_buffer_object, GL_EXT_texture_compression_dxt1, 
    GL_EXT_texture_compression_latc, GL_EXT_texture_compression_rgtc, 
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, 
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, 
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, 
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_integer, 
    GL_EXT_texture_lod, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp, 
    GL_EXT_texture_object, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode, 
    GL_EXT_texture_shared_exponent, GL_EXT_texture_storage, 
    GL_EXT_texture_swizzle, GL_EXT_timer_query, GL_EXT_transform_feedback2, 
    GL_EXT_vertex_array, GL_EXT_vertex_array_bgra, GL_EXT_x11_sync_object, 
    GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, GL_KHR_debug, 
    GL_KTX_buffer_region, GL_NVX_conditional_render, GL_NVX_gpu_memory_info, 
    GL_NV_ES1_1_compatibility, GL_NV_blend_square, GL_NV_conditional_render, 
    GL_NV_copy_depth_to_color, GL_NV_copy_image, GL_NV_depth_buffer_float, 
    GL_NV_depth_clamp, GL_NV_explicit_multisample, GL_NV_fence, 
    GL_NV_float_buffer, GL_NV_fog_distance, GL_NV_fragment_program, 
    GL_NV_fragment_program2, GL_NV_fragment_program_option, 
    GL_NV_framebuffer_multisample_coverage, GL_NV_geometry_shader4, 
    GL_NV_gpu_program4, GL_NV_gpu_program4_1, GL_NV_half_float, 
    GL_NV_light_max_exponent, GL_NV_multisample_coverage, 
    GL_NV_multisample_filter_hint, GL_NV_occlusion_query, 
    GL_NV_packed_depth_stencil, GL_NV_parameter_buffer_object, 
    GL_NV_parameter_buffer_object2, GL_NV_path_rendering, 
    GL_NV_pixel_data_range, GL_NV_point_sprite, GL_NV_primitive_restart, 
    GL_NV_register_combiners, GL_NV_register_combiners2, 
    GL_NV_shader_buffer_load, GL_NV_texgen_reflection, GL_NV_texture_barrier, 
    GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4, 
    GL_NV_texture_expand_normal, GL_NV_texture_multisample, 
    GL_NV_texture_rectangle, GL_NV_texture_shader, GL_NV_texture_shader2, 
    GL_NV_texture_shader3, GL_NV_transform_feedback, 
    GL_NV_transform_feedback2, GL_NV_vdpau_interop, GL_NV_vertex_array_range, 
    GL_NV_vertex_array_range2, GL_NV_vertex_buffer_unified_memory, 
    GL_NV_vertex_program, GL_NV_vertex_program1_1, GL_NV_vertex_program2, 
    GL_NV_vertex_program2_option, GL_NV_vertex_program3, GL_S3_s3tc, 
    GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, GL_SGIX_depth_texture, 
    GL_SGIX_shadow, GL_SUN_slice_accum
$ glxinfo | grep GLX_ARB_create_context
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
$ glxinfo | grep GLX_EXT_create_context
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

Are there any error messages in stdout/stderr?

Build with cmake -DTRACE_ALL=1 .. && make and collect trace output (will be large). Does it contain ppb_graphics3d_* calls?

from freshplayerplugin.

simonbcn avatar simonbcn commented on August 13, 2024

This is the output: https://dl.dropboxusercontent.com/u/1466192/firefox.log
The errors:

$ grep -i error firefox.log 
###!!! [Parent][MessageChannel::Call] Error: Channel error: cannot send/recv
[fresh] [error] [NP] caught Xlib error 8
[fresh] [error] [NP] caught Xlib error 8
[fresh] [error] [NP] caught Xlib error 171
[fresh] [error] [NP] caught Xlib error 171
[fresh] [error] ppb_graphics3d_create, glXMakeCurrent failed
[fresh] [error] ppb_graphics3d_create, glXMakeCurrent failed
[fresh 21810] [PPB] {full} ppb_var_add_ref var={STRING:1:0x7fae05ff3fe8:onError}
[fresh 21810] [PPB] {full} ppb_var_add_ref var={STRING:1:0x7fae05ee60a0:ytPlayeronErrorplayer_uid_731855904_1}
[fresh 21810] [PPB] {full} ppb_var_var_to_utf8 var={STRING:2:0x7fae05ff3fe8:onError}
[fresh 21810] [PPB] {full} ppb_var_var_to_utf8 var={STRING:2:0x7fae05ee60a0:ytPlayeronErrorplayer_uid_731855904_1}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:2:0x7fae05ff3fe8:onError}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:2:0x7fae05ee60a0:ytPlayeronErrorplayer_uid_731855904_1}
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=try { __flash__toXML(ytPlayeronErrorplayer_uid_731855904_1(0)) ; } catch (e) { "<undefined/>"; }, len=96
[fresh 21810] [PPB] {full} ppb_instance_execute_script instance=10, script={STRING:1:0x7fae07714400:try { __flash__toXML(ytPlayeronErrorplayer_uid_731855904_1(0)) ; } catch (e) { "<undefined/>"; }}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae07714400:try { __flash__toXML(ytPlayeronErrorplayer_uid_731855904_1(0)) ; } catch (e) { "<undefined/>"; }}
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please try again later. BEGIN_LINKLearn MoreEND_LINK, len=71
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=2901, text={.text={STRING:1:0x7fae05ec4740:An error occurred, please try again later. BEGIN_LINKLearn MoreEND_LINK}, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05ec4740:An error occurred, please try again later. BEGIN_LINKLearn MoreEND_LINK}
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please try again later. BEGIN_LINKLearn , len=59
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=2901, text={.text={STRING:1:0x7fae05ec6900:An error occurred, please try again later. BEGIN_LINKLearn }, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05ec6900:An error occurred, please try again later. BEGIN_LINKLearn }
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please try again later. BEGIN_LINKLearn MoreEND_LINK, len=71
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=2903, text={.text={STRING:1:0x7fae05ec4740:An error occurred, please try again later. BEGIN_LINKLearn MoreEND_LINK}, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05ec4740:An error occurred, please try again later. BEGIN_LINKLearn MoreEND_LINK}
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please try again later. , len=43
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=2905, text={.text={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please try again later. , len=43
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=2907, text={.text={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please try again later. , len=43
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=2909, text={.text={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please try again later. , len=43
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=2913, text={.text={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please try again later. , len=43
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=2915, text={.text={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please try again later. , len=43
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=2917, text={.text={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please try again later. , len=43
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=2923, text={.text={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please try again later. , len=43
[fresh 21810] [PPB] {full} ppb_browser_font_draw_text_at font=2923, image_data=2924, text={.text={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }, .rtl=0, .override_direction=0}, position={.x=0, .y=15}, color=0xffffffff, clip={.x=-246, .y=0, .w=860, .h=19}, image_data_is_opaque=0
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05ecefa0:An error occurred, please try again later. }
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please t, len=27
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=3389, text={.text={STRING:1:0x7fae05f6ac00:An error occurred, please t}, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05f6ac00:An error occurred, please t}
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occu, len=13
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=3389, text={.text={STRING:1:0x7fae0746e6c0:An error occu}, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae0746e6c0:An error occu}
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occurred, please t, len=27
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=3391, text={.text={STRING:1:0x7fae05f6ac00:An error occurred, please t}, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae05f6ac00:An error occurred, please t}
[fresh 21810] [PPB] {full} ppb_var_var_from_utf8 data=An error occu, len=13
[fresh 21810] [PPB] {full} ppb_browser_font_measure_text font=3391, text={.text={STRING:1:0x7fae0746e6c0:An error occu}, .rtl=0, .override_direction=0}
[fresh 21810] [PPB] {full} ppb_var_release var={STRING:1:0x7fae0746e6c0:An error occu}
###!!! [Parent][MessageChannel::Call] Error: Channel error: cannot send/recv
###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv
###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv
[fresh] [error] [NP] caught Xlib error 8
[fresh] [error] [NP] caught Xlib error 8
[fresh] [error] [NP] caught Xlib error 171
[fresh] [error] [NP] caught Xlib error 171
[fresh] [error] ppb_graphics3d_create, glXMakeCurrent failed
[fresh] [error] ppb_graphics3d_create, glXMakeCurrent failed
[fresh 22208] [PPB] {full} ppb_var_add_ref var={STRING:1:0x7f646bc66fd0:onError}
[fresh 22208] [PPB] {full} ppb_var_add_ref var={STRING:1:0x7f646bcc0370:ytPlayeronErrorplayer_uid_949439993_1}
[fresh 22208] [PPB] {full} ppb_var_var_to_utf8 var={STRING:2:0x7f646bc66fd0:onError}
[fresh 22208] [PPB] {full} ppb_var_var_to_utf8 var={STRING:2:0x7f646bcc0370:ytPlayeronErrorplayer_uid_949439993_1}
[fresh 22208] [PPB] {full} ppb_var_release var={STRING:2:0x7f646bc66fd0:onError}
[fresh 22208] [PPB] {full} ppb_var_release var={STRING:2:0x7f646bcc0370:ytPlayeronErrorplayer_uid_949439993_1}
###!!! [Parent][MessageChannel::Call] Error: Channel error: cannot send/recv
###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv

And the lines with ppb_graphics3d_*:

$ grep -i ppb_graphics3d firefox.log 
[fresh 21444] [PPB] {full} ppb_get_interface interface_name=PPB_Graphics3D;1.0
[fresh 21804] [PPB] {full} ppb_get_interface interface_name=PPB_Graphics3D;1.0
[fresh 21810] [PPB] {full} ppb_get_interface interface_name=PPB_Graphics3D;1.0
[fresh 21810] [PPB] {full} ppb_graphics3d_create intance=10, share_context=0, attrib_list={TODO}
[fresh 21810] ppb_graphics3d_create, glXChooseFBConfig returned 36 configs, choosing first one
[fresh] [error] ppb_graphics3d_create, glXMakeCurrent failed
[fresh] [error] ppb_graphics3d_create, glXMakeCurrent failed
[fresh 22202] [PPB] {full} ppb_get_interface interface_name=PPB_Graphics3D;1.0
[fresh 22208] [PPB] {full} ppb_get_interface interface_name=PPB_Graphics3D;1.0
[fresh 22208] [PPB] {full} ppb_graphics3d_create intance=10, share_context=0, attrib_list={TODO}
[fresh 22208] ppb_graphics3d_create, glXChooseFBConfig returned 36 configs, choosing first one
[fresh] [error] ppb_graphics3d_create, glXMakeCurrent failed
[fresh] [error] ppb_graphics3d_create, glXMakeCurrent failed

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

@simonbcn, try code from xr-24-32-bit branch. I think there was a color depth conflict, which should be fixed by a patch.

from freshplayerplugin.

simonbcn avatar simonbcn commented on August 13, 2024

Ok, it seems that now works:
20150305_00 37 16_01

In console it shows these messages:

NOT SANDBOXED
[fresh  7639] not implemented: PPB_OpenGLES2DrawBuffers(Dev);1.0
[fresh  7639] not implemented: PPB_VideoDecoder(Dev);0.16
[fresh] [error] ppb_core_call_on_browser_thread, no alive instance available
[fresh] [error] ppb_core_call_on_browser_thread, no alive instance available

###!!! [Parent][MessageChannel::Call] Error: Channel error: cannot send/recv


###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv


###!!! [Parent][OnMaybeDequeueOne] Error: Channel error: cannot send/recv

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

OK, good, pushed patch to the master branch.

You can also check if both opaque and transparent modes are working well on this test page. First entry with "wmode=transparent" text in it should be oval shaped.

from freshplayerplugin.

simonbcn avatar simonbcn commented on August 13, 2024

Yes, both opaque and transparent modes are working well:
20150305_10 23 36_01

from freshplayerplugin.

ItachiSan avatar ItachiSan commented on August 13, 2024

I'm interested in it too.
I'm on ArchLinux and I'm using the git AUR package (so, it's built against latest sources) and I've the same message of simonbcn (accellerated video rendering, software video decoding).
Just to know, what actually the video decoding part is up to?

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

Just to know, what actually the video decoding part is up to?

Most functions are implemented as interfaces in PPAPI. For video decoding it's PPB_VideoDecoder(Dev). As always, one need to implement all functions that are used by PepperFlash. Their implementation can in turn depend on some other interface implementations, and so on. Total interface count is limited, so one day or another process will converge. :-)

I started once, but work stagnated, and I decided to postpone it for a while. I think either ffmpeg, libav or gstreamer could be used to provide actual decoding. But interface translation glue code still needs to be created.

from freshplayerplugin.

ItachiSan avatar ItachiSan commented on August 13, 2024

Got it! I'm almost sure GStreamer would be one of the best choices (usually WebkitGTK has GStreamer as dependency for HTML5 video playback), but that's just my idea/opinion ;-)

from freshplayerplugin.

ItachiSan avatar ItachiSan commented on August 13, 2024

Funny fact: using Flash Player on Youtube with Intel Graphics on Windows 8.1 gives me software rendering, hardware decoding, while your open-source implementation gives us on Linux hardware rendering, software decoding.

You just could work at Adobe/Google or else ;P

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

gives us on Linux hardware rendering

Having hardware accelerated rendering for embedded videos was the most significant reason for this project to start. While NPAPI Flash's hardware acceleration via VDPAU is limited to windowed plugin mode only, freshplayerplugin can utilize rendering to offscreen pixmap trick to offload scaling to GPU for all modes, including windowless one.

From libvdpau-va-gl I learned that accelerated scaling lowers CPU consumption from, say 100-110% to about 30% on 720p H.264 content, but accelerated decoding lowers it further only to 10-15%. So for 720p, hw decoding gives only a fifth as much performance gain as hw scaling.

Of course video decode cost for >=1080p is higher, and hw decoding is still nice feature to have.

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

Added H.264 decoding via VA-API in ca4607e (and a half a dozen follow-up commits).

from freshplayerplugin.

ItachiSan avatar ItachiSan commented on August 13, 2024

IT WORKS
At least, for me
schermata da 2015-06-03 19-16-43
ENHANCE
schermata del 2015-06-03 19-17-03
As a "first try" is amazing :D

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

Adding VDPAU support is too messy for older ffmpeg versions, so I'm going to postpone it indefinitely. There is vdpau-va-driver driver exists which can provide VA-API interface, so that's not a big impairment anyway.

from freshplayerplugin.

simonbcn avatar simonbcn commented on August 13, 2024

It works partially to me:
20150610_23 14 40_01

Ubuntu 14.04 64 bits
NVIDIA proprietary drivers installed, downloaded from NVIDIA website
PepperFlash version 18.0.0.160

My /etc/freshwrapper.conf:

# "Command-line" arguments for Flash
flash_command_line = "enable_hw_video_decode=1,enable_stagevideo_auto=1"

# enable 3d and stage 3d
enable_3d = 1

# when set to 1, limits output to warnings and errors only
quiet = 1

# Enables DNS query case randomization to partially protect against DNS
# poisoning attacks. It was reported that some Mikrotik routers do not
# support this trick. Set parameter to 0 if you have an affected model
randomize_dns_case = 1

There isn't accelerated video decoding.

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

It works partially to me

Actually, doesn't work at all. This issue is only about video decoding, not rendering.
But that's expected, since hwdec is disabled by default. Add enable_hwdec=1 line to freshwrapper.conf to enable it. You'll also need vdpau-va-driver to translate VA-API calls to nVidia's native VDPAU interface.

from freshplayerplugin.

simonbcn avatar simonbcn commented on August 13, 2024

It still doesn't work.

$ cat /etc/freshwrapper.conf 
# "Command-line" arguments for Flash
flash_command_line="enable_hw_video_decode=1,enable_stagevideo_auto=1"

# enable 3d and stage 3d
enable_3d=1

enable_hwdec=1

# when set to 1, limits output to warnings and errors only
quiet=1

# Enables DNS query case randomization to partially protect against DNS
# poisoning attacks. It was reported that some Mikrotik routers do not
# support this trick. Set parameter to 0 if you have an affected model
randomize_dns_case=1
$ apt-cache policy vdpau-va-driver 
vdpau-va-driver:
  Installed: 0.7.3-2ubuntu1.2

20150611_01 30 56_01

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

@simonbcn,
Are there any error messages in the stderr output? You need to launch browser from terminal emulator to see them.

from freshplayerplugin.

simonbcn avatar simonbcn commented on August 13, 2024

@i-rinat this is the output log: https://dl.dropboxusercontent.com/u/1466192/firefox.log

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

Here is those lines:

vdpau_video: VdpVideoSurfaceCreate(): status 20: The size of a supplied object does not match the object it is being used with.
[fresh] [error] prepare_vaapi_context, can't create VA surfaces
[fresh] [error] prepare_vaapi_context, can't create VA surfaces

Error 20 is VDP_STATUS_INVALID_SIZE which matches error description, but doesn't make any sense for VdpVideoSurfaceCreate. Unfortunately, I don't have an nVidia card now to test it.

from freshplayerplugin.

ItachiSan avatar ItachiSan commented on August 13, 2024

I have problems on Ubuntu too; I have 12.04, with the git package from Webupd8 PPA.
I've an Optimus laptop, so I'm using Intel Graphics by default.
I've also FFMpeg installed (maybe is too old?)

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

What kind of problems? Did you try version from master branch?

from freshplayerplugin.

simonbcn avatar simonbcn commented on August 13, 2024

It works now. I had an outdated version of ffmpeg installed. I didn't know that it used this program.
But I can't use it because it plays very slow. 😢
Thanks for your work. 👍

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

Well, then I'm closing this issue. Feel free to open another.
(This one was about implementation itself, which is completed. Compatibility issues are better tracked in separate threads, there they have smaller chances to be missed).

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

Decoding via VDPAU was added in commits from fbd4b16 to 5ea6d4b.

Note, VDPAU is used only if VA-API wasn't found, so if you have vdpau-va-driver installed, it will get in the way. Either remove that driver, or add enable_vaapi = 0 line to ~/.config/freshwrapper.conf. Latter will prevent freshwrapper from trying VA-API at all.

from freshplayerplugin.

ItachiSan avatar ItachiSan commented on August 13, 2024

@simonbcn where did you find it? I still have the Ubuntu Precise one :/

from freshplayerplugin.

simonbcn avatar simonbcn commented on August 13, 2024

@ItachiSan I use the ffmpeg git version compiled by me.

from freshplayerplugin.

ItachiSan avatar ItachiSan commented on August 13, 2024

@simonbcn ok mate, thanks for the info! If that's the case, I'll probably backport some FFMPEG package to Precise ;)

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

I broke compilation against older ffmpeg versions when added VDPAU code. It uses hwaccel infrastructure which VDPAU code in ffmpeg was ported to only recently.
After efa056d it should be compilable again.
It's worth to note, acceleration via VDPAU won't work with older ffmpeg versions, but vdpau-va-driver compatibility layer can still help there.

from freshplayerplugin.

ItachiSan avatar ItachiSan commented on August 13, 2024

@i-rinat which is the minimum libav/ffmpeg version needed? So I can build Ubuntu packages for me ;)

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

I don't know exactly which version is OK, but 0.8.7 from Ubuntu Precise should be fine. VDPAU code won't work until you have:

2013-01-13 - 8ee7b38 / 44e065d - lavc 54.87.100 / 54.36.0 - vdpau.h
  Add AVVDPAUContext struct for VDPAU hardware-accelerated decoding.

2013-01-12 - dae382b / 169fb94 - lavu 52.14.100 / 52.4.0 - pixdesc.h
  Add AV_PIX_FMT_VDPAU flag.

That's the excerpt from APIchanges from ffmpeg source code. A bit later there is a "FFmpeg 1.0" cut, so 1.0 and later should be OK in VDPAU sense.

from freshplayerplugin.

ItachiSan avatar ItachiSan commented on August 13, 2024

Actually, I'm trying compiling LibAV instead of FFMpeg (as the first one) is supported from Ubuntu; if I have no success, I'll build FFMpeg instead.

from freshplayerplugin.

ItachiSan avatar ItachiSan commented on August 13, 2024

Ok, I'm backporting lots of stuff; just to know @i-rinat which is the minimum VA-API version needed?
So I can stop bothering you here :)

from freshplayerplugin.

i-rinat avatar i-rinat commented on August 13, 2024

@ItachiSan, I don't know exactly. 1.0.15 from Ubuntu Precise should be fine.

from freshplayerplugin.

ItachiSan avatar ItachiSan commented on August 13, 2024

It is not... :/
But it is not specific of the implementation, so I'll move this discussion in another issue, so it will be more clear.

from freshplayerplugin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.