fix[mpp_frame]: Add rk_fbc fmt for 1126b

Change-Id: I357efd122b1bdf3345ca887130d837ebf7cb5afa
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
This commit is contained in:
Yanjun Liao 2025-02-19 17:25:57 +08:00 committed by Herman Chen
parent 2e74006879
commit 27ab1e4abd
2 changed files with 11 additions and 1 deletions

View file

@ -214,6 +214,14 @@ typedef enum {
*/ */
#define MPP_FRAME_FBC_AFBC_V2 (0x00200000) #define MPP_FRAME_FBC_AFBC_V2 (0x00200000)
/*
* RKFBC is for video decoder output and video encoder Input.
* It has default header stride to be calculated * from width and height:
* Header stride = MPP_ALIGN(width, 64) / 64 * 16
* Payload offset is always set to zero.
*/
#define MPP_FRAME_FBC_RKFBC (0x00400000)
#define MPP_FRAME_FMT_LE_MASK (0x01000000) #define MPP_FRAME_FMT_LE_MASK (0x01000000)
#define MPP_FRAME_FMT_IS_YUV(fmt) (((fmt & MPP_FRAME_FMT_COLOR_MASK) == MPP_FRAME_FMT_YUV) && \ #define MPP_FRAME_FMT_IS_YUV(fmt) (((fmt & MPP_FRAME_FMT_COLOR_MASK) == MPP_FRAME_FMT_YUV) && \
@ -228,6 +236,7 @@ typedef enum {
* For MPP_FRAME_FBC_AFBC_V1 the 16byte aligned stride is used. * For MPP_FRAME_FBC_AFBC_V1 the 16byte aligned stride is used.
*/ */
#define MPP_FRAME_FMT_IS_FBC(fmt) (fmt & MPP_FRAME_FBC_MASK) #define MPP_FRAME_FMT_IS_FBC(fmt) (fmt & MPP_FRAME_FBC_MASK)
#define MPP_FRAME_FMT_IS_RKFBC(fmt) (fmt & MPP_FRAME_FBC_RKFBC)
#define MPP_FRAME_FMT_IS_HDR(fmt) (fmt & MPP_FRAME_HDR_MASK) #define MPP_FRAME_FMT_IS_HDR(fmt) (fmt & MPP_FRAME_HDR_MASK)

View file

@ -246,7 +246,8 @@ RK_U32 mpp_frame_get_fbc_offset(MppFrame frame)
if (fbc_version == MPP_FRAME_FBC_AFBC_V1) { if (fbc_version == MPP_FRAME_FBC_AFBC_V1) {
fbc_offset = MPP_ALIGN(MPP_ALIGN(p->width, 16) * fbc_offset = MPP_ALIGN(MPP_ALIGN(p->width, 16) *
MPP_ALIGN(p->height, 16) / 16, SZ_4K); MPP_ALIGN(p->height, 16) / 16, SZ_4K);
} else if (fbc_version == MPP_FRAME_FBC_AFBC_V2) { } else if (fbc_version == MPP_FRAME_FBC_AFBC_V2 ||
fbc_version == MPP_FRAME_FBC_RKFBC) {
fbc_offset = 0; fbc_offset = 0;
} }
p->fbc_offset = fbc_offset; p->fbc_offset = fbc_offset;