mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-05 17:16:50 +08:00

tips: control cmd for immediate_out, can send both before and after mpp_init. Signed-off-by: Ding Wei <leo.ding@rock-chips.com> Change-Id: Ibe66878cfab1f592b952d01bee3adade7c9d31bc
81 lines
2.3 KiB
C
81 lines
2.3 KiB
C
/*
|
|
* Copyright 2015 Rockchip Electronics Co. LTD
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#ifndef __PARSER_API_H__
|
|
#define __PARSER_API_H__
|
|
|
|
#include "rk_mpi_cmd.h"
|
|
#include "mpp_packet.h"
|
|
#include "mpp_buf_slot.h"
|
|
#include "hal_task.h"
|
|
|
|
/*
|
|
* slots - all decoder need a slots interface to sync its internal dpb management
|
|
* with buffer group in mpp_dec
|
|
*
|
|
* the reset wait for extension
|
|
*/
|
|
typedef struct DecParserInitCfg_t {
|
|
// input
|
|
MppCodingType coding;
|
|
MppBufSlots frame_slots;
|
|
MppBufSlots packet_slots;
|
|
|
|
// output
|
|
RK_S32 task_count;
|
|
RK_U32 need_split;
|
|
RK_U32 immediate_out;
|
|
RK_U32 internal_pts;
|
|
} ParserCfg;
|
|
|
|
|
|
/*
|
|
* Parser is the data structure provided from different decoders
|
|
*
|
|
* They will be static register to mpp_dec for scaning
|
|
* name - decoder name
|
|
* coding - decoder coding type
|
|
* ctx_size - decoder context size, mpp_dec will use this to malloc memory
|
|
* flag - reserve
|
|
*
|
|
* init - decoder initialization function
|
|
* deinit - decoder de-initialization function
|
|
* parse - decoder main working function, mpp_dec will input packet and get output syntax
|
|
* reset - decoder reset function
|
|
* flush - decoder output all frames
|
|
* control - decoder configure function
|
|
*/
|
|
typedef struct ParserApi_t {
|
|
char *name;
|
|
MppCodingType coding;
|
|
RK_U32 ctx_size;
|
|
RK_U32 flag;
|
|
|
|
MPP_RET (*init)(void *ctx, ParserCfg *cfg);
|
|
MPP_RET (*deinit)(void *ctx);
|
|
|
|
MPP_RET (*prepare)(void *ctx, MppPacket pkt, HalDecTask *task);
|
|
MPP_RET (*parse)(void *ctx, HalDecTask *task);
|
|
|
|
MPP_RET (*reset)(void *ctx);
|
|
MPP_RET (*flush)(void *ctx);
|
|
MPP_RET (*control)(void *ctx, MpiCmd cmd, void *param);
|
|
MPP_RET (*callback)(void *ctx, void *err_info);
|
|
} ParserApi;
|
|
|
|
|
|
#endif /*__PARSER_API_H__*/
|