How to build gstreamer pipeline with VAAPI hardware acceleration?

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

How to build gstreamer pipeline with VAAPI hardware acceleration?

Mr. Tingustar
I rebuilt ffmpeg package with
    --enable-hwaccel=h263_vaapi \\\
    --enable-hwaccel=h264_vaapi \\\
    --enable-hwaccel=mpeg2_vaapi \\\
    --enable-hwaccel=mpeg4_vaapi \\\
    --enable-hwaccel=vc1_vaapi \\\
    --enable-hwaccel=wmv3_vaapi
Gst-plugins-bad, gst-plugins-ugly and gstreamer-ffmeg work fine. But I don't know how to build the gstreamer pipeline that can enable ffmpeg hwaccel decoding (VAAPI based). Can anyone share some guide, or gstreamer is not ready for VAAPI hwaccel?

Thanks,
Bin


------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to build gstreamer pipeline with VAAPI hardware acceleration?

Edward Hervey
Administrator
On Thu, 2010-04-08 at 18:01 +0800, Mr. Tingustar wrote:

> I rebuilt ffmpeg package with
>     --enable-hwaccel=h263_vaapi \\\
>     --enable-hwaccel=h264_vaapi \\\
>     --enable-hwaccel=mpeg2_vaapi \\\
>     --enable-hwaccel=mpeg4_vaapi \\\
>     --enable-hwaccel=vc1_vaapi \\\
>     --enable-hwaccel=wmv3_vaapi
> Gst-plugins-bad, gst-plugins-ugly and gstreamer-ffmeg work fine. But I
> don't know how to build the gstreamer pipeline that can enable ffmpeg
> hwaccel decoding (VAAPI based). Can anyone share some guide, or
> gstreamer is not ready for VAAPI hwaccel?

  We explicitely disable support of hardware-accelerated codecs from
ffmpeg in gst-ffmpeg. There isn't a unified way to forward the
va-api/vdpau/hw specific information between ffmpeg and gstreamer.

  In order to have proper VAAPI acceleration support in GSTreamer, we
would need some gst-specific plugins.

    Edward

>
> Thanks,
> Bin
>
> ------------------------------------------------------------------------------
> Download Intel® Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel



------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to build gstreamer pipeline with VAAPI hardware acceleration?

Mr. Tingustar
>From what file hardware-accelerated is explicitely disable? Is it
ext/ffmpeg/gstffmpegdec.c?
There are 3 pixel formats are added in ffmpeg: PIX_FMT_VAAPI_MOCO,
PIX_FMT_VAAPI_IDCT and PIX_FMT_VAAPI_VLD. It seems all decoding part
is done in ffmpeg so I think gstreamer (gst-ffmpg) only needs to
detect if gfx driver supports VAAPI and in the end, pass the VAAPI
surface id instead of buffer to xv sink.
Does gstreamer have a plan to add some gst-specific plugins to enable hwaccel?

-Bin

2010/4/8 Edward Hervey <[hidden email]>

>
> On Thu, 2010-04-08 at 18:01 +0800, Mr. Tingustar wrote:
> > I rebuilt ffmpeg package with
> >     --enable-hwaccel=h263_vaapi \\\
> >     --enable-hwaccel=h264_vaapi \\\
> >     --enable-hwaccel=mpeg2_vaapi \\\
> >     --enable-hwaccel=mpeg4_vaapi \\\
> >     --enable-hwaccel=vc1_vaapi \\\
> >     --enable-hwaccel=wmv3_vaapi
> > Gst-plugins-bad, gst-plugins-ugly and gstreamer-ffmeg work fine. But I
> > don't know how to build the gstreamer pipeline that can enable ffmpeg
> > hwaccel decoding (VAAPI based). Can anyone share some guide, or
> > gstreamer is not ready for VAAPI hwaccel?
>
>  We explicitely disable support of hardware-accelerated codecs from
> ffmpeg in gst-ffmpeg. There isn't a unified way to forward the
> va-api/vdpau/hw specific information between ffmpeg and gstreamer.
>
>  In order to have proper VAAPI acceleration support in GSTreamer, we
> would need some gst-specific plugins.
>
>    Edward

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to build gstreamer pipeline with VAAPI hardware acceleration?

Alberto Vigata
In reply to this post by Edward Hervey
Tagging along on this thread,

Why does GStreamer need to know anything about VAAPI usage inside ffmpeg?

Alberto

On Thu, Apr 8, 2010 at 3:13 AM, Edward Hervey <[hidden email]> wrote:

> On Thu, 2010-04-08 at 18:01 +0800, Mr. Tingustar wrote:
>> I rebuilt ffmpeg package with
>>     --enable-hwaccel=h263_vaapi \\\
>>     --enable-hwaccel=h264_vaapi \\\
>>     --enable-hwaccel=mpeg2_vaapi \\\
>>     --enable-hwaccel=mpeg4_vaapi \\\
>>     --enable-hwaccel=vc1_vaapi \\\
>>     --enable-hwaccel=wmv3_vaapi
>> Gst-plugins-bad, gst-plugins-ugly and gstreamer-ffmeg work fine. But I
>> don't know how to build the gstreamer pipeline that can enable ffmpeg
>> hwaccel decoding (VAAPI based). Can anyone share some guide, or
>> gstreamer is not ready for VAAPI hwaccel?
>
>  We explicitely disable support of hardware-accelerated codecs from
> ffmpeg in gst-ffmpeg. There isn't a unified way to forward the
> va-api/vdpau/hw specific information between ffmpeg and gstreamer.
>
>  In order to have proper VAAPI acceleration support in GSTreamer, we
> would need some gst-specific plugins.
>
>    Edward
>
>>
>> Thanks,
>> Bin
>>
>> ------------------------------------------------------------------------------
>> Download Intel&#174; Parallel Studio Eval
>> Try the new software tools for yourself. Speed compiling, find bugs
>> proactively, and fine-tune applications for parallel performance.
>> See why Intel Parallel Studio got high marks during beta.
>> http://p.sf.net/sfu/intel-sw-dev
>> _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to build gstreamer pipeline with VAAPI hardware acceleration?

Mr. Tingustar
I think at least sink element (e.g. xvimagesink)  need enhancement to
get decoded data which is not a general buffer.

2010/4/9 Alberto Vigata <[hidden email]>:
> Tagging along on this thread,
>
> Why does GStreamer need to know anything about VAAPI usage inside ffmpeg?
>
> Alberto
>

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to build gstreamer pipeline with VAAPI hardware acceleration?

Edward Hervey
Administrator
On Fri, 2010-04-09 at 16:08 +0800, David Song wrote:
> I think at least sink element (e.g. xvimagesink)  need enhancement to
> get decoded data which is not a general buffer.

  That would indeed be one of the reasons, plus:
 * we'd need to make sure all elements in a standard playbin pipeline
can handle that kind of data
 * we'd need to have va-api specific elements to handle common features
like scaling, deinterlacing, mixing
 * we'd need to be careful about the lifetime of va-api specific data
 * pray ffmpeg doesn't change the layout of their va-api specific
buffers
 * ...


>
> 2010/4/9 Alberto Vigata <[hidden email]>:
> > Tagging along on this thread,
> >
> > Why does GStreamer need to know anything about VAAPI usage inside ffmpeg?
> >
> > Alberto
> >
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel



------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to build gstreamer pipeline with VAAPI hardware acceleration?

Mr. Tingustar
2010/4/9 Edward Hervey <[hidden email]>:

> On Fri, 2010-04-09 at 16:08 +0800, David Song wrote:
>> I think at least sink element (e.g. xvimagesink)  need enhancement to
>> get decoded data which is not a general buffer.
>
>  That would indeed be one of the reasons, plus:
>  * we'd need to make sure all elements in a standard playbin pipeline
> can handle that kind of data
>  * we'd need to have va-api specific elements to handle common features
> like scaling, deinterlacing, mixing
>  * we'd need to be careful about the lifetime of va-api specific data
>  * pray ffmpeg doesn't change the layout of their va-api specific
> buffers
>  * ...

Then any one of them is in development? Or is there a plan to enable
this feature?
I searched by google and got following link, it seems Josep is doing
some thing like this. But it's not only for VAAPI, it's also for VDPAU
and XvBA. Not sure if a branch(or demo) is ready?
http://gstreamer.freedesktop.org/wiki/VideoHackfest/Notes  (search
section: "Hardware Accelerated Video in GStreamer (Josep)")

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to build gstreamer pipeline with VAAPI hardware acceleration?

Edward Hervey
Administrator
On Mon, 2010-04-12 at 16:16 +0800, David Song wrote:

> 2010/4/9 Edward Hervey <[hidden email]>:
> > On Fri, 2010-04-09 at 16:08 +0800, David Song wrote:
> >> I think at least sink element (e.g. xvimagesink)  need enhancement to
> >> get decoded data which is not a general buffer.
> >
> >  That would indeed be one of the reasons, plus:
> >  * we'd need to make sure all elements in a standard playbin pipeline
> > can handle that kind of data
> >  * we'd need to have va-api specific elements to handle common features
> > like scaling, deinterlacing, mixing
> >  * we'd need to be careful about the lifetime of va-api specific data
> >  * pray ffmpeg doesn't change the layout of their va-api specific
> > buffers
> >  * ...
>

  If all goes well, we should have the current author of the vdpau
plugins finish the implementation during the google summer of code.
Which would include solving all those problems above.
  Once it works for vdpau, it should be much easier to add another
hw-accelerated system (like va-api).

> Then any one of them is in development? Or is there a plan to enable
> this feature?
> I searched by google and got following link, it seems Josep is doing
> some thing like this. But it's not only for VAAPI, it's also for VDPAU
> and XvBA. Not sure if a branch(or demo) is ready?
> http://gstreamer.freedesktop.org/wiki/VideoHackfest/Notes  (search
> section: "Hardware Accelerated Video in GStreamer (Josep)")
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel



------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to build gstreamer pipeline with VAAPI hardware acceleration?

Mr. Tingustar
>  If all goes well, we should have the current author of the vdpau
> plugins finish the implementation during the google summer of code.
> Which would include solving all those problems above.
>  Once it works for vdpau, it should be much easier to add another
> hw-accelerated system (like va-api).
>
Good to know! Could you please point me to the link of vdpau plugins?
I would like to have early access for test.

Thanks,
David

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to build gstreamer pipeline with VAAPI hardware acceleration?

Edward Hervey
Administrator
On Tue, 2010-04-13 at 11:00 +0800, David Song wrote:
> >  If all goes well, we should have the current author of the vdpau
> > plugins finish the implementation during the google summer of code.
> > Which would include solving all those problems above.
> >  Once it works for vdpau, it should be much easier to add another
> > hw-accelerated system (like va-api).
> >
> Good to know! Could you please point me to the link of vdpau plugins?
> I would like to have early access for test.

  gst-plugins-bad/sys/vdpau/

  and his various branches here :
http://github.com/satis/gst-plugins-bad

    Edward

>
> Thanks,
> David
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel



------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel