[meta]: Add more meta key for encoder

1. Add KEY_ENC_MARK_LTR for marking current frame to be long-term
referece frame.
2. Add KEY_ENC_USE_LTR for assigning a long-term reference frame as
current frame's reference frame.
3. Add KEY_ENC_FRAME_QP for assigning a fix QP for current frame.
4. Add KEY_ENC_BASE_LAYER_PID for assining a priority id for base layer
in tsvc mode.

All these four features are defined in MLVEC test.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ib041d9c2f203d7e582a3402bd61dd6a9eb18015a
This commit is contained in:
Herman Chen 2020-07-08 14:57:52 +08:00
parent 4397cb30ca
commit 7f4ebeec8e
2 changed files with 28 additions and 15 deletions

View file

@ -82,6 +82,14 @@ typedef enum MppMetaKey_e {
/* input motion list for smart p rate control */
KEY_MV_LIST = FOURCC_META('m', 'v', 'l', 't'),
/* frame long-term reference frame operation */
KEY_ENC_MARK_LTR = FOURCC_META('m', 'l', 't', 'r'),
KEY_ENC_USE_LTR = FOURCC_META('u', 'l', 't', 'r'),
/* MLVEC specified encoder feature */
KEY_ENC_FRAME_QP = FOURCC_META('f', 'r', 'm', 'q'),
KEY_ENC_BASE_LAYER_PID = FOURCC_META('b', 'p', 'i', 'd'),
} MppMetaKey;
#define mpp_meta_get(meta) mpp_meta_get_with_tag(meta, MODULE_TAG, __FUNCTION__)

View file

@ -26,27 +26,32 @@
static MppMetaDef meta_defs[] = {
/* categorized by type */
/* data flow type */
{ KEY_INPUT_FRAME, TYPE_FRAME, },
{ KEY_OUTPUT_FRAME, TYPE_FRAME, },
{ KEY_INPUT_PACKET, TYPE_PACKET, },
{ KEY_OUTPUT_PACKET, TYPE_PACKET, },
{ KEY_INPUT_FRAME, TYPE_FRAME, },
{ KEY_OUTPUT_FRAME, TYPE_FRAME, },
{ KEY_INPUT_PACKET, TYPE_PACKET, },
{ KEY_OUTPUT_PACKET, TYPE_PACKET, },
/* buffer for motion detection */
{ KEY_MOTION_INFO, TYPE_BUFFER, },
{ KEY_MOTION_INFO, TYPE_BUFFER, },
/* buffer storing the HDR information for current frame*/
{ KEY_HDR_INFO, TYPE_BUFFER, },
{ KEY_HDR_INFO, TYPE_BUFFER, },
{ KEY_OUTPUT_INTRA, TYPE_S32, },
{ KEY_INPUT_BLOCK, TYPE_S32, },
{ KEY_OUTPUT_BLOCK, TYPE_S32, },
{ KEY_OUTPUT_INTRA, TYPE_S32, },
{ KEY_INPUT_BLOCK, TYPE_S32, },
{ KEY_OUTPUT_BLOCK, TYPE_S32, },
/* extra information for tsvc */
{ KEY_TEMPORAL_ID, TYPE_S32, },
{ KEY_LONG_REF_IDX, TYPE_S32, },
{ KEY_TEMPORAL_ID, TYPE_S32, },
{ KEY_LONG_REF_IDX, TYPE_S32, },
{ KEY_ROI_DATA, TYPE_PTR, },
{ KEY_OSD_DATA, TYPE_PTR, },
{ KEY_USER_DATA, TYPE_PTR, },
{ KEY_MV_LIST, TYPE_PTR, },
{ KEY_ROI_DATA, TYPE_PTR, },
{ KEY_OSD_DATA, TYPE_PTR, },
{ KEY_USER_DATA, TYPE_PTR, },
{ KEY_MV_LIST, TYPE_PTR, },
{ KEY_ENC_MARK_LTR, TYPE_S32, },
{ KEY_ENC_USE_LTR, TYPE_S32, },
{ KEY_ENC_FRAME_QP, TYPE_S32, },
{ KEY_ENC_BASE_LAYER_PID, TYPE_S32, },
};
class MppMetaService