Files
mpp/osal/driver/inc/mpp_vcodec_client.h
xiaoxu.chen 1c867b3cac refactor[kmpp]: Replace venc_packet with KmppPacket
The kmpp.ko should update to after commit:

    commit 5502cf37894311092ca591904753ba429a6ab4ee
    Author: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
    Date:   Wed May 21 10:00:44 2025 +0800

        feat[kmpp_packet]: Add kmpp_packet interface

        Change-Id: I4a5bd37e6e34e084b2b6b4616bac770f58a2d15e
        Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>

Change-Id: Id77297068709422c1465093fa8104949a117a662
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
2025-06-09 12:12:52 +00:00

73 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,
/* new get packet interface */
VCODEC_CHAN_OUT_PKT_RDY,
/* 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