C2SoftMpeg4Enc: Handle yStride not equal to aligned width

mpeg4 encoder doesn't support a stride that is not equal to align(width, 16)
In such cases copy the input to an intermediate buffer and use that for
encoding

Bug: 136962421
Bug: 139921039
Test: tested few nv12 and i420 encoding

Change-Id: I5a8adfc48aff79f52852be94bb46c10e7f9a0469
gugelfrei
Harish Mahendrakar 5 years ago committed by Pawin Vongmasa
parent 1210f45ea7
commit a6dfef8a44

@ -517,9 +517,11 @@ void C2SoftMpeg4Enc::process(
if (layout.planes[layout.PLANE_Y].colInc == 1
&& layout.planes[layout.PLANE_U].colInc == 1
&& layout.planes[layout.PLANE_V].colInc == 1
&& yStride == align(width, 16)
&& uStride == vStride
&& yStride == 2 * vStride) {
// I420 compatible - planes are already set up above
// I420 compatible with yStride being equal to aligned width
// planes are already set up above
break;
}

Loading…
Cancel
Save