{
        u32 y_plane, uv_plane, y_stride, uv_stride, y_sclines, uv_sclines;
 
-       y_stride = ALIGN(width * 2, 256);
-       uv_stride = ALIGN(width * 2, 256);
+       y_stride = ALIGN(width * 2, 128);
+       uv_stride = ALIGN(width * 2, 128);
        y_sclines = ALIGN(height, 32);
        uv_sclines = ALIGN((height + 1) >> 1, 16);
        y_plane = y_stride * y_sclines;
 
                                           pixmp->height);
 
        if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) {
+               unsigned int stride = pixmp->width;
+
+               if (pixmp->pixelformat == V4L2_PIX_FMT_P010)
+                       stride *= 2;
+
                pfmt[0].sizeimage = szimage;
-               pfmt[0].bytesperline = ALIGN(pixmp->width, 128);
+               pfmt[0].bytesperline = ALIGN(stride, 128);
        } else {
                pfmt[0].sizeimage = clamp_t(u32, pfmt[0].sizeimage, 0, SZ_8M);
                pfmt[0].sizeimage = max(pfmt[0].sizeimage, szimage);