diff --git a/gst/bayer/gstbayer2rgb.c b/gst/bayer/gstbayer2rgb.c index bf723b107f..de356edffd 100644 --- a/gst/bayer/gstbayer2rgb.c +++ b/gst/bayer/gstbayer2rgb.c @@ -470,7 +470,7 @@ gst_bayer2rgb_transform (GstBaseTransform * base, GstBuffer * inbuf, output = GST_VIDEO_FRAME_PLANE_DATA (&frame, 0); gst_bayer2rgb_process (filter, output, frame.info.stride[0], - map.data, filter->width); + map.data, GST_ROUND_UP_4 (filter->width)); gst_video_frame_unmap (&frame); gst_buffer_unmap (inbuf, &map); diff --git a/gst/bayer/gstrgb2bayer.c b/gst/bayer/gstrgb2bayer.c index 21e78119f1..787fe99509 100644 --- a/gst/bayer/gstrgb2bayer.c +++ b/gst/bayer/gstrgb2bayer.c @@ -173,7 +173,7 @@ gst_rgb2bayer_get_unit_size (GstBaseTransform * trans, GstCaps * caps, name = gst_structure_get_name (structure); /* Our name must be either video/x-bayer video/x-raw */ if (g_str_equal (name, "video/x-bayer")) { - *size = width * height; + *size = GST_ROUND_UP_4 (width) * height; return TRUE; } else { /* For output, calculate according to format */ @@ -249,7 +249,7 @@ gst_rgb2bayer_transform (GstBaseTransform * trans, GstBuffer * inbuf, src = GST_VIDEO_FRAME_PLANE_DATA (&frame, 0); for (j = 0; j < height; j++) { - guint8 *dest_line = dest + width * j; + guint8 *dest_line = dest + GST_ROUND_UP_4 (width) * j; guint8 *src_line = src + frame.info.stride[0] * j; for (i = 0; i < width; i++) {