vp9dec: optimize vpx image to gstbuffer copy when strides match
Solving this FIXME. Copy the full plane when strides are the same
This commit is contained in:
parent
6e3835594c
commit
3270137702
@ -387,14 +387,20 @@ gst_vp9_dec_image_to_buffer (GstVP9Dec * dec, const vpx_image_t * img,
|
|||||||
deststride = GST_VIDEO_FRAME_COMP_STRIDE (&frame, comp);
|
deststride = GST_VIDEO_FRAME_COMP_STRIDE (&frame, comp);
|
||||||
srcstride = img->stride[comp];
|
srcstride = img->stride[comp];
|
||||||
|
|
||||||
/* FIXME (Edward) : Do a plane memcpy is srcstride == deststride instead
|
if (srcstride == deststride) {
|
||||||
* of copying line by line */
|
GST_TRACE_OBJECT (dec, "Stride matches. Comp %d: %d, copying full plane",
|
||||||
|
comp, srcstride);
|
||||||
|
memcpy (dest, src, srcstride * height);
|
||||||
|
} else {
|
||||||
|
GST_TRACE_OBJECT (dec, "Stride mismatch. Comp %d: %d != %d, copying "
|
||||||
|
"line by line.", comp, srcstride, deststride);
|
||||||
for (line = 0; line < height; line++) {
|
for (line = 0; line < height; line++) {
|
||||||
memcpy (dest, src, width);
|
memcpy (dest, src, width);
|
||||||
dest += deststride;
|
dest += deststride;
|
||||||
src += srcstride;
|
src += srcstride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
gst_video_frame_unmap (&frame);
|
gst_video_frame_unmap (&frame);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user