v4l2bufferpool: Fix stride for NV12/NV21

https://bugzilla.gnome.org/show_bug.cgi?id=707758
This commit is contained in:
Andreea Fulger 2013-09-09 14:41:42 +02:00 committed by Sebastian Dröge
parent a5ceab82dd
commit 78adf28a61

View file

@ -247,8 +247,15 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer,
offs = 0;
for (i = 0; i < n_planes; i++) {
offset[i] = offs;
stride[i] =
GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (finfo, i, obj->bytesperline);
if (info->finfo->format == GST_VIDEO_FORMAT_NV12
|| info->finfo->format == GST_VIDEO_FORMAT_NV21) {
stride[i] =
(i == 0) ? GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (finfo, i,
obj->bytesperline) : stride[0];
} else {
stride[i] =
GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (finfo, i, obj->bytesperline);
}
offs +=
stride[i] * GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (finfo, i, height);