[MPlayer-dev-eng] DxVA in MPlayer

Georgi Petrov gogothebee at gmail.com
Sat Nov 20 13:37:31 CET 2010


Hi,

I will skip the explanations, which I understood and will focus on
those I didn't. Laurent is the other interested party, so we are going
to work together. We both agreed to remove MPEG-4 ASP decoding
requirement from the specification.

> Um, in that case the GPU and CPU memory are likely to be shared,
> and there shouldn't be much if any performance issue with
> choosing the "readback" method.

This sounds logical. However, Laurent told me that using VLC
(readback) results is a slow frame rate and poor decoding (may be only
on his hardware), while MPC-HC is okay. Laurent, which h/w did you use
to perform the comparison?

As I know, there are two test configurations: Atom + GMA500 (Poulsbo)
and Atom + ION (9xxx class Geforce, 3rd or 4th generation PureVideo,
depending on ION generation).

If we all agree on the initial design (with or without readback), it
will make the conversation easier.

The problem, which was mentioned are the subtitles. In case we don't
do readback, how are we supposed to render subtitles? I'm pretty sure
that EVR supports, how should I explain it, "surface mixing". Can't we
just render subtitles on top of the video surface?

> Yes, but don't underestimate that if you want it to be good-quality.
> The direct3d one did take some time to become stable, and this one
> seems more difficult.
> Since I do not really know anything about EVR, subtitles/OSD might
> even be a lot more difficult...

This is true. However, I gained some skills and now I have some
experience. I saw the EVR documentation and it doesn't seem to be much
more different or complicated, but this is on first sight. In short -
I will succeed, eventually.

> Advanced features like hardware deinterlacing may be or may become
> available through EVR at some point and are rather unlikely to be
> available via Direct3D. But I don't know what exactly the status
> is there.

Yes, hardware deinterlacing is available and we can implement it by a
command line switch for example.

> I thought both versions use the same format.
> You'll have to double-check that though.

They use the same format, but there are some differences in some
structures or function calls. I suggest starting with DxVA 2 and later
adding DxVA 1 support once the first one works right. In the process I
will understand the small differences.

> The more critical question though is: can you assume VLD-level decode
> support?
> Because supporting partial acceleration will be a huge pain,
> and Atom makes it sound like it is an Intel solution and I seem
> to remember that only partial (iDCT basically) acceleration is
> supported for VC-1, but no bitstream parsing.

The Atom h/w in question has GMA500 GPU (codename Poulsbo). It is
capable of VLD+iMDCT+MC+LF (i.e. everything).

See: http://www.netbookmarket.net/intel-gma950-vs-gma500/

Supporting VLD, means that the iMDCT, MC and LF are supported as well,
as they occur later in the decoding chain. I think that it would be
feasible to support only devices, capable of VLD level decoding and
don't bother with partial support.

The other required combination is Atom + nVidia ION, which also supports VLD.

About the implementation details discussed in the previous e-mail - I
think that before starting the implementation, I can't understand the
big picture, so it is more important to focus how to start doing it!

> anyone have an atom (atom is the intel cpu, not the gpu, which
> could change) and vaapi/vlc/mpc-hc and can tell us bluray performance?

I think Laurent has this configuration.


More information about the MPlayer-dev-eng mailing list