Problem with etnaviv and gstreamer 1.0

Luís Mendes luis.p.mendes at gmail.com
Tue Dec 5 19:39:11 UTC 2017


Hi Nicolas,

On Tue, Dec 5, 2017 at 7:10 PM, Nicolas Dufresne
<nicolas.dufresne at collabora.com> wrote:
> Le mardi 05 décembre 2017 à 17:06 +0000, Luís Mendes a écrit :
>> On Tue, Dec 5, 2017 at 4:17 PM, Nicolas Dufresne
>> <nicolas.dufresne at collabora.com> wrote:
>> > Le mardi 05 décembre 2017 à 16:07 +0000, Luís Mendes a écrit :
>> > > > > making the CODA VPU unit available to all the applications
>> > > > > that are
>> > > > > already VAAPI and VDPAU aware, like vlc, kodi and others.
>> > > > > That way
>> >
>> > FFMPEG, Khodi and other applicaitons (Chromium, GStreamer) already
>> > support this type of decoder. It's a state full decoder, while
>> > VAAPI is
>> > designed for state less decoders. It also make not sense to wrap
>> > this
>> > inside a GPU driver, because it's not a GPU.
>>
>> If you look into mesa you will find that it implements the VAAPI and
>> VDPAU APIs and that i965, amdgpu and nouveau drivers implement the
>> bridge through the VL internal mesa API. In ubuntu the resulting
>> dynamic libraries from mesa compilation will be packaged into
>> mesa-va-drivers and mesa-vdpau-drivers. So, yes the VPU
>> implementations are side-by-side with the GPU support.
>
> I know this very well. It make sense for Intel, AMD and NVidia driver,
> because the CODEC (which are just accelerators) are tightly coupled
> with the GPU. These are also state less CODEC.
>
> On the other hand, the CODA IP is not coupled with the GPU and is state
> full. The VAAPI (and the deprecated VDPAU interfaces) are not designed
> to support state full decoder, and the extra indirections does not
> provide much benefit.

I understand, but there is still some gain, because there are several
applications that are only VDPAU/VAAPI aware. It would require a great
effort to modify all those applications to make use of the specific
CODA unit, since AFAIK there is no other standard API available for
Linux that is widely used by applications. It is true that Kodi has
support for the i.MX6 CODA unit, but only through the proprietary
drivers and APIs, it currently cannot work with the open-source
drivers. Looking into chromium, is just the same, it is possible to
patch and recompile chromium to support CODA, but again only for the
proprietary drivers.
If the same approach is followed for each specific VPU unit, we will
have proliferation of code and effort replication to support each
specific VPU unit, instead of using a standard API.
I am not very acquainted with gstreamer... but I do know gstreamer is
complex, is versatile and can perform complex manipulation on streams,
but AFAIK is not yet a "de-facto standard" and is not exactly a
replacement of VAAPI or VAAPI.
If you happen to have suggestions for alternatives, or if I'm wrong,
please provide your opinion.

>
> Nicolas

Regards,
Luis Mendes


More information about the gstreamer-devel mailing list