mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 22:16:22 +00:00
vaapisink: fail if surface display is different
Replacing GstVaapiDisplay during rendering might be hiding problems at some cases, even though it's safe currently since we use cache of GstVaapidisplay. Play safe by failing if this happens. https://bugzilla.gnome.org/show_bug.cgi?id=766704
This commit is contained in:
parent
b8265db260
commit
736478d2a7
1 changed files with 10 additions and 2 deletions
|
@ -1408,8 +1408,9 @@ gst_vaapisink_show_frame_unlocked (GstVaapiSink * sink, GstBuffer * src_buffer)
|
|||
return ret;
|
||||
|
||||
meta = gst_buffer_get_vaapi_video_meta (buffer);
|
||||
GST_VAAPI_PLUGIN_BASE_DISPLAY_REPLACE (sink,
|
||||
gst_vaapi_video_meta_get_display (meta));
|
||||
if (gst_vaapi_video_meta_get_display (meta) !=
|
||||
GST_VAAPI_PLUGIN_BASE_DISPLAY (sink))
|
||||
goto different_display;
|
||||
|
||||
proxy = gst_vaapi_video_meta_get_surface_proxy (meta);
|
||||
if (!proxy)
|
||||
|
@ -1491,6 +1492,13 @@ no_surface:
|
|||
ret = GST_FLOW_ERROR;
|
||||
goto done;
|
||||
}
|
||||
|
||||
different_display:
|
||||
{
|
||||
GST_WARNING_OBJECT (sink, "incoming surface has different VAAPI Display");
|
||||
ret = GST_FLOW_ERROR;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
static GstFlowReturn
|
||||
|
|
Loading…
Reference in a new issue