diff options
-rw-r--r-- | gst/vaapisink/gstvaapisink.c | 4 | ||||
-rw-r--r-- | gst/vaapisink/gstvaapisink.h | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/gst/vaapisink/gstvaapisink.c b/gst/vaapisink/gstvaapisink.c index b944ee6e..088999a1 100644 --- a/gst/vaapisink/gstvaapisink.c +++ b/gst/vaapisink/gstvaapisink.c @@ -136,6 +136,7 @@ gst_vaapisink_xoverlay_set_xid(GstXOverlay *overlay, XID xid) window. It's pretty much useless */ sink->use_glx = FALSE; + sink->foreign_window = TRUE; gst_vaapisink_ensure_window_xid(sink, xid); } @@ -303,7 +304,7 @@ gst_vaapisink_ensure_render_rect(GstVaapiSink *sink, guint width, guint height) display_ratio = (gdouble)display_rect->width / display_rect->height; GST_DEBUG("scaling to %ux%u", display_rect->width, display_rect->height); - if (sink->fullscreen || + if (sink->fullscreen || sink->foreign_window || display_rect->width > width || display_rect->height > height) { if (sink->video_width > sink->video_height) { display_rect->width = width; @@ -883,6 +884,7 @@ gst_vaapisink_init(GstVaapiSink *sink, GstVaapiSinkClass *klass) sink->video_height = 0; sink->video_par_n = 1; sink->video_par_d = 1; + sink->foreign_window = FALSE; sink->fullscreen = FALSE; sink->synchronous = FALSE; sink->use_glx = USE_VAAPISINK_GLX; diff --git a/gst/vaapisink/gstvaapisink.h b/gst/vaapisink/gstvaapisink.h index 848c148d..1a9014b6 100644 --- a/gst/vaapisink/gstvaapisink.h +++ b/gst/vaapisink/gstvaapisink.h @@ -77,6 +77,7 @@ struct _GstVaapiSink { gint video_par_n; gint video_par_d; GstVaapiRectangle display_rect; + guint foreign_window : 1; guint fullscreen : 1; guint synchronous : 1; guint use_glx : 1; |