videoconverter: Relax frame size checks

Since we are using VideoMeta, the converter (similarly to the video_frame_copy
utility) should have no issue dealing with frames that are slightly larger.
This situation occure as some element will use padded width/height for
allocation, which results in a VideoMeta width/height being larger then the
display width/height found in the negotiated caps.

Fixes #790

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/747>
This commit is contained in:
Nicolas Dufresne 2020-07-09 13:13:14 -04:00 committed by GStreamer Merge Bot
parent f94c7ae3c9
commit dcc7242ba5

View file

@ -2708,18 +2708,18 @@ gst_video_converter_frame (GstVideoConverter * convert,
* we were configured for or we might go out of bounds */
if (G_UNLIKELY (GST_VIDEO_INFO_FORMAT (&convert->in_info) !=
GST_VIDEO_FRAME_FORMAT (src)
|| GST_VIDEO_INFO_WIDTH (&convert->in_info) !=
|| GST_VIDEO_INFO_WIDTH (&convert->in_info) >
GST_VIDEO_FRAME_WIDTH (src)
|| GST_VIDEO_INFO_HEIGHT (&convert->in_info) !=
|| GST_VIDEO_INFO_HEIGHT (&convert->in_info) >
GST_VIDEO_FRAME_HEIGHT (src))) {
g_critical ("Input video frame does not match configuration");
return;
}
if (G_UNLIKELY (GST_VIDEO_INFO_FORMAT (&convert->out_info) !=
GST_VIDEO_FRAME_FORMAT (dest)
|| GST_VIDEO_INFO_WIDTH (&convert->out_info) !=
|| GST_VIDEO_INFO_WIDTH (&convert->out_info) >
GST_VIDEO_FRAME_WIDTH (dest)
|| GST_VIDEO_INFO_HEIGHT (&convert->out_info) !=
|| GST_VIDEO_INFO_HEIGHT (&convert->out_info) >
GST_VIDEO_FRAME_HEIGHT (dest))) {
g_critical ("Output video frame does not match configuration");
return;