Files
mpp/osal/driver/inc/mpp_vcodec_client.h
Yandong Lin 2f1eac63f9 feat[kmpp]: Add kmpp module
Change-Id: Ia9c414edf625885fd551ad14f72dd1f7bc34172d
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-01-16 15:29:16 +08:00

72 lines
2.0 KiB
C

/* SPDX-License-Identifier: Apache-2.0 OR MIT */
/*
* Copyright (c) 2024 Rockchip Electronics Co., Ltd.
*/
#ifndef __MPP_VCODEC_CLIENT_H__
#define __MPP_VCODEC_CLIENT_H__
#include "rk_type.h"
#include "mpp_err.h"
#define VCODEC_ID_BASE_COMMON (0x00000000)
#define VCODEC_ID_BASE_STATE (0x00000100)
#define VCODEC_ID_BASE_FLOW (0x00000200)
#define VCODEC_ID_BASE_INPUT (0x00000400)
#define VCODEC_ID_BASE_INPUT_ACK (0x00000500)
#define VCODEC_ID_BASE_OUTPUT (0x00000600)
#define VCODEC_ID_BASE_OUTPUT_ACK (0x00000700)
enum vcodec_event_id {
/* channel comment event */
VCODEC_CHAN_CREATE = VCODEC_ID_BASE_COMMON,
VCODEC_CHAN_DESTROY,
VCODEC_CHAN_RESET,
VCODEC_CHAN_CONTROL,
/* channel state change event */
VCODEC_CHAN_START = VCODEC_ID_BASE_STATE,
VCODEC_CHAN_STOP,
VCODEC_CHAN_PAUSE,
VCODEC_CHAN_RESUME,
/* channel data flow event */
VCODEC_CHAN_BIND = VCODEC_ID_BASE_FLOW,
VCODEC_CHAN_UNBIND,
/* channel input side io event from external module */
VCODEC_CHAN_IN_FRM_RDY = VCODEC_ID_BASE_INPUT,
VCODEC_CHAN_IN_FRM_START,
VCODEC_CHAN_IN_FRM_EARLY_END,
VCODEC_CHAN_IN_FRM_END,
/* channel input side ack event from vcodec module */
VCODEC_CHAN_IN_BLOCK = VCODEC_ID_BASE_INPUT_ACK,
/* channel output side io event from vcodec module */
VCODEC_CHAN_OUT_STRM_Q_FULL = VCODEC_ID_BASE_OUTPUT,
VCODEC_CHAN_OUT_STRM_BUF_RDY,
VCODEC_CHAN_OUT_STRM_END,
VCODEC_CHAN_OUT_STRM_INFO,
/* channel input side ack event from external module */
VCODEC_CHAN_OUT_BLOCK = VCODEC_ID_BASE_OUTPUT_ACK,
};
#ifdef __cplusplus
extern "C" {
#endif
RK_S32 mpp_vcodec_open(void);
MPP_RET mpp_vcodec_ioctl(RK_S32 fd, RK_U32 cmd, RK_U32 ctrl_cmd, RK_U32 size, void *param);
MPP_RET mpp_vcodec_close(RK_S32 fd);
#ifdef __cplusplus
}
#endif
#endif