mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-30 12:10:37 +00:00
glupload: Fix DirectVIV uploader for formats with a single plane
We have to pass the "height" as height = vmeta->offset[1] / width to the API, which of course does not work well for formats with only a single plane. Use the whole memory size instead of the offset in that case.
This commit is contained in:
parent
a6d1f77299
commit
f845208d79
1 changed files with 8 additions and 2 deletions
|
@ -1446,10 +1446,16 @@ _directviv_upload_perform_gl_thread (GstGLContext * context,
|
||||||
vmeta = gst_buffer_get_video_meta (directviv->inbuf);
|
vmeta = gst_buffer_get_video_meta (directviv->inbuf);
|
||||||
if (vmeta) {
|
if (vmeta) {
|
||||||
width = vmeta->stride[0];
|
width = vmeta->stride[0];
|
||||||
height = vmeta->offset[1] / width;
|
if (GST_VIDEO_INFO_N_PLANES (in_info) == 1)
|
||||||
|
height = gst_memory_get_sizes (in_mem, NULL, NULL) / width;
|
||||||
|
else
|
||||||
|
height = vmeta->offset[1] / width;
|
||||||
} else {
|
} else {
|
||||||
width = GST_VIDEO_INFO_PLANE_STRIDE (in_info, 0);
|
width = GST_VIDEO_INFO_PLANE_STRIDE (in_info, 0);
|
||||||
height = GST_VIDEO_INFO_PLANE_OFFSET (in_info, 1) / width;
|
if (GST_VIDEO_INFO_N_PLANES (in_info) == 1)
|
||||||
|
height = gst_memory_get_sizes (in_mem, NULL, NULL) / width;
|
||||||
|
else
|
||||||
|
height = GST_VIDEO_INFO_PLANE_OFFSET (in_info, 1) / width;
|
||||||
}
|
}
|
||||||
width /= GST_VIDEO_INFO_COMP_PSTRIDE (in_info, 0);
|
width /= GST_VIDEO_INFO_COMP_PSTRIDE (in_info, 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue