mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-15 19:08:54 +00:00
128 lines
3.0 KiB
C
128 lines
3.0 KiB
C
/*
|
|
* Copyright (C) 2020-2023 ArtInChip Technology Co. Ltd
|
|
*
|
|
* author: <jun.ma@artinchip.com>
|
|
* Desc: OMX_VdecComponent
|
|
*/
|
|
|
|
#ifndef _OMX_VDEC_COMPONENT_H_
|
|
#define _OMX_VDEC_COMPONENT_H_
|
|
|
|
#include "OMX_Types.h"
|
|
#include "OMX_Core.h"
|
|
#include "OMX_CoreExt1.h"
|
|
#include "OMX_Component.h"
|
|
|
|
|
|
#include <pthread.h>
|
|
#include <malloc.h>
|
|
#include <string.h>
|
|
#include <stddef.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
|
|
#include "mpp_log.h"
|
|
#include "mpp_list.h"
|
|
#include "mpp_mem.h"
|
|
#include "aic_message.h"
|
|
#include "mpp_decoder.h"
|
|
#include "mpp_dec_type.h"
|
|
|
|
|
|
OMX_ERRORTYPE OMX_VdecComponentDeInit(
|
|
OMX_IN OMX_HANDLETYPE hComponent);
|
|
|
|
OMX_ERRORTYPE OMX_VdecComponentInit(
|
|
OMX_IN OMX_HANDLETYPE hComponent);
|
|
|
|
|
|
|
|
typedef struct VDEC_OUT_FRAME {
|
|
struct mpp_frame sFrameInfo;
|
|
struct mpp_list sList;
|
|
}VDEC_OUT_FRAME;
|
|
|
|
|
|
typedef struct VDEC_IN_PACKET {
|
|
struct OMX_BUFFERHEADERTYPE sBuff;
|
|
struct mpp_list sList;
|
|
}VDEC_IN_PACKET;
|
|
|
|
|
|
|
|
|
|
#define VDEC_PACKET_ONE_TIME_CREATE_NUM 16
|
|
#define VDEC_PACKET_NUM_MAX 64
|
|
|
|
#define VDEC_FRAME_ONE_TIME_CREATE_NUM 8
|
|
#define VDEC_FRAME_NUM_MAX 32
|
|
|
|
#define VDEC_INPORT_STREAM_END_FLAG 0x01 //inprot stream end
|
|
#define VDEC_DECODER_CONSUME_ALL_INPORT_STREAM_FLAG 0x02 // decoder consume all inport stream
|
|
#define VDEC_GET_ALL_FRAME_FREOM_DECODER_FLAG 0x04 // get all frame from decoder to readylist
|
|
#define VDEC_OUTPORT_SEND_ALL_FRAME_FLAG 0x08 // consume all frame in readylist
|
|
|
|
|
|
typedef struct VDEC_DATA_TYPE {
|
|
OMX_STATETYPE state;
|
|
pthread_mutex_t stateLock;
|
|
OMX_CALLBACKTYPE *pCallbacks;
|
|
OMX_PTR pAppData;
|
|
OMX_HANDLETYPE hSelf;
|
|
OMX_PORT_PARAM_TYPE sPortParam;
|
|
|
|
OMX_PARAM_PORTDEFINITIONTYPE sInPortDef;
|
|
OMX_PARAM_PORTDEFINITIONTYPE sOutPortDef;
|
|
|
|
OMX_PARAM_BUFFERSUPPLIERTYPE sInBufSupplier;
|
|
OMX_PARAM_BUFFERSUPPLIERTYPE sOutBufSupplier;
|
|
OMX_PORT_TUNNELEDINFO sInPortTunneledInfo;
|
|
OMX_PORT_TUNNELEDINFO sOutPortTunneledInfo;
|
|
|
|
pthread_t threadId;
|
|
struct aic_message_queue sMsgQue;
|
|
|
|
OMX_U32 nReceivePacktOkNum;
|
|
OMX_U32 nReceivePacktFailNum;
|
|
OMX_U32 nPutPacktToDecoderOkNum;
|
|
OMX_U32 nPutPacktToDecoderFailNum;
|
|
OMX_U32 nGiveBackPacktOkNum;
|
|
OMX_U32 nGiveBackPacktFailNum;
|
|
|
|
OMX_U32 nGetFrameFromDecoderNum;
|
|
OMX_U32 nDropFrameFromDecoderNum;
|
|
OMX_U32 nLeftReadyFrameWhenCompoentExitNum;
|
|
OMX_U32 nSendFrameOkNum;
|
|
OMX_U32 nSendFrameErrorNum;
|
|
OMX_U32 nSendBackFrameOkNum;
|
|
OMX_S32 nSendBackFrameErrorNum;
|
|
|
|
OMX_S32 nStreamEndFlag;
|
|
OMX_S32 nDecodeEndFlag;
|
|
OMX_S32 nFrameEndFlag;
|
|
|
|
OMX_S32 nFlags;
|
|
|
|
|
|
struct mpp_decoder *pDecoder;
|
|
struct decode_config sDecoderConfig;
|
|
enum mpp_codec_type eCodeType;
|
|
|
|
OMX_S32 nInPktNodeNum;
|
|
struct mpp_list sInEmptyPkt;
|
|
struct mpp_list sInReadyPkt;
|
|
struct mpp_list sInProcessedPkt;
|
|
pthread_mutex_t sInPktLock;
|
|
OMX_S32 nOutFrameNodeNum;
|
|
struct mpp_list sOutEmptyFrame;
|
|
struct mpp_list sOutReadyFrame;
|
|
struct mpp_list sOutProcessingFrame;
|
|
pthread_mutex_t sOutFrameLock;
|
|
|
|
}VDEC_DATA_TYPE;
|
|
|
|
#endif
|
|
|
|
|