summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>2012-01-23 11:48:42 +0100
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>2012-02-07 11:16:52 +0100
commitcffa72e36f7e0ff5b579649ede468052809e07d7 (patch)
treedc864293cca9f02e69a3fce18a0d0ee9fe768be8
parenta329d944dad507b13ace56240958e92a519bb470 (diff)
downloadgst-vaapi-cffa72e36f7e0ff5b579649ede468052809e07d7.tar.gz
vaapisink: cap window size to the maximum display size.
-rw-r--r--gst/vaapi/gstvaapisink.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gst/vaapi/gstvaapisink.c b/gst/vaapi/gstvaapisink.c
index 89fd315e..90e3c724 100644
--- a/gst/vaapi/gstvaapisink.c
+++ b/gst/vaapi/gstvaapisink.c
@@ -465,7 +465,7 @@ gst_vaapisink_set_caps(GstBaseSink *base_sink, GstCaps *caps)
{
GstVaapiSink * const sink = GST_VAAPISINK(base_sink);
GstStructure * const structure = gst_caps_get_structure(caps, 0);
- guint win_width, win_height;
+ guint win_width, win_height, display_width, display_height;
gint video_width, video_height, video_par_n = 1, video_par_d = 1;
if (!structure)
@@ -482,8 +482,12 @@ gst_vaapisink_set_caps(GstBaseSink *base_sink, GstCaps *caps)
sink->video_par_d = video_par_d;
GST_DEBUG("video pixel-aspect-ratio %d/%d", video_par_n, video_par_d);
- if (sink->fullscreen)
- gst_vaapi_display_get_size(sink->display, &win_width, &win_height);
+ gst_vaapi_display_get_size(sink->display, &display_width, &display_height);
+ if (sink->fullscreen ||
+ video_width > display_width || video_height > display_height) {
+ win_width = display_width;
+ win_height = display_height;
+ }
else {
win_width = video_width;
win_height = video_height;