vaapisink: handle GstVideoOverlayComposition planes.
authorThibault Saunier <thibault.saunier@collabora.com>
Wed, 23 Nov 2011 19:45:46 +0000 (16:45 -0300)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Mon, 12 Dec 2011 17:38:51 +0000 (18:38 +0100)
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
gst/vaapi/gstvaapisink.c

index c68a3ae..d028358 100644 (file)
@@ -645,7 +645,7 @@ gst_vaapisink_show_frame_x11(
 )
 {
     if (!gst_vaapi_window_put_surface(sink->window, surface,
-                                      NULL, &sink->display_rect, flags)) {
+                NULL, &sink->display_rect, flags)) {
         GST_DEBUG("could not render VA surface");
         return FALSE;
     }
@@ -660,6 +660,8 @@ gst_vaapisink_show_frame(GstBaseSink *base_sink, GstBuffer *buffer)
     GstVaapiSurface *surface;
     guint flags;
     gboolean success;
+    GstVideoOverlayComposition * const composition =
+        gst_video_buffer_get_overlay_composition(buffer);
 
     if (sink->display != gst_vaapi_video_buffer_get_display (vbuffer)) {
       if (sink->display)
@@ -679,6 +681,9 @@ gst_vaapisink_show_frame(GstBaseSink *base_sink, GstBuffer *buffer)
 
     flags = GST_VAAPI_PICTURE_STRUCTURE_FRAME;
 
+    if (!gst_vaapi_surface_update_composition(surface, composition))
+        GST_WARNING("could not update subtitles");
+
 #if USE_VAAPISINK_GLX
     if (sink->use_glx)
         success = gst_vaapisink_show_frame_glx(sink, surface, flags);