|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef __MPP_META_H__ |
|
#define __MPP_META_H__ |
|
|
|
#include <stdint.h> |
|
#include "rk_type.h" |
|
|
|
#define FOURCC_META(a, b, c, d) ((RK_U32)(a) << 24 | \ |
|
((RK_U32)(b) << 16) | \ |
|
((RK_U32)(c) << 8) | \ |
|
((RK_U32)(d) << 0)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum MppMetaDataType_e { |
|
|
|
|
|
|
|
|
|
TYPE_FRAME = FOURCC_META('m', 'f', 'r', 'm'), |
|
TYPE_PACKET = FOURCC_META('m', 'p', 'k', 't'), |
|
TYPE_BUFFER = FOURCC_META('m', 'b', 'u', 'f'), |
|
|
|
|
|
TYPE_S32 = FOURCC_META('s', '3', '2', ' '), |
|
TYPE_S64 = FOURCC_META('s', '6', '4', ' '), |
|
TYPE_PTR = FOURCC_META('p', 't', 'r', ' '), |
|
} MppMetaType; |
|
|
|
typedef enum MppMetaKey_e { |
|
|
|
KEY_INPUT_FRAME = FOURCC_META('i', 'f', 'r', 'm'), |
|
KEY_INPUT_PACKET = FOURCC_META('i', 'p', 'k', 't'), |
|
KEY_OUTPUT_FRAME = FOURCC_META('o', 'f', 'r', 'm'), |
|
KEY_OUTPUT_PACKET = FOURCC_META('o', 'p', 'k', 't'), |
|
|
|
KEY_MOTION_INFO = FOURCC_META('m', 'v', 'i', 'f'), |
|
KEY_HDR_INFO = FOURCC_META('h', 'd', 'r', ' '), |
|
KEY_HDR_META_OFFSET = FOURCC_META('h', 'd', 'r', 'o'), |
|
KEY_HDR_META_SIZE = FOURCC_META('h', 'd', 'r', 'l'), |
|
|
|
|
|
KEY_INPUT_BLOCK = FOURCC_META('i', 'b', 'l', 'k'), |
|
KEY_OUTPUT_BLOCK = FOURCC_META('o', 'b', 'l', 'k'), |
|
KEY_INPUT_IDR_REQ = FOURCC_META('i', 'i', 'd', 'r'), |
|
KEY_OUTPUT_INTRA = FOURCC_META('o', 'i', 'd', 'r'), |
|
|
|
|
|
KEY_TEMPORAL_ID = FOURCC_META('t', 'l', 'i', 'd'), |
|
KEY_LONG_REF_IDX = FOURCC_META('l', 't', 'i', 'd'), |
|
KEY_ENC_AVERAGE_QP = FOURCC_META('a', 'v', 'g', 'q'), |
|
KEY_ROI_DATA = FOURCC_META('r', 'o', 'i', ' '), |
|
KEY_OSD_DATA = FOURCC_META('o', 's', 'd', ' '), |
|
KEY_OSD_DATA2 = FOURCC_META('o', 's', 'd', '2'), |
|
KEY_USER_DATA = FOURCC_META('u', 's', 'r', 'd'), |
|
KEY_USER_DATAS = FOURCC_META('u', 'r', 'd', 's'), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
KEY_ROI_DATA2 = FOURCC_META('r', 'o', 'i', '2'), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
KEY_QPMAP0 = FOURCC_META('e', 'q', 'm', '0'), |
|
|
|
|
|
KEY_MV_LIST = FOURCC_META('m', 'v', 'l', 't'), |
|
|
|
|
|
KEY_ENC_MARK_LTR = FOURCC_META('m', 'l', 't', 'r'), |
|
KEY_ENC_USE_LTR = FOURCC_META('u', 'l', 't', 'r'), |
|
|
|
|
|
KEY_ENC_FRAME_QP = FOURCC_META('f', 'r', 'm', 'q'), |
|
KEY_ENC_BASE_LAYER_PID = FOURCC_META('b', 'p', 'i', 'd'), |
|
|
|
|
|
KEY_DEC_TBN_EN = FOURCC_META('t', 'b', 'e', 'n'), |
|
KEY_DEC_TBN_Y_OFFSET = FOURCC_META('t', 'b', 'y', 'o'), |
|
KEY_DEC_TBN_UV_OFFSET = FOURCC_META('t', 'b', 'c', 'o'), |
|
} MppMetaKey; |
|
|
|
#define mpp_meta_get(meta) mpp_meta_get_with_tag(meta, MODULE_TAG, __FUNCTION__) |
|
|
|
#include "mpp_frame.h" |
|
#include "mpp_packet.h" |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
MPP_RET mpp_meta_get_with_tag(MppMeta *meta, const char *tag, const char *caller); |
|
MPP_RET mpp_meta_put(MppMeta meta); |
|
RK_S32 mpp_meta_size(MppMeta meta); |
|
|
|
MPP_RET mpp_meta_set_s32(MppMeta meta, MppMetaKey key, RK_S32 val); |
|
MPP_RET mpp_meta_set_s64(MppMeta meta, MppMetaKey key, RK_S64 val); |
|
MPP_RET mpp_meta_set_ptr(MppMeta meta, MppMetaKey key, void *val); |
|
MPP_RET mpp_meta_get_s32(MppMeta meta, MppMetaKey key, RK_S32 *val); |
|
MPP_RET mpp_meta_get_s64(MppMeta meta, MppMetaKey key, RK_S64 *val); |
|
MPP_RET mpp_meta_get_ptr(MppMeta meta, MppMetaKey key, void **val); |
|
|
|
MPP_RET mpp_meta_set_frame (MppMeta meta, MppMetaKey key, MppFrame frame); |
|
MPP_RET mpp_meta_set_packet(MppMeta meta, MppMetaKey key, MppPacket packet); |
|
MPP_RET mpp_meta_set_buffer(MppMeta meta, MppMetaKey key, MppBuffer buffer); |
|
MPP_RET mpp_meta_get_frame (MppMeta meta, MppMetaKey key, MppFrame *frame); |
|
MPP_RET mpp_meta_get_packet(MppMeta meta, MppMetaKey key, MppPacket *packet); |
|
MPP_RET mpp_meta_get_buffer(MppMeta meta, MppMetaKey key, MppBuffer *buffer); |
|
|
|
MPP_RET mpp_meta_get_s32_d(MppMeta meta, MppMetaKey key, RK_S32 *val, RK_S32 def); |
|
MPP_RET mpp_meta_get_s64_d(MppMeta meta, MppMetaKey key, RK_S64 *val, RK_S64 def); |
|
MPP_RET mpp_meta_get_ptr_d(MppMeta meta, MppMetaKey key, void **val, void *def); |
|
MPP_RET mpp_meta_get_frame_d(MppMeta meta, MppMetaKey key, MppFrame *frame, MppFrame def); |
|
MPP_RET mpp_meta_get_packet_d(MppMeta meta, MppMetaKey key, MppPacket *packet, MppPacket def); |
|
MPP_RET mpp_meta_get_buffer_d(MppMeta meta, MppMetaKey key, MppBuffer *buffer, MppBuffer def); |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif |
|
|