vaapisink: cap window size to the maximum display size.

This commit is contained in:
Gwenole Beauchesne 2012-01-23 11:48:42 +01:00
parent b963ccb929
commit 990fe81fe2

View file

@ -442,7 +442,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)
@ -462,8 +462,12 @@ gst_vaapisink_set_caps(GstBaseSink *base_sink, GstCaps *caps)
if (!gst_vaapi_ensure_display(sink, &sink->display))
return FALSE;
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;