Hello,
H.264 HP decoder generates YUV buffers that are padded to be of size multiple of 16. For example:
IVIDEO1_BufDesc.frameWidth = 854; // Non-multiple of 16
IVIDEO1_BufDesc.frameHeight = 480;
IVIDEO1_BufDesc.framePitch = 864; // Width with padding to be multiple of 16
I am trying to use this padded YUV buffers as input for H.264 HP encoder but with no luck - generated image is not correct. I did the following:
IVIDENC2_DynamicParams.captureWidth = 864;
IVIDENC2_DynamicParams.inputWidth = 854;
IVIDENC2_DynamicParams.inputHeight = 480;
IVIDEO2_BufDesc.planeDesc[N].buf = IVIDEO1_BufDesc.bufDesc[N].buf;
IVIDEO2_BufDesc.planeDesc[N].bufSize.bytes = IVIDEO1_BufDesc.bufDesc[N].bufSize;
IVIDEO2_BufDesc.inEncoderBufferDescriptor.imagePitch[N] = IVIDEO1_BufDesc.framePitch;
IVIDENC2_DynamicParams - encoder dynamic parameters.
IVIDEO1_BufDesc - output buffer descriptor from decoder.
IVIDEO2_BufDesc - input buffer descriptor to encoder.
When width is multiple of 16 generated image is correct.
Can you advise how to pass padded YUV buffers from H.264 HP decoder to encoder?
Regards,
Andrey Lisnevich