videoconverter: Relax frame size checks
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 9 Jul 2020 17:13:14 +0000 (13:13 -0400)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 9 Jul 2020 20:35:05 +0000 (20:35 +0000)
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>

gst-libs/gst/video/video-converter.c

index 21b212a..db24d78 100644 (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;