After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 733243 - Use vaGetImage when vaDeriveImage is not available
Use vaGetImage when vaDeriveImage is not available
Status: RESOLVED FIXED
Product: gstreamer-vaapi
Classification: Other
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gstreamer-vaapi maintainer(s)
gstreamer-vaapi maintainer(s)
Depends on: 733242
Blocks: 720305
 
 
Reported: 2014-07-16 09:50 UTC by Fabrice Bellet
Modified: 2014-07-22 20:25 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Use vaGetImage when vaDeriveImage is not available (793 bytes, patch)
2014-07-16 09:50 UTC, Fabrice Bellet
rejected Details | Review

Description Fabrice Bellet 2014-07-16 09:50:47 UTC
Created attachment 280784 [details] [review]
Use vaGetImage when vaDeriveImage is not available

This patche makes use of vaGetImage where vaDeriveImage is not available (vdpau-driver of libva)
Comment 1 Gwenole Beauchesne 2014-07-22 16:49:03 UTC
Review of attachment 280784 [details] [review]:

I will push something that works on libva-intel-driver + implicit HW conversions from NV12 to I420. Please try it out on libva-vdpau-driver. Thanks. Minimal functionality to unblock gstreamer-vaapi 0.5.9 release, valid only on GStreamer >= 1.2.

::: gst/vaapi/gstvaapivideomemory.c
@@ +63,3 @@
     }
+    if (!mem->use_direct_rendering)
+        gst_vaapi_surface_get_image(mem->surface, mem->image);

This is not valid if map !(flags & GST_MAP_READ). Besides, I'd prefer ensure_image() to relate to allocations, and explicitly call into gst_vaapi_surface_get_image() when only necessary.
Comment 2 Gwenole Beauchesne 2014-07-22 17:23:05 UTC
Hi,

(In reply to comment #0)
> Created an attachment (id=280784) [details] [review]
> Use vaGetImage when vaDeriveImage is not available
> 
> This patche makes use of vaGetImage where vaDeriveImage is not available
> (vdpau-driver of libva)

Does the git master branch work for you now? Thanks.
Comment 3 Fabrice Bellet 2014-07-22 19:28:36 UTC
(In reply to comment #2)
> Hi,
> 
> (In reply to comment #0)
> > Created an attachment (id=280784) [details] [review] [details] [review]
> > Use vaGetImage when vaDeriveImage is not available
> > 
> > This patche makes use of vaGetImage where vaDeriveImage is not available
> > (vdpau-driver of libva)
> 
> Does the git master branch work for you now? Thanks.

Yes, it works for me. Thanks!
Comment 4 Gwenole Beauchesne 2014-07-22 20:25:47 UTC
commit dc6d529830b185b557b86a78268becc61f3d2864
Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Date:   Tue Jul 22 18:54:29 2014 +0200

    plugins: allow download capability to vaapidecode element.
    
    Fix support for VA surface download capability in vaapidecode element
    for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
    but also the libva-intel-driver while performing hardware accelerated
    conversions from the native VA surface format (NV12) to the desired
    output VA image format.
    
    For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=733243