mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-14 18:38:55 +00:00
V1.0.6
This commit is contained in:
80
packages/artinchip/mpp/include/mpp_encoder.h
Normal file
80
packages/artinchip/mpp/include/mpp_encoder.h
Normal file
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2024 ArtInChip Technology Co. Ltd
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Author: <qi.xu@artinchip.com>
|
||||
* Desc: mpp encoder
|
||||
*/
|
||||
|
||||
#ifndef __MPP_ENCODER_H__
|
||||
#define __MPP_ENCODER_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "mpp_dec_type.h"
|
||||
|
||||
enum mpp_enc_errno {
|
||||
ENC_OK = 0,
|
||||
ENC_ERR_NOT_SUPPORT = -1,
|
||||
ENC_ERR_NULL_PTR = -2,
|
||||
ENC_ERR_NOT_CREATE = -3,
|
||||
};
|
||||
|
||||
struct mpp_encoder;
|
||||
|
||||
/**
|
||||
* struct encode_config - encode congig
|
||||
* @pix_fmt: pixel format of output frame
|
||||
*/
|
||||
struct encode_config {
|
||||
int quality; // encode quality, 1~100
|
||||
};
|
||||
|
||||
/**
|
||||
* mpp_encoder_create - create encoder (h264/jpeg/png ...)
|
||||
* @type: encoder type
|
||||
*/
|
||||
struct mpp_encoder* mpp_encoder_create(enum mpp_codec_type type);
|
||||
|
||||
/**
|
||||
* mpp_encoder_destory - destory encoder
|
||||
* @encoder: mpp_encoder context
|
||||
*/
|
||||
void mpp_encoder_destory(struct mpp_encoder* encoder);
|
||||
|
||||
/**
|
||||
* mpp_encoder_init - init encoder
|
||||
* @encoder: mpp_encoder context
|
||||
* @config: configuration of encoder
|
||||
*/
|
||||
int mpp_encoder_init(struct mpp_encoder *encoder, struct encode_config *config);
|
||||
|
||||
/**
|
||||
* mpp_encoder_encode - encode one packet
|
||||
* @encoder: mpp_encoder context
|
||||
*/
|
||||
int mpp_encoder_encode(struct mpp_encoder* encoder, struct mpp_frame *frame, struct mpp_packet *packet);
|
||||
|
||||
|
||||
/**
|
||||
* mpp_encoder_control - send a control command (like, set/get parameter) to mpp_encoder
|
||||
* @encoder: mpp_encoder context
|
||||
* @cmd: command name, see mpp_type.h
|
||||
* @param: command data
|
||||
*/
|
||||
int mpp_encoder_control(struct mpp_encoder* encoder, int cmd, void* param);
|
||||
|
||||
/**
|
||||
* mpp_encoder_reset - reset mpp_encoder
|
||||
* @encoder: mpp_encoder context
|
||||
*/
|
||||
int mpp_encoder_reset(struct mpp_encoder* encoder);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user