GNOME Bugzilla – Bug 598615
vdpau support
Last modified: 2011-09-26 18:04:32 UTC
Created attachment 145548 [details] [review] small ffmpeg patch I've created a proof of concept patch adding vdpau support to gst-ffmpeg. The patch is available at http://github.com/satis/gst-ffmpeg/tree/vdpau and depends on some not merged changes to gst-plugins-bad at http://github.com/satis/gst-plugins-bad/tree/vdpau. It also depends on a small patch to ffmpeg which I will attach to the bug. As I said it's all kind of rough but any suggestions how it should be done, or even opinions whether it's a welcome addition or not is very much welcome. The patch makes five decoders available: ffdec_h264_vdpau, ffdec_mpegvideo_vdpau, ffdec_mpeg1video_vdpau, ffdec_vc1_vdpau and ffdec_vmw3_vdpau, but I've only tested the h264 and mpeg decoders.
Created attachment 145549 [details] [review] ffmpeg patch without garbage changes
Created attachment 145553 [details] [review] really fixed ffmpeg patch
I'm slightly confused here. What exactly are you trying to achieve ? At first I thought you were trying to expose the ffmpeg vdpau decoders... but then you use the gst-plugins-bad vdpau code. Could you explain exactly what you're trying to do ? Also, that ffmpeg patch just looks plain wrong (unless it's a backport from ffmpeg trunk). We don't patch ffmpeg, if you want that fix, you'll have to submit it to ffmpeg.
ffmpeg doesn't really do any vdpau decoding on it's own. What it does is that it fills out the VdpPictureInfo[H264|MPEG1Or2|VC1] structures for you. The player (mplayer, mythtv, gstreamer) then does the decoding based on this data. So what the gstreamer plugins does is that it decodes the data and then push out the result as GstVdpVideo buffers, which are defined in libgstvdp from gst-plugins-bad. Then the plugins in gst-plugins-bad can do something with this data eg. output it to the screen. The ffmpeg decoders should ofcourse also be able to negotiate the output format to video/x-raw-yuv, but I haven't done any work on this as of yet. I really don't know if the ffmpeg patch is correct, except that it produces correct output and doesn't affect the other decoders. But I think that it could be hacked around in gst-ffmpeg instead of patching ffmpeg.
Created attachment 148215 [details] [review] patch to support vdpau The patch adds support for vdpau decoders to the gst-ffmpeg plugin. It now longer requires ffmpeg patching, and it also supports output of video/x-raw-yuv along with the former video/x-vdpau-video. It's unfortunately kindof ugly spreading around ifdefs, so any suggestions how to make it better is much appreciated.
Created attachment 148409 [details] [review] updated patch after gst-plugins-bad api changes
Is this a duplicate of Bug #561225 ?
Yep. Looks pretty much like a dup. I won't, however, close it myself, because we have patches lying around. Yes maintainers, that's right: Fresh and hot patches waiting for being reviewed ;-)
This is not really a duplicate since this bug is for exposing the vdpau support available in ffmpeg. During my gsoc I'll be working on writing standalone decoders so that depending on ffmpeg will not be necessary. Nevertheless I'll try to update the patch here so that it works against recent gst-ffmpeg and gst-plugins-bad.
Created attachment 160724 [details] [review] updated patch
Carl-Anton, is this bug report still valid or have the stuff been merged into the vdpau stuff in bad?
Carl-Anton, awaiting for your response.
Resolving this as OBSOLETE. We now have vdpau elements in -bad, and I don't think we want to go down the road this patch suggests.