summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gst/vaapisink/gstvaapisink.c4
-rw-r--r--gst/vaapisink/gstvaapisink.h1
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;