diff options
author | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2012-01-23 11:48:42 +0100 |
---|---|---|
committer | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2012-02-07 11:16:52 +0100 |
commit | cffa72e36f7e0ff5b579649ede468052809e07d7 (patch) | |
tree | dc864293cca9f02e69a3fce18a0d0ee9fe768be8 | |
parent | a329d944dad507b13ace56240958e92a519bb470 (diff) | |
download | gst-vaapi-cffa72e36f7e0ff5b579649ede468052809e07d7.tar.gz |
vaapisink: cap window size to the maximum display size.
-rw-r--r-- | gst/vaapi/gstvaapisink.c | 10 |
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; |