MC3302_SDK_V1.1.9_202507281.../media/sample/common/sample_comm.h
2025-11-11 12:08:31 +08:00

237 lines
6.0 KiB
C
Executable File

#ifndef __SAMPLE_COMM_H__
#define __SAMPLE_COMM_H__
#ifdef __KERNEL__
#include <sys/sem.h>
#endif
#include "fh_math.h"
#include "fh_common.h"
#include "fh_system_mpipara.h"
#if 0
#include "fy_comm_vb.h"
#include "fy_comm_vi.h"
#include "fy_comm_vo.h"
#include "fy_comm_venc.h"
#include "fy_comm_vpss.h"
#include "fy_comm_vdec.h"
#include "fy_comm_region.h"
#include "fy_comm_adec.h"
#include "fy_comm_aenc.h"
#include "fy_comm_aio.h"
#include "fy_comm_vgs.h"
#include "fy_comm_tde.h"
#endif
#include "fh_defines.h"
#include "fh_system_mpi.h"
#include "vmm_api.h"
#include "fh_vb_mpi.h"
#if 0
#include "mpi_vi.h"
#endif
#include "fh_vo_mpi.h"
#include "fh_venc_mpi.h"
#if 0
#include "mpi_vpss.h"
#endif
#include "fh_vdec_mpi.h"
#include "fh_vgs_mpi.h"
#if 0
#include "mpi_region.h"
#include "mpi_adec.h"
#include "mpi_aenc.h"
#include "mpi_ai.h"
#include "mpi_ao.h"
#endif
//#include "sample_comm_param.h"
//#include "sample_comm_venc.h"
#include "sample_comm_vo.h"
#include "sample_comm_vdec.h"
#ifdef __cplusplus
#if __cplusplus
extern "C"{
#endif
#endif /* Begin of #ifdef __cplusplus */
/*******************************************************
macro define
*******************************************************/
#define CHECK_CHN_RET(express,Chn,name)\
do{\
FH_SINT32 Ret;\
Ret = express;\
if (FH_SUCCESS != Ret)\
{\
printf("\033[0;31m%s chn %d failed at %s: LINE: %d with %#x!\033[0;39m\n", name, Chn, __FUNCTION__, __LINE__, Ret);\
fflush(stdout);\
return Ret;\
}\
}while(0)
#define CHECK_RET(express,name)\
do{\
FH_SINT32 Ret;\
Ret = express;\
if (FH_SUCCESS != Ret)\
{\
printf("\033[0;31m%s failed at %s: LINE: %d with %#x!\033[0;39m\n", name, __FUNCTION__, __LINE__, Ret);\
return Ret;\
}\
}while(0)
//#define SAMPLE_GLOBAL_NORM VIDEO_ENCODING_MODE_PAL
#define SAMPLE_PIXEL_FORMAT PIXEL_FMT_YUV_SEMIPLANAR_422
#define NVP6134_FILE "/dev/nc_vdec"
#define SAMPLE_AUDIO_PTNUMPERFRM 320
#define SAMPLE_AUDIO_TLV320_DEV 1
#define SAMPLE_AUDIO_TW2865_DEV 0
#define SAMPLE_AUDIO_HDMI_AO_DEV DEV_I2S3
#if(defined(FY01) || defined(FY10) || defined(MC6630) || defined(MC6830)|| defined(MC6650))
#define SAMPLE_AUDIO_AI_DEV DEV_I2S0
#define SAMPLE_AUDIO_AO_DEV DEV_I2S1
#elif (defined(MC6850) || defined(mc6850) || defined(fy10p))
#define SAMPLE_AUDIO_AI_DEV DEV_I2S1
#define SAMPLE_AUDIO_AO_DEV DEV_I2S1
#else
#define SAMPLE_AUDIO_AI_DEV DEV_ACW0
#define SAMPLE_AUDIO_AO_DEV DEV_ACW0
#endif
#define SAMPLE_AUDIO_RATE AUDIO_SAMPLE_RATE_8000
#define SAMPLE_AUDIO_FRM_SIZE (SAMPLE_AUDIO_RATE*2/25)
#define SAMPLE_AAC_FRM_SIZE 1024*2
#define FRMAE_SIZE(fs,bit,num) (fs/num)*(bit/8)
#define CNT_PER_S 25
#if (defined(MC6630) || defined(MC6650))
#define AI_CHN_NUM AUDIO_CHN_NUM_16
#else
#define AI_CHN_NUM AUDIO_CHN_NUM_2
#endif
#if (defined(MC6850) || defined(mc6850) || defined(fy10p))
#define CODEC_MASTER_MODE FH_FALSE
#else
#define CODEC_MASTER_MODE FH_FALSE
#endif
#define SAMPLE_CIF_H264_PATH "../common/CIF.h264"
#define SAMPLE_1080P_H264_PATH "../common/1080P.h264"
#define SAMPLE_1080P_H265_PATH "../common/1080P.h265"
#define SAMPLE_4K_H264_PATH "../common/tmp1"
#define SAMPLE_4K_H265_PATH "../common/tmp2"
#define SAMPLE_1080P_MPEG4_PATH "../common/1080P.mpeg4"
#define SAMPLE_FIELD_H264_PATH "../common/D1_field.h264"
#define SAMPLE_1080P_JPEG_PATH "../common/1080P.jpg"
#define SAMPLE_4K_JPEG_PATH "../common/tmp3"
#define SAMPLE_MAX_VDEC_CHN_CNT 8
#define ALIGN_UP(x, a) ((x+a-1)&(~(a-1)))
#define ALIGN_BACK(x, a) ((a) * (((x) / (a))))
#define SAMPLE_SYS_ALIGN_WIDTH 16
#define VO_BKGRD_BLUE 0x0000FF
#define HD_WIDTH 1920
#define HD_HEIGHT 1088
#define D1_WIDTH 720
#define D1_HEIGHT 576
#define D1_WIDTH_704 704
#define _720P_WIDTH 1280
#define _720P_HEIGHT 720
#define GOSD_DEFAULT_PIXEDEPTH 2
#define SAMPLE_PRT(fmt...) \
do {\
printf("[%s]-%d: ", __FUNCTION__, __LINE__);\
printf(fmt);\
}while(0)
typedef struct sample_vi_param_s
{
FH_SINT32 s32ViDevCnt; // VI Dev Total Count
FH_SINT32 s32ViDevInterval; // Vi Dev Interval
FH_SINT32 s32ViChnCnt; // Vi Chn Total Count
FH_SINT32 s32ViChnInterval; // VI Chn Interval
}SAMPLE_VI_PARAM_S;
#define VPSS_GRP_NUM_TEST 4
typedef struct fysample_MEMBUF_S
{
VB_BLK hBlock;
VB_POOL hPool;
FH_UINT32 u32PoolId;
FH_UINT32 u32PhyAddr;
FH_UINT8 *pVirAddr;
FH_SINT32 s32Mdev;
} SAMPLE_MEMBUF_S;
typedef enum sample_rgn_change_type_e
{
RGN_CHANGE_TYPE_FGALPHA = 0,
RGN_CHANGE_TYPE_BGALPHA,
RGN_CHANGE_TYPE_LAYER
}SAMPLE_RGN_CHANGE_TYPE_EN;
typedef enum
{
HIFB_LAYER_0 = 0x0,
HIFB_LAYER_1,
HIFB_LAYER_2,
HIFB_LAYER_CURSOR_0,
HIFB_LAYER_ID_BUTT
} HIFB_LAYER_ID_E;
typedef enum fyAudioCodecType
{
AUDIO_CODEC_INNER = 0,
AUDIO_CODEC_TLV320,
AUDIO_CODEC_HDMI,
AUDIO_CODEC_TW2865,
AUDIO_CODEC_TP28XX,
AUDIO_CODEC_ACWRAPPER,
AUDIO_CODEC_NAU88C10,
AUDIO_CODEC_ALC5616,
AUDIO_CODEC_BUTT
}AudioCodecType;
typedef enum __AudioFileT
{
FILE_TYPE_AI,
FILE_TYPE_AENC,
FILE_TYPE_TOTAL
}AudioFileT;
/*******************************************************
function announce
*******************************************************/
FH_SINT32 SAMPLE_COMM_SYS_GetPicSize(VIDEO_NORM_E enNorm, PIC_SIZE_E enPicSize, FH_SIZE *pstSize);
FH_UINT32 SAMPLE_COMM_SYS_CalcPicVbBlkSize(VIDEO_NORM_E enNorm, PIC_SIZE_E enPicSize, PIXEL_FMT_E enPixFmt, FH_UINT32 u32AlignWidth,COMPRESS_MODE_E enCompFmt);
FH_SINT32 SAMPLE_COMM_SYS_MemConfig(FH_VOID);
FH_VOID SAMPLE_COMM_SYS_Exit(void);
FH_SINT32 SAMPLE_COMM_SYS_Init(VB_CONF_S *pstVbConf);
FH_SINT32 SAMPLE_COMM_SYS_Init_without_exit(VB_CONF_S *pstVbConf);
FH_SINT32 SAMPLE_COMM_SYS_Payload2FilePostfix(PAYLOAD_TYPE_E enPayload, FH_CHAR* szFilePostfix);
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* End of #ifdef __cplusplus */
#endif /* End of #ifndef __SAMPLE_COMMON_H__ */