Status for video acceleration hardware?

557 views
Skip to first unread message

mhtma...@gmail.com

unread,
Mar 9, 2015, 7:06:15 PM3/9/15
to andro...@googlegroups.com
What is the current status for video acceleration hardware?

AOSP has libva (VAAPI) in the Lollipop source tree:
https://android.googlesource.com/platform/hardware/intel/common/libva/+/android-5.0.0_r1

How does Android-x86 handle video acceleration? Are there any plans to support libva?
What are the major roadblocks to include such support? I wouldn't mind landing a helping hand if it's necessary.

Finally, is there a TODO list of things or priorities that could use some help? The issue tracker is a start, but many of the reported bugs are years old and it's hard to tell whether they have been fixed or not.

Thanks

Chih-Wei Huang

unread,
Mar 10, 2015, 12:20:20 AM3/10/15
to Android-x86
2015-03-10 7:06 GMT+08:00 <mhtma...@gmail.com>:
> What is the current status for video acceleration hardware?

Not support yet.

> AOSP has libva (VAAPI) in the Lollipop source tree:
> https://android.googlesource.com/platform/hardware/intel/common/libva/+/android-5.0.0_r1
>
> How does Android-x86 handle video acceleration? Are there any plans to
> support libva?
> What are the major roadblocks to include such support? I wouldn't mind
> landing a helping hand if it's necessary.

No time and no developers.
You are welcome to help this topic.
Thanks!

> Finally, is there a TODO list of things or priorities that could use some
> help? The issue tracker is a start, but many of the reported bugs are years
> old and it's hard to tell whether they have been fixed or not.

Right... the issue tracker is full of unprofessional reports
so I seldom read it.

There is a rough TODO list (not very updated) in
the homepage of android-x86.org.
If you read the mailing list frequently, you will know
what the important issues we focus on recently.

Basically speaking, for the lollipop-x86 branch,
the top priority is fix the stability issues,
especially for new kernel & mesa.
Read the list to understand the current status.

For libva and similar video hw acceleration,
my plan is to enable them via the ffmpeg plugins.
But the ffmpeg plugins of kitkat-x86 branch is not
ported to lollipop-x86 yet.
You may take a look.
However, the video playback still has critical issues
in newer mesa. That should be fixed first.


--
Chih-Wei
Android-x86 project
http://www.android-x86.org

mhtma...@gmail.com

unread,
Mar 12, 2015, 3:08:46 PM3/12/15
to andro...@googlegroups.com


On Tuesday, March 10, 2015 at 12:20:20 AM UTC-4, Chih-Wei Huang wrote:
For libva and similar video hw acceleration,
my plan is to enable them via the ffmpeg plugins.  
But the ffmpeg plugins of kitkat-x86 branch is not
ported to lollipop-x86 yet.

Would you mind explaining how ffmpeg is used to enable HW accel as there is no libva for Kitkat? I did a quick grep on the 4.4 tree and saw some ffmpeg references on the chrome source code, but it turns out Chrome on Android does not use ffmpeg. A quick glance at other official Android distros revealed different ways to enable video HW accel (but none involving ffmpeg). They include OpenMAX IL + gstreamer or libva + stagefright.

You may take a look.
However, the video playback still has critical issues
in newer mesa. That should be fixed first.

By newer Mesa, you mean 10.4? 10.5? Both?

Chih-Wei Huang

unread,
Mar 12, 2015, 10:33:03 PM3/12/15
to Android-x86
2015-03-13 3:08 GMT+08:00 <mhtma...@gmail.com>:
> On Tuesday, March 10, 2015 at 12:20:20 AM UTC-4, Chih-Wei Huang wrote:
>>
>> For libva and similar video hw acceleration,
>> my plan is to enable them via the ffmpeg plugins.
>>
>> But the ffmpeg plugins of kitkat-x86 branch is not
>> ported to lollipop-x86 yet.
>
> Would you mind explaining how ffmpeg is used to enable HW accel as there is
> no libva for Kitkat? I did a quick grep on the 4.4 tree and saw some ffmpeg

No, there isn't.
We could just add it.
Why not?

> references on the chrome source code, but it turns out Chrome on Android
> does not use ffmpeg. A quick glance at other official Android distros
> revealed different ways to enable video HW accel (but none involving
> ffmpeg). They include OpenMAX IL + gstreamer or libva + stagefright.

Yes, of course.
Most of them use proprietary implementation
that can't be applicable to android-x86.
(which one uses gstreamer?)

The fmpeg plugin is not a part of AOSP.
It's an android-x86 added feature
to support more codecs that AOSP doesn't have.
The ffmpeg can use libva (or vdapu, ...) to do
hardware acceleration in libavcodec.
So I think it easier for us to adopt libva.
But I've said it's just a plan.
Never be implemented either in kitkat-x86 or lollipop-x86.
Of course you can consider other alternative way.

>> You may take a look.
>> However, the video playback still has critical issues
>> in newer mesa. That should be fixed first.
>
> By newer Mesa, you mean 10.4? 10.5? Both?

Actually all versions of mesa have (different)
video playback issues in lollipop-x86.
(black screen, color mismatch, ...)

mhtma...@gmail.com

unread,
Mar 13, 2015, 5:30:40 PM3/13/15
to andro...@googlegroups.com


On Thursday, March 12, 2015 at 10:33:03 PM UTC-4, Chih-Wei Huang wrote:
Yes, of course.
Most of them use proprietary implementation
that can't be applicable to android-x86.
(which one uses gstreamer?)

That's true. The only open-source OMX implementation I've found comes from Intel for their i915/i965 and Poulsbo (PowerVR) GPUs.
Android-IA uses gstreamer on top of OMX. Coincidentally OMX sits on top of libva for decoding.

 
The fmpeg plugin is not a part of AOSP.
It's an android-x86 added feature
to support more codecs that AOSP doesn't have.
The ffmpeg can use libva (or vdapu, ...) to do
hardware acceleration in libavcodec.

Fair enough. libva has backends for vdapu and xvba, so the NVIDIA and AMD folks won't be left behind. My main concern is whether libva supports HW transcoding using DSPs or just GPU/CPU dedicated cores. I can' tell whether there is any x86 hardware using DSPs for video transcoding, but there are a few in the ARM world that does so (which is why they use OMX instead).

So I think it easier for us to adopt libva.
But I've said it's just a plan.
Never be implemented either in kitkat-x86 or lollipop-x86.
Of course you can consider other alternative way.

ffmpeg sounds a reasonable and more inclusive approach. It may take a little more time to implement though, but I'll give it a shot.
Reply all
Reply to author
Forward
0 new messages