mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-05 09:06:50 +08:00
[hal_h264e_vepu]: Fix stride parameter compatible
Fix stride definition to compatible to both pixel stride and byte stride. In MPI the stride is defined to byte stride. But vepu requires 8 pixel aligned pixel stride. So we add more code to adapt to both case and check 8 pixel alignment. From opengles definition: Stride means bytes in a row of pixels including padding. So an image could be 510 pixels in width and rounded up to 512 pixels. The stride would be 512 * bit depth of the image's format. You could also have stride in pixels in which case the stride would be 512 pixels Pitch is a little more vague, but typically could be interchangeable with stride. Considering your reference is specifying in bytes, it's likely safe to assume they're not measuring in pixels. So the reference likely means the number of bytes in a row + padding, the only alternative would be number of bytes without padding e.g. image width * bit depth. Change-Id: I20acf71e2a6bea2eb08b41fe7df531154ebef897 Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
@@ -41,7 +41,10 @@ RK_S32 mpi_enc_width_default_stride(RK_S32 width, MppFrameFormat fmt)
|
||||
stride = MPP_ALIGN(width, 16);
|
||||
} break;
|
||||
case MPP_FMT_YUV422P:
|
||||
case MPP_FMT_YUV422SP:
|
||||
case MPP_FMT_YUV422SP: {
|
||||
/* NOTE: 422 need to align to 8 so chroma can align to 16 */
|
||||
stride = MPP_ALIGN(width, 8);
|
||||
} break;
|
||||
case MPP_FMT_RGB565:
|
||||
case MPP_FMT_BGR565:
|
||||
case MPP_FMT_RGB555:
|
||||
@@ -60,10 +63,12 @@ RK_S32 mpi_enc_width_default_stride(RK_S32 width, MppFrameFormat fmt)
|
||||
/* NOTE: for vepu limitation */
|
||||
stride = MPP_ALIGN(width, 8) * 3;
|
||||
} break;
|
||||
case MPP_FMT_RGB101010 :
|
||||
case MPP_FMT_BGR101010 :
|
||||
case MPP_FMT_ARGB8888 :
|
||||
case MPP_FMT_ABGR8888:
|
||||
case MPP_FMT_BGRA8888:
|
||||
case MPP_FMT_RGBA8888: {
|
||||
case MPP_FMT_ABGR8888 :
|
||||
case MPP_FMT_BGRA8888 :
|
||||
case MPP_FMT_RGBA8888 : {
|
||||
/* NOTE: for vepu limitation */
|
||||
stride = MPP_ALIGN(width, 8) * 4;
|
||||
} break;
|
||||
|
Reference in New Issue
Block a user