linux-sunxi / libvdpau-sunxi

Experimental VDPAU for Allwinner sunxi SoCs (obsolete, see https://linux-sunxi.org/Sunxi-Cedrus)
https://linux-sunxi.org/Cedrus
166 stars 80 forks source link

Cannot find codec matching selected -vo and video format 0x5634504D. #12

Open Martix opened 10 years ago

Martix commented 10 years ago

I've been testing libvdpau-sunxi with example videos from: http://linux-sunxi.org/CedarX/VideoRenderingChart

All videos plays nicely in MPlayer without any lags or framedroping, except these:

"big_buck_bunny_1080p_MPEG4_MP3_25fps_7600K.AVI", "park_joy_420_720p25.mp4" and "big_buck_bunny_1080p_VP8_VORBIS_25fps_7800K.WebM"*

*Cedar is capable of VP8 decoding: https://bitbucket.org/paullo612/cedarx-vp8-test VP8 video format: 0x30385056.

Do you plan to include support for these video formats?

MPlayer SVN-r36526-snapshot-4.8.2 (C) 2000-2013 MPlayer Team

Playing big_buck_bunny_1080p_MPEG4_MP3_25fps_7600K.AVI. libavformat version 55.21.102 (internal) AVI file format detected. [aviheader] Video stream found, -vid 0 [aviheader] Audio stream found, -aid 1 VIDEO: [MP4V] 1920x1080 24bpp 25.000 fps 7620.9 kbps (930.3 kbyte/s) Clip info: Software: SUPER(C) - by eRightSoft Artist: created.with.SUPER(C).v2011.bld.49 Load subtitles in ./

[VDPAU SUNXI] VE version 0x1623 opened.

Forced video codec: ffmpeg12vdpau Forced video codec: ffh264vdpau

Cannot find codec matching selected -vo and video format 0x5634504D.

Requested audio codec family mpg123 not available. Enable it at compilation. Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders libavcodec version 55.44.100 (internal) AUDIO: 44100 Hz, 2 ch, floatle, 112.0 kbit/3.97% (ratio: 14000->352800)

Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)

[AO_ALSA] Format floatle is not supported by hardware, trying default. AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample) Video: no video Starting playback... A: 2.1 (02.0) of 3100.4 (51:40.4) 18.8%

Exiting... (Quit)

vdpauinfo: display: :0.0 screen: 0 [VDPAU SUNXI] VE version 0x1623 opened. API version: 1 Information string: sunxi VDPAU Driver

Video surface:

name width height types

420 8192 8192

Decoder capabilities:

name level macbs width height

MPEG1 16 9216 2048 1152 MPEG2_SIMPLE 16 9216 2048 1152 MPEG2_MAIN 16 9216 2048 1152 H264_BASELINE 16 9216 2048 1152 H264_MAIN 16 9216 2048 1152 H264_HIGH 16 9216 2048 1152

Output surface:

name width height nat types

B8G8R8A8 8192 8192 -
R8G8B8A8 8192 8192 -

Bitmap surface:

name width height

Video mixer:

feature name sup

DEINTERLACE_TEMPORAL - DEINTERLACE_TEMPORAL_SPATIAL - INVERSE_TELECINE - NOISE_REDUCTION - SHARPNESS - LUMA_KEY - HIGH QUALITY SCALING - L1 - HIGH QUALITY SCALING - L2 - HIGH QUALITY SCALING - L3 - HIGH QUALITY SCALING - L4 - HIGH QUALITY SCALING - L5 - HIGH QUALITY SCALING - L6 - HIGH QUALITY SCALING - L7 - HIGH QUALITY SCALING - L8 - HIGH QUALITY SCALING - L9 -

parameter name sup min max

VIDEO_SURFACE_WIDTH y 0 8192 VIDEO_SURFACE_HEIGHT y 0 8192 CHROMA_TYPE y
LAYERS y 0 0

attribute name sup min max

BACKGROUND_COLOR -
CSC_MATRIX -
NOISE_REDUCTION_LEVEL -
SHARPNESS_LEVEL -
LUMA_KEY_MIN_LUMA -
LUMA_KEY_MAX_LUMA

rdoeffinger commented 10 years ago

Just a minor contributor, so my answers are not "final/official", but: There is no support for VP8 in VDPAU, not is there any hardware accelerated decoding support for VP8 in FFmpeg. So unless these projects do a lot of work first, I'm certain that won't happen. MPEG-4 ASP is tricky because there are so many broken encoders. I'd be surprised if the hardware can even decode them all correctly. So it seems a bit questionable (also because the files you find in the wild should be SD and decodable in software just fine), but should be possible. Note that if you just add a "," at the end of the -vc list (as in the updated readme I suggested) it should at least automatically fall back to software decoding.

mosterta commented 10 years ago

Hardware can decode MPEG4 ASP videos correctly, as my tests with MPEG4 videos have shown and as far as I can see in the assembly code. But there needs to be a lot of tweaks and different register configurations to support all those MPEG4/XVID/DIVX3/4/5 and different encoder versions. But I am working on it ;) Still it can take a while to get all those working just in a basic manner