mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-12-26 11:17:44 +01:00
feat[kmpp_packet]: Add kmpp_packet interface
Change-Id: If913e5deb0077b8fe59f2a6a5eebfcd76fcabf7b Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
This commit is contained in:
parent
fddfc9db2e
commit
08bbde04bd
4 changed files with 109 additions and 0 deletions
|
|
@ -7,6 +7,7 @@ add_library(kmpp_base OBJECT
|
|||
kmpp_obj.c
|
||||
kmpp_frame.c
|
||||
kmpp_venc_cfg.c
|
||||
kmpp_packet.c
|
||||
)
|
||||
|
||||
set_target_properties(kmpp_base PROPERTIES FOLDER "kmpp/base")
|
||||
|
|
|
|||
36
kmpp/base/inc/kmpp_packet.h
Normal file
36
kmpp/base/inc/kmpp_packet.h
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/* SPDX-License-Identifier: Apache-2.0 OR MIT */
|
||||
/*
|
||||
* Copyright (c) 2025 Rockchip Electronics Co., Ltd.
|
||||
*/
|
||||
|
||||
#ifndef __KMPP_PACKET_H__
|
||||
#define __KMPP_PACKET_H__
|
||||
|
||||
#include "rk_type.h"
|
||||
|
||||
#define KMPP_PACKET_ENTRY_TABLE(prefix, ENTRY, STRCT, EHOOK, SHOOK, ALIAS) \
|
||||
ENTRY(prefix, s32, rk_s32, size, FLAG_NONE, size) \
|
||||
ENTRY(prefix, s32, rk_s32, length, FLAG_NONE, length) \
|
||||
ENTRY(prefix, s64, rk_s64, pts, FLAG_NONE, pts) \
|
||||
ENTRY(prefix, s64, rk_s64, dts, FLAG_NONE, dts) \
|
||||
ENTRY(prefix, u32, rk_u32, status, FLAG_NONE, status) \
|
||||
ENTRY(prefix, u32, rk_u32, temporal_id, FLAG_NONE, temporal_id) \
|
||||
STRCT(prefix, shm, KmppShmPtr, data, FLAG_NONE, data) \
|
||||
STRCT(prefix, shm, KmppShmPtr, buffer, FLAG_NONE, buffer) \
|
||||
STRCT(prefix, shm, KmppShmPtr, pos, FLAG_NONE, pos) \
|
||||
ENTRY(prefix, u32, rk_u32, flag, FLAG_NONE, flag)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define KMPP_OBJ_NAME kmpp_packet
|
||||
#define KMPP_OBJ_INTF_TYPE KmppPacket
|
||||
#define KMPP_OBJ_ENTRY_TABLE KMPP_PACKET_ENTRY_TABLE
|
||||
#include "kmpp_obj_func.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*__KMPP_PACKET_H__*/
|
||||
59
kmpp/base/inc/kmpp_packet_impl.h
Normal file
59
kmpp/base/inc/kmpp_packet_impl.h
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/* SPDX-License-Identifier: Apache-2.0 OR MIT */
|
||||
/*
|
||||
* Copyright (c) 2025 Rockchip Electronics Co., Ltd.
|
||||
*/
|
||||
|
||||
#ifndef __KMPP_PACKET_IMPL_H__
|
||||
#define __KMPP_PACKET_IMPL_H__
|
||||
|
||||
#include "kmpp_packet.h"
|
||||
|
||||
#define KMPP_PACKET_FLAG_EOS (0x00000001)
|
||||
#define KMPP_PACKET_FLAG_EXTRA_DATA (0x00000002)
|
||||
#define KMPP_PACKET_FLAG_INTERNAL (0x00000004)
|
||||
#define KMPP_PACKET_FLAG_EXTERNAL (0x00000008)
|
||||
#define KMPP_PACKET_FLAG_INTRA (0x00000010)
|
||||
#define KMPP_PACKET_FLAG_PARTITION (0x00000020)
|
||||
#define KMPP_PACKET_FLAG_EOI (0x00000040)
|
||||
|
||||
typedef struct RingBufPool_t {
|
||||
rk_u32 r_pos;
|
||||
rk_u32 w_pos;
|
||||
rk_u32 len;
|
||||
rk_u32 use_len;
|
||||
void *buf_base;
|
||||
MppBuffer buf;
|
||||
rk_u32 init_done;
|
||||
rk_u32 min_buf_size;
|
||||
rk_u32 l_r_pos;
|
||||
rk_u32 l_w_pos;
|
||||
rk_u32 max_use_len;
|
||||
} RingBufPool;
|
||||
|
||||
typedef struct RingBuf_t {
|
||||
MppBuffer buf;
|
||||
void *buf_start;
|
||||
RingBufPool *ring_pool;
|
||||
rk_u32 start_offset;
|
||||
rk_u32 r_pos;
|
||||
rk_u32 use_len;
|
||||
rk_u32 size;
|
||||
rk_u32 cir_flag;
|
||||
} RingBuf;
|
||||
|
||||
typedef struct KmppPacketImpl_t {
|
||||
const char *name;
|
||||
rk_s32 size;
|
||||
rk_s32 length;
|
||||
rk_s64 pts;
|
||||
rk_s64 dts;
|
||||
rk_u32 status;
|
||||
rk_u32 flag;
|
||||
rk_u32 temporal_id;
|
||||
KmppShmPtr data;
|
||||
KmppShmPtr pos;
|
||||
KmppShmPtr buffer;
|
||||
RingBuf buf;
|
||||
} KmppPacketImpl;
|
||||
|
||||
#endif /* __KMPP_PACKET_IMPL_H__ */
|
||||
13
kmpp/base/kmpp_packet.c
Normal file
13
kmpp/base/kmpp_packet.c
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
/* SPDX-License-Identifier: Apache-2.0 OR MIT */
|
||||
/*
|
||||
* Copyright (c) 2025 Rockchip Electronics Co., Ltd.
|
||||
*/
|
||||
|
||||
#include "kmpp_packet_impl.h"
|
||||
|
||||
#define KMPP_OBJ_NAME kmpp_packet
|
||||
#define KMPP_OBJ_INTF_TYPE KmppPacket
|
||||
#define KMPP_OBJ_IMPL_TYPE KmppPacketImpl
|
||||
#define KMPP_OBJ_SGLN_ID MPP_SGLN_PACKET
|
||||
#define KMPP_OBJ_ENTRY_TABLE KMPP_PACKET_ENTRY_TABLE
|
||||
#include "kmpp_obj_helper.h"
|
||||
Loading…
Add table
Add a link
Reference in a new issue