mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-15 19:08:54 +00:00
107 lines
2.9 KiB
C
107 lines
2.9 KiB
C
/*
|
|
* Copyright (C) 2020-2023 ArtInChip Technology Co. Ltd
|
|
*
|
|
* author: <jun.ma@artinchip.com>
|
|
* Desc: OMX_DemuxerComponent
|
|
*/
|
|
|
|
#ifndef _OMX_DEMUXER_COMPONENT_H_
|
|
#define _OMX_DEMUXER_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 "aic_parser.h"
|
|
#include "aic_stream.h"
|
|
|
|
OMX_ERRORTYPE OMX_DemuxerComponentDeInit(
|
|
OMX_IN OMX_HANDLETYPE hComponent);
|
|
|
|
OMX_ERRORTYPE OMX_DemuxerComponentInit(
|
|
OMX_IN OMX_HANDLETYPE hComponent);
|
|
|
|
typedef struct DEMUXER_OUT_PACKET {
|
|
OMX_BUFFERHEADERTYPE sBuff;
|
|
struct mpp_list sList;
|
|
}DEMUXER_OUT_PACKET;
|
|
|
|
//later,modify accord to real test
|
|
//#define DEMUX_AUDIO_PACKET_NUM_MAX 128
|
|
//#define DEMUX_AUDIO_PACKET_NUM_MAX 64
|
|
#define DEMUX_AUDIO_PACKET_NUM_MAX 16
|
|
#define DEMUX_VIDEO_PACKET_NUM_MAX 8
|
|
|
|
#define DEMUX_SKIP_AUDIO_TRACK 0x01
|
|
#define DEMUX_SKIP_VIDEO_TRACK 0x02
|
|
|
|
typedef struct DEMUXER_DATA_TYPE {
|
|
OMX_STATETYPE state;
|
|
pthread_mutex_t stateLock;
|
|
OMX_CALLBACKTYPE *pCallbacks;
|
|
OMX_PTR pAppData;
|
|
OMX_HANDLETYPE hSelf;
|
|
OMX_PORT_PARAM_TYPE sPortParam;
|
|
/*
|
|
OpenMAX_IL_1_1_2_Specification.pdf 8.9.3
|
|
output port: video and audio
|
|
input port : time or other
|
|
*/
|
|
OMX_PARAM_PORTDEFINITIONTYPE sInPortDef;
|
|
OMX_PARAM_PORTDEFINITIONTYPE sOutPortDef[2];
|
|
|
|
OMX_PARAM_BUFFERSUPPLIERTYPE sInBufSupplier;
|
|
OMX_PARAM_BUFFERSUPPLIERTYPE sOutBufSupplier[2];
|
|
OMX_PORT_TUNNELEDINFO sInPortTunneledInfo;
|
|
OMX_PORT_TUNNELEDINFO sOutPortTunneledInfo[2];
|
|
OMX_PARAM_CONTENTURITYPE *pDemuxerChnAttr;//struct demuxer_chn_attr sDemuxerChnAttr;
|
|
|
|
OMX_S32 nEos;
|
|
OMX_S32 sActiveStreamIndex[2];
|
|
OMX_PARAM_U32TYPE sStreamNum[2];
|
|
OMX_AUDIO_PARAM_PORTFORMATTYPE sAudioStream[1];
|
|
OMX_VIDEO_PARAM_PORTFORMATTYPE sVideoStream[1];
|
|
|
|
struct aic_parser_av_media_info sMediaInfo;
|
|
pthread_t threadId;
|
|
struct aic_message_queue sMsgQue;
|
|
struct aic_parser *pParser;
|
|
struct mpp_list sOutVideoEmptyPkt;
|
|
struct mpp_list sOutVideoReadyPkt;
|
|
struct mpp_list sOutVideoProcessingPkt;
|
|
pthread_mutex_t sVideoPktLock;
|
|
struct mpp_list sOutAudioEmptyPkt;
|
|
struct mpp_list sOutAudioReadyPkt;
|
|
struct mpp_list sOutAudioProcessingPkt;
|
|
pthread_mutex_t sAudioPktLock;
|
|
|
|
OMX_U32 nVideoPacketNum;
|
|
OMX_U32 nAudioPacketNum;
|
|
OMX_U32 nSendVideoPacketNum;
|
|
OMX_U32 nSendAudioPacketNum;
|
|
OMX_U32 nLeftReadyVideoPktFrameWhenCompoentExitNum;
|
|
OMX_U32 nLeftReadyAudioPktFrameWhenCompoentExitNum;
|
|
OMX_U32 nSendBackVideoPacketNum;
|
|
OMX_U32 nSendBackAudioPacketNum;
|
|
|
|
OMX_S32 nSeekFlag;
|
|
OMX_S32 nNeedPeek;
|
|
OMX_S32 nSkipTrack;
|
|
} DEMUXER_DATA_TYPE;
|
|
|
|
|
|
#endif
|