[MPlayer-dev-eng] VAAPI/X11 video output driver
sw at jkqxz.net
Wed Nov 25 22:22:54 CET 2015
On 25/11/15 12:08, Mark Thompson wrote:
> On 24/11/15 23:55, Mark Thompson wrote:
>> On 24/11/15 23:11, Roberto Togni wrote:
>>> On Wed, 25 Nov 2015 00:04:19 +0100
>>> Roberto Togni <rxt at rtogni.it> wrote:
>>>> Thanks for the patch, I will look into it in the next days.
>>>> I posted a patch some time ago, that ports the VAAPI support from the
>>>> mplayer-vaapi fork. It supports OSD, GL, filters, and some other
>>>> things. If you want to look at it you can find it here
>>>> It also uses globals to pass the hwaccel context, but only because I
>>>> was lazy; the original code used a VOCTRL for it.
>>>> It's tested only on vaapi 0.36 (version in debian stable) on a
>>>> sandybridge; I don't have any newer processor.
>>> Oops, I sent this before reading your answer to Compn.
>> Ok, here's my attempt at combining the useful features of the two
>> (mainly stealing from your side). I hope you weren't too attached to
>> the original, because I have rather mutilated it here :)
>> Notable changes against your version:
>> * H.265, WMV3 added and tested. H.263 added but not tested (no
> Build with older libva would fail because of lack of H.265 (ffmpeg
> HEVC_VAAPI_HWACCEL can't be set without libva header support).
> New version with fixed configure attached.
>> * Removed the requirement for any extra options to run (just use -vo
>> * Removed stats.[ch], they aren't really relevant.
>> * Replaced the ffmpeg decoder driver code with my version, which was I
>> think somewhat cleaner (probably a biased opinion). The hwaccel context
>> is still passed through a VOCTRL because I can't see a way of doing that
>> which isn't worse than the global, but giving it a weak stub removes the
>> linker problem.
> * still /not/ passed
>> Tested with H.264, VC-1 and WMV3 in Quick Sync on Haswell (4500U) and
>> Braswell (N3700); additionally tested H.265 on Braswell (the hybrid GPU
>> decode). Both Debian Stretch (testing), VAAPI 0.38.
> Plus H.264 on Haswell (4790) in Ubuntu 14.04, VAAPI 0.35.
>> Remaining problems:
>> * The error checking is still terrible.
>> * I haven't usefully tested the other output options: gl and xrender
>> look like they work, but are outwardly indistinguishable to me.
>> * Tearing is visible.
>> Also, I'm still somewhat dubious about how the reference picture
>> management works, and the number of surfaces used. I suggested it was
>> actually wrong in the other thread, which is I think unfounded, but I
>> still don't entirely understand how MP_IMGTYPE_NUMBERED is interacting
>> with the surfaces being used for output.
>> Could you have a go with this? If you still have a nonworking stream,
>> I'd be happy to look at it to try to work out what's going wrong.
> - Mark
Now tested on an old Cantiga GM45 Intel Graphics chipset (pre-Quick
Sync), which only does MPEG-2, and a Bay Trail (graphics like Ivy Bridge
So, working on at least:
Debian Stretch, VAAPI 0.38:
Cantiga GM45: MPEG-2
Haswell 4500U: MPEG-2, H.264, WMV3, VC-1
Braswell N3700: MPEG-2, H.264, WMV3, VC-1, H.265
Debian Jessie, VAAPI 0.36:
Bay Trail J1900: MPEG-2, H.264, WMV3, VC-1
Ubuntu 14.04, VAAPI 0.35:
Haswell 4790: MPEG-2, H.264, WMV3, VC-1
In all cases it also sensibly plays back unsupported videos (MPEG-4
tried) without decode acceleration.
How old a libva is it useful to support, anyway? Checking that should
probably be in the configure test.
More information about the MPlayer-dev-eng