Skip to content

HEVC files cannot be opened #62

Description

@mdirik

Hi,

I'm not sure how well the VE in R40 is supported but I seem to have a problem with opening HEVC encoded files.

H264 works fine:

mpv --hwdec-codecs=all --vo=vdpau --hwdec=vdpau jellyfish-3-mbps-hd-h264.mkv
Playing: jellyfish-3-mbps-hd-h264.mkv
 (+) Video --vid=1 (*) (h264 1920x1080 29.970fps)
[VDPAU SUNXI] VE version 0x1701 opened
[VDPAU SUNXI] OSD disabled!
Using hardware decoding (vdpau).
VO: [vdpau] 1920x1080 vdpau[yuv420p]
[VDPAU SUNXI] Presentation time not supported

But hevc one prints a warning and just hangs without showing any video output (also no audio output on files with audio):


$ mpv --hwdec-codecs=all --vo=vdpau --hwdec=vdpau jellyfish-3-mbps-hd-hevc.mkv 
Playing: jellyfish-3-mbps-hd-hevc.mkv
 (+) Video --vid=1 (*) (hevc 1920x1080 29.970fps)
[VDPAU SUNXI] VE version 0x1701 opened
[VDPAU SUNXI] OSD disabled!
HEVC video output may be broken due to nVidia bugs.

Mplayer just shows blank screen:


$ mplayer -vo vdpau -vc ffmpeg12vdpau,ffh264vdpau,ffhevcvdpau, jellyfish-3-mbps-hd-hevc.mkv 
MPlayer 1.2.1 (Debian), built with gcc-5.3.1 (C) 2000-2016 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing jellyfish-3-mbps-hd-hevc.mkv.
libavformat version 56.40.101 (external)
libavformat file format detected.
[lavf] stream 0: video (hevc), -vid 0
VIDEO:  [HEVC]  1920x1080  0bpp  29.970 fps    0.0 kbps ( 0.0 kbyte/s)
Clip info:
 COMPATIBLE_BRANDS: iso4hvc1iso6
 MAJOR_BRAND: iso4
 MINOR_VERSION: 1
 ENCODER: Lavf56.3.100
Load subtitles in ./
[VDPAU SUNXI] VE version 0x1701 opened
[VDPAU SUNXI] OSD disabled!
==========================================================================
Forced video codec: ffmpeg12vdpau
Forced video codec: ffh264vdpau
Forced video codec: ffhevcvdpau
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 56.60.100 (external)
Selected video codec: [ffhevcvdpau] vfm: ffmpeg (FFmpeg HEVC / H.265 (VDPAU))
==========================================================================
Audio: no sound
Starting playback...
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [vdpau] 1920x1080 => 1920x1080 HEVC VDPAU acceleration 

System details:

  • Banana Pi M2 Ultra (Alwinner R40)
  • Display mode is 1080p25, connected with HDMI
  • Sinovoip's Ubuntu 16.04 image
  • Kernel: Linux bpi-iot-ros-ai 3.10.108-BPI-M2U-Kernel #1 SMP Wed Mar 28 16:57:21 +03 2018 armv7l armv7l armv7l GNU/Linux
  • libcedrus, libvdpau and libvdpau-sunxi are compiled from their git repositories (preinstalled ones are replaced with compiled ones)
  • mpv is self compiled (with its own ffmpeg)
mpv 0.27.0 (C) 2000-2017 mpv/MPlayer/mplayer2 projects
 built on Thu Dec 21 16:30:39 UTC 2017
ffmpeg library versions:
   libavutil       56.6.100
   libavcodec      58.8.100
   libavformat     58.3.100
   libswscale      5.0.101
   libavfilter     7.7.100
   libswresample   3.0.101
ffmpeg version: N-89544-gcfd5209

Here is a VDPAU trace:


$ env VDPAU_TRACE=1 mpv --hwdec-codecs=all --vo=vdpau --hwdec=vdpau jellyfish-3-mbps-hd-hevc.mkv 
Playing: jellyfish-3-mbps-hd-hevc.mkv
 (+) Video --vid=1 (*) (hevc 1920x1080 29.970fps)
VDPAU capture: Enabled
vdp_imp_device_create_x11(0xad00dec0, 0, -, -)
[VDPAU SUNXI] VE version 0x1701 opened
[VDPAU SUNXI] OSD disabled!
    -> 0, 1, 0xadb303c1
vdp_get_proc_address(1, 0, -)
    -> 0, 0xadb56039
vdp_get_proc_address(1, 26, -)
    -> 0, 0xadb57805
vdp_get_proc_address(1, 27, -)
    -> 0, 0xadb55e69
vdp_get_proc_address(1, 29, -)
    -> 0, 0xadb5b9c5
vdp_get_proc_address(1, 25, -)
    -> 0, 0xadb578f9
vdp_get_proc_address(1, 37, -)
    -> 0, 0xadb572b9
vdp_get_proc_address(1, 38, -)
    -> 0, 0xadb55df1
vdp_get_proc_address(1, 40, -)
    -> 0, 0xadb588dd
vdp_get_proc_address(1, 36, -)
    -> 0, 0xadb573ad
vdp_get_proc_address(1, 5, -)
    -> 0, 0xadb55fc5
vdp_get_proc_address(1, 4, -)
    -> 0, 0xadb58755
vdp_get_proc_address(1, 6, -)
    -> 0, 0xadb58605
vdp_get_proc_address(1, 18, -)
    -> 0, 0xadb57c11
vdp_get_proc_address(1, 19, -)
    -> 0, 0xadb55edd
vdp_get_proc_address(1, 21, -)
    -> 0, 0xadb5b315
vdp_get_proc_address(1, 23, -)
    -> 0, 0xadb5b5fd
vdp_get_proc_address(1, 22, -)
    -> 0, 0xadb5b491
vdp_get_proc_address(1, 34, -)
    -> 0, 0xadb5adb9
vdp_get_proc_address(1, 33, -)
    -> 0, 0xadb5aeb9
vdp_get_proc_address(1, 66, -)
    -> 0, 0xadb55b65
vdp_get_proc_address(1, 64, -)
    -> 0, 0xadb56c1d
vdp_get_proc_address(1, 56, -)
    -> 0, 0xadb56dd1
vdp_get_proc_address(1, 57, -)
    -> 0, 0xadb55c89
vdp_get_proc_address(1, 63, -)
    -> 0, 0xadb55bed
vdp_get_proc_address(1, 62, -)
    -> 0, 0xadb56cf9
vdp_get_proc_address(1, 65, -)
    -> 0, 0xadb56ae5
vdp_get_proc_address(1, 58, -)
    -> 0, 0xadb5a579
vdp_get_proc_address(1, 59, -)
    -> 0, 0xadb5a9c5
vdp_get_proc_address(1, 4096, -)
    -> 0, 0xadb56a0d
vdp_get_proc_address(1, 55, -)
    -> 0, 0xadb55d01
vdp_get_proc_address(1, 46, -)
    -> 0, 0xadb5a2f5
vdp_get_proc_address(1, 53, -)
    -> 0, 0xadb55d79
vdp_get_proc_address(1, 41, -)
    -> 0, 0xadb57059
vdp_get_proc_address(1, 54, -)
    -> 0, 0xadb5ab35
vdp_get_proc_address(1, 48, -)
    -> 0, 0xadb5a911
vdp_get_proc_address(1, 47, -)
    -> 0, 0xadb5a155
vdp_get_proc_address(1, 9, -)
    -> 0, 0xadb582ad
vdp_get_proc_address(1, 10, -)
    -> 0, 0xadb55f51
vdp_get_proc_address(1, 13, -)
    -> 0, 0xadb5b19d
vdp_get_proc_address(1, 12, -)
    -> 0, 0xadb5b041
vdp_get_proc_address(1, 11, -)
    -> 0, 0xadb58125
vdp_get_proc_address(1, 7, -)
    -> 0, 0xadb58475
vdp_get_proc_address(1, 14, -)
    -> 0, 0xadb57f95
vdp_get_proc_address(1, 20, -)
    -> 0, 0xadb57a89
vdp_output_surface_create(1, 0, 1, 1, -)
    -> 0, 2
vdp_preemption_callback_register(1, 0xb5b541f1, 0xad035578)
    -> 0
vdp_get_proc_address(1, 8, -)
    -> 0, 0xadb58395
vdp_get_proc_address(1, 12, -)
    -> 0, 0xadb5b041
vdp_get_proc_address(1, 13, -)
    -> 0, 0xadb5b19d
vdp_get_proc_address(1, 9, -)
    -> 0, 0xadb582ad
vdp_get_proc_address(1, 10, -)
    -> 0, 0xadb55f51
vdp_video_surface_query_get_put_bits_y_cb_cr_capabilities(1, 0, 0, -)
    -> 0, 1
vdp_video_surface_query_get_put_bits_y_cb_cr_capabilities(1, 0, 1, -)
    -> 0, 1
vdp_video_surface_query_get_put_bits_y_cb_cr_capabilities(1, 1, 0, -)
    -> 0, 0
vdp_video_surface_query_get_put_bits_y_cb_cr_capabilities(1, 1, 1, -)
    -> 0, 0
vdp_video_surface_query_get_put_bits_y_cb_cr_capabilities(1, 1, 2, -)
    -> 0, 0
vdp_video_surface_query_get_put_bits_y_cb_cr_capabilities(1, 1, 3, -)
    -> 0, 0
vdp_video_surface_query_get_put_bits_y_cb_cr_capabilities(1, 2, 1, -)
    -> 0, 0
vdp_output_surface_put_bits_native(2, {0xacdfbb40}, {4}, {0, 0, 0, 0})
    -> 0
vdp_get_information_string(-)
    -> 0, "sunxi VDPAU Driver"
vdp_output_surface_put_bits_native(2, {0xacdfbb50}, {4}, {0, 0, 0, 0})
    -> 0
vdp_bitmap_surface_query_capabilities(1, 4, -, -, -)
    -> 0, 0, 8192, 8192
vdp_output_surface_put_bits_native(2, {0xacdfbb28}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbaf0}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbab8}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbb28}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xbeac7da8}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbab8}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbb28}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbb28}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbb28}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbab8}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbab8}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbab8}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbb28}, {4}, {0, 0, 0, 0})
    -> 0
HEVC video output may be broken due to nVidia bugs.
vdp_get_proc_address(1, 4, -)
    -> 0, 0xadb58755
vdp_get_information_string(-)
    -> 0, "sunxi VDPAU Driver"
vdp_get_proc_address(1, 7, -)
    -> 0, 0xadb58475
vdp_video_surface_query_capabilities(1, 0, -, -, -)
    -> 0, 1, 8192, 8192
vdp_get_proc_address(1, 36, -)
    -> 0, 0xadb573ad
vdp_decoder_query_capabilities(1, 100, -, -, -, -, -)
    -> 0, 1, 150, 32400, 3840, 2160
vdp_get_proc_address(1, 37, -)
    -> 0, 0xadb572b9
vdp_get_proc_address(1, 40, -)
    -> 0, 0xadb588dd
vdp_decoder_create(1, 100, 1920, 1080, 1, -)
    -> 0, 3
vdp_video_surface_create(1, 0, 1920, 1080, -)
    -> 0, 4
vdp_decoder_render(3, 4, {1, 0, 1920, 1080, 0, 0, 4, 5, 0, 3, 0, 3, 0, 0, 0, {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, {0, 0, 0, 0, 0, 0}, {0, 0}, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, {4294967295, 4294967295, 4294967295, 4294967295, 4294967295, 4294967295, 4294967295, 4294967295, 4294967295, 4294967295, 4294967295, 4294967295, 4294967295, 4294967295, 4294967295, 4294967295}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, 2, {{(ver 0) 3, ...}, {(ver 0) 45236, ...}})
vdp_output_surface_put_bits_native(2, {0xacdfbb28}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbb28}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbb28}, {4}, {0, 0, 0, 0})
    -> 0
vdp_output_surface_put_bits_native(2, {0xacdfbb28}, {4}, {0, 0, 0, 0})
    -> 0
^C
$ 

Last line is printed again every ~10 seconds.

Thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions