[mpp_frame]: add hdr dynamic meta info

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Iea7585709bcd3e17d11c28f7e87093fe9f15f77a
This commit is contained in:
Yandong Lin
2022-11-24 14:22:58 +08:00
parent 15ab8f73be
commit 77e8a96f05
3 changed files with 21 additions and 3 deletions

View File

@@ -78,10 +78,10 @@ typedef enum {
MPP_FRAME_PRI_BT470M = 4, ///< also FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
MPP_FRAME_PRI_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM
MPP_FRAME_PRI_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
MPP_FRAME_PRI_SMPTE240M = 7, ///< functionally identical to above
MPP_FRAME_PRI_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC/SMPTE ST 170 (2004)
MPP_FRAME_PRI_SMPTE240M = 7, ///< functionally identical to above/SMPTE ST 240
MPP_FRAME_PRI_FILM = 8, ///< colour filters using Illuminant C
MPP_FRAME_PRI_BT2020 = 9, ///< ITU-R BT2020
MPP_FRAME_PRI_BT2020 = 9, ///< ITU-R BT2020 / ITU-R BT.2100-2
MPP_FRAME_PRI_SMPTEST428_1 = 10, ///< SMPTE ST 428-1 (CIE 1931 XYZ)
MPP_FRAME_PRI_SMPTE431 = 11, ///< SMPTE ST 431-2 (2011) / DCI P3
MPP_FRAME_PRI_SMPTE432 = 12, ///< SMPTE ST 432-1 (2010) / P3 D65 / Display P3
@@ -171,6 +171,12 @@ typedef enum {
#define MPP_FRAME_FBC_MASK (0x00f00000)
#define MPP_FRAME_FBC_NONE (0x00000000)
#define MPP_FRAME_HDR_MASK (0x0f000000)
#define MPP_FRAME_HDR_NONE (0x00000000)
#define MPP_FRAME_HDR (0x01000000)
/*
* AFBC_V1 is for ISP output.
* It has default payload offset to be calculated * from width and height:
@@ -196,6 +202,8 @@ typedef enum {
*/
#define MPP_FRAME_FMT_IS_FBC(fmt) (fmt & MPP_FRAME_FBC_MASK)
#define MPP_FRAME_FMT_IS_HDR(fmt) (fmt & MPP_FRAME_HDR_MASK)
#define MPP_FRAME_FMT_IS_LE(fmt) ((fmt & MPP_FRAME_FMT_LE_MASK) == MPP_FRAME_FMT_LE_MASK)
#define MPP_FRAME_FMT_IS_BE(fmt) ((fmt & MPP_FRAME_FMT_LE_MASK) == 0)
@@ -263,6 +271,12 @@ typedef struct MppFrameContentLightMetadata {
RK_U16 MaxFALL;
} MppFrameContentLightMetadata;
typedef struct MppFrameHdrDynamicMeta {
RK_U32 hdr_fmt;
RK_U32 size;
RK_U8 data[];
} MppFrameHdrDynamicMeta;
typedef enum {
MPP_FRAME_ERR_UNKNOW = 0x0001,
MPP_FRAME_ERR_UNSUPPORT = 0x0002,
@@ -380,6 +394,8 @@ MppFrameMasteringDisplayMetadata mpp_frame_get_mastering_display(const MppFrame
void mpp_frame_set_mastering_display(MppFrame frame, MppFrameMasteringDisplayMetadata mastering_display);
MppFrameContentLightMetadata mpp_frame_get_content_light(const MppFrame frame);
void mpp_frame_set_content_light(MppFrame frame, MppFrameContentLightMetadata content_light);
MppFrameHdrDynamicMeta* mpp_frame_get_hdr_dynamic_meta(const MppFrame frame);
void mpp_frame_set_hdr_dynamic_meta(MppFrame frame, MppFrameHdrDynamicMeta *vivi_data);
/*
* HDR parameter

View File

@@ -96,6 +96,7 @@ struct MppFrameImpl_t {
MppFrameRational sar;
MppFrameMasteringDisplayMetadata mastering_display;
MppFrameContentLightMetadata content_light;
MppFrameHdrDynamicMeta *hdr_dynamic_meta;
/*
* buffer information

View File

@@ -284,6 +284,7 @@ MPP_FRAME_ACCESSORS(MppFrameFormat, fmt)
MPP_FRAME_ACCESSORS(MppFrameRational, sar)
MPP_FRAME_ACCESSORS(MppFrameMasteringDisplayMetadata, mastering_display)
MPP_FRAME_ACCESSORS(MppFrameContentLightMetadata, content_light)
MPP_FRAME_ACCESSORS(MppFrameHdrDynamicMeta*, hdr_dynamic_meta)
MPP_FRAME_ACCESSORS(size_t, buf_size)
MPP_FRAME_ACCESSORS(RK_U32, errinfo)
MPP_FRAME_ACCESSORS(MppTask, task)