Closed antimof closed 2 years ago
ENABLE_PLATFORM_HEVC_DECODING is enabled in my build.
I'm not going to consider your issue without a valid vainfo output.
Thank you for your help....
Ubuntu Impish Chromium: Version 95.0.4638.69 (Official Build, ungoogled-chromium) (64-bit) Videos for testing: https://test-videos.co.uk/vids/bigbuckbunny/mp4/h265/1080/Big_Buck_Bunny_1080_10s_5MB.mp4 https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/1080/Big_Buck_Bunny_1080_10s_5MB.mp4
FFmpegDemuxer: created video stream, config codec: hevc, profile: hevc main, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED} Failed to initialize DecryptingVideoDecoder Failed to initialize VDAVideoDecoder Failed to initialize VpxVideoDecoder Failed to initialize Dav1dVideoDecoder Selected FFmpegVideoDecoder for video decoding, config: codec: hevc, profile: hevc main, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
FFmpegDemuxer: created video stream, config codec: h264, profile: h264 high, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED} Failed to initialize DecryptingVideoDecoder Selected VDAVideoDecoder for video decoding, config: codec: h264, profile: h264 high, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
libva info: VA-API version 1.13.0 libva info: Trying to open /usr/local/lib/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_13 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.13 (libva 2.13.0.pre1) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.4.1 (96135a86) vainfo: Supported profile and entrypoints VAProfileNone : VAEntrypointVideoProc VAProfileNone : VAEntrypointStats VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointFEI VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264High : VAEntrypointFEI VAProfileH264High : VAEntrypointEncSliceLP VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointFEI VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileVP8Version0_3 : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointFEI VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSlice VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD
I appreciate the feedback: enable_platform_hevc_decoding=true
Same result.....except "Unsupported profile" message one time... Have you got it working?
FFmpegDemuxer: created video stream, config codec: hevc, profile: hevc main, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED} Failed to initialize DecryptingVideoDecoder Unsupported profile Failed to initialize VDAVideoDecoder Failed to initialize VpxVideoDecoder Failed to initialize Dav1dVideoDecoder Selected FFmpegVideoDecoder for video decoding, config: codec: hevc, profile: hevc main, level: not available, alpha_mode: is_opaque, coded size: [1920,1080], visible rect: [0,0,1920,1080], natural size: [1920,1080], has extra data: true, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}
I don't have a GPU that's capable of HEVC hardware acceleration.
H.265/HEVC is (strictly) only available on Google Chrome OS on Intel Gen 11+ based Chromebooks for protected content playback only.
The default policy (on non-ChromeOS hardware) for Registered Content Decryption Modules is: software-secure
chrome://media-internals/ tab CDMs
[When enable_platform_hevc_decoding=true (under Windows x64) the CDMs tab is not there.]
com.widevine.alpha Widevine Content Decryption Module software-secure 4.10.2391.0 C:\Local Programs\Chromium\App\Chromium\x64\WidevineCdm_platform_specific\win_x64\widevinecdm.dll {"Audio Codecs":["opus","vorbis","flac","aac"],"Encryption Schemes":["CENC","CBCS"],"Session Types":["temporary","persistent-license"],"Video Codecs":{"av1":[],"h264":[],"vp8":[],"vp9":[]}}
Encrypted video is not hardware decoded (by default). I do not know if that pertains to HEVC. Read this:
https://github.com/truedread/netflix-1080p/issues/15
Google broke vaapi on release v95: https://github.com/ungoogled-software/ungoogled-chromium-archlinux/blob/master/ozone-x11-fix-VA-API.patch
Intel iHD driver for Intel(R) Gen Graphics - 21.4.1 https://github.com/intel/media-driver/tree/96135a86bb050b745b2045046c98a99d1bfebce4 is ToT so might not be stable.
Take a look at this guy's issue: https://github.com/intel/media-driver/issues/1282
Is HEVC HW acceleration ordinarily possible using VLC etc?
I know that on the Android platform HEVC HW unecrypted decoding is possible.
My preference on the Windows; macOS; and GNU/Linux platforms is enable_platform_hevc_decoding=false
One more time, thanks for tons of information and your effort to help.
I'll try to dig deeper. Could you share your latest args.gn, so I can build Chromium by myself.
If I reach any any success, I will report you back
The objective is to get platform HW decoded hevc working under Linux. If adding HW HEVC is a trivial matter then these build args should be sufficient:
==================
build_with_tflite_lib=false clang_use_default_sample_profile = false clang_use_chrome_plugins=false
enable_hangout_services_extension=false enable_mdns=false enable_mse_mpeg2ts_stream_parser=true enable_nacl=false enable_nacl_nonsfi=false enable_one_click_signin=false enable_reading_list=false enable_remoting=false enable_reporting=false enable_service_discovery=false enable_widevine=true exclude_unwind_tables=true
disable_fieldtrial_testing_config=true google_api_key="" google_default_client_id="" google_default_client_secret="" optimize_webui=false safe_browsing_mode=0 treat_warnings_as_errors=false use_official_google_api_keys=false use_unofficial_version_number=false blink_symbol_level=0
enable_iterator_debugging=false enable_swiftshader=true fatal_linker_warnings=false ffmpeg_branding="Chrome"
is_clang=true is_debug=false is_official_build=true
proprietary_codecs=true symbol_level=0 use_gnome_keyring=false #########################use_jumbo_build=true use_kerberos=false use_sysroot = true enable_platform_hevc = true enable_platform_encrypted_hevc = true enable_platform_hevc_decoding = true enable_platform_ac3_eac3_audio = true enable_platform_mpeg_h_audio=true enable_platform_dolby_vision=true is_component_ffmpeg = false use_vaapi=true clang_base_path = "/volumes/disk1/ungoogled.win/chromium-95.0.4638.54/third_party/llvm-build/Release+Asserts"
####### PGO PGO chrome_pgo_phase = 2
pgo_data_path="/volumes/disk1/chromium-95.0.4638.54/chrome/build/pgo_profiles/chrome-linux-4638-1634745795-d00f741e33c5c4844baa858539b89f9584ad68aa.profdata" ####### use_thin_lto = true thin_lto_enable_optimizations = true use_lld = true
sysroot="/volumes/disk2/stable/chromium/src/build/linux/debian_sid_amd64-sysroot"
################ ################
use_system_libdrm=false use_system_minigbm=false enable_js_type_check=false ################################## ##################################
...if adding HEVC HW is a non-trivial matter the contents of media/base/media_switches.cc should point you in the right direction.
@antimof
Sorry to bother you here, but maybe you longer get notifications from your UxPlay site. I took over the development of UxPlay because the RPiPlay developers were not interested in non RPi improvements.
UxPlay has got quite a lot better now. Now at UxPlay1.43
Please could you modify your UxPlay site to send users on to http://github.com/FDH2/UxPlay for the updated version.
best regards fduncanh
First of all, I'd like to thank you for this project. Specially for HEVC support. But I face one issue: All codecs (H264,VP8,VP9) use hardware VAAPI decoding, but HEVC doesn't (uses ffmpeg software decoding) I had a look at the code and found that VAAPI support for HEVC in Chromium is not activated by default.
if BUILDFLAG(ENABLE_PLATFORM_HEVC_DECODING)
include "media/gpu/vaapi/h265_vaapi_video_decoder_delegate.h"
endif
in media/gpu/vaapi/vaapi_video_decoder.cc Could you please include HEVC VAAPI support in next release?
Thank you in advance