emhwlib_globaltypes.h

来自「SigmDesign SMP8634 media decode chip dev」· C头文件 代码 · 共 1,832 行 · 第 1/4 页

H
1,832
字号
};enum PcmCdaChannelAssign_type {	// according to C.1-1 table	// 1st digit after PcmCda represents nchannels	PcmCda1_C = 0,        // 0x00	PcmCda2_LR,           // 0x01	PcmCda3_LfRfS,        // 0x02	PcmCda4_LfRfLsRs,     // 0x03	PcmCda3_LfRfLfe,      // 0x04	PcmCda4_LfRfLfeS,     // 0x05	PcmCda5_LfRfLfeLsRs,  // 0x06	PcmCda3_LfRfC,        // 0x07	PcmCda4_LfRfCS,       // 0x08	PcmCda5_LfRfCLsRs,    // 0x09	PcmCda4_LfRfCLfe,     // 0x0a	PcmCda5_LfRfCLfeS,    // 0x0b	PcmCda6_LfRfCLfeLsRs, // 0x0c	PcmCda5_LfRfLsRsLfe = 0x12,// 0x12	PcmCda5_LfRfLsRsC,    // 0x13	PcmCda6_LfRfLsRsCLfe, // 0x14};/** Disable SPDIF or selects between uncompressed and compressed.@note @li Some formats such as MPEG and AAC can only play uncompressed. */enum OutputSpdif_type {	/** SPDIF output is disabled. Stream is decoded - when decoder available - and sent to I2S. */	OutputSpdif_Disable = 0,	/** SPDIF output is compressed whenever possible (AC3, DTS...). MPEG or AAC will not be sent compressed over SPDIF. Stream is decoded - when decoder available - and sent to I2S. */	OutputSpdif_Compressed = 1,	/** SPDIF output consists in 2 channels PCM. Stream is decoded - when decoder available - and sent to I2S. @note @li Use codec dependent settings for additional options such as surround */	OutputSpdif_Uncompressed = 3,	/** SPDIF output is compressed whenever possible (AC3, DTS...), audio not decoded at all (I2S is blank). */	OutputSpdif_NoDecodeCompressed = 5};/*  Note: Please verify it with audio.global.h in /ucode_lib/ucode/audio/commmo_new */enum AudioChannelAssignment_type {	Audio_Ch_ASSI_DUAL = 0,		//DUAL    (LR,1+1)	Audio_Ch_ASSI_C,			//MODE10  (C,1/0)	Audio_Ch_ASSI_LR,			//MODE20  (L, R, 2/0) 	Audio_Ch_ASSI_LCR,			//MODE30  (L, C, R, 3/0)	Audio_Ch_ASSI_LRS,			//MODE21  (L, R, S, 2/1)	Audio_Ch_ASSI_LCRS,			//MODE31  (L, C, R, S, 3/1)	Audio_Ch_ASSI_LRLsRs,		//MODE22  (L, R, Ls, Rs, 2/2)	Audio_Ch_ASSI_LCRLsRs,		//MODE32  (L, C, R, Ls, Rs, 3/2)	Audio_Ch_ASSI_LCRLsRsLssRss,//MODE322 (L, C, R, Ls, Rs, Lss, Rss, 3/2/2)	Audio_Ch_ASSI_LCRLssRss,	//MODE302 (L, C, R, Lss, Rss, 3/0/2)		Audio_Ch_ASSI_LCRLsRsSs,	//MODE321 (L, C, R, Ls, Rs, Ss, 3/2/1)	Audio_Ch_ASSI_LRLsRsLssRss,	//MODE222 (L, R, Ls, Rs, Lss, Rss, 2/2/2)	AUDIO_Ch_ASSI_LCRCs,		//MODE301 (L, C, R, Cs)	AUDIO_Ch_ASSI_LRLssRss,		//MODE202 (L, R, Lss, Rss)	AUDIO_Ch_ASSI_LRLsRsCs,		//MODE221 (L, R, Ls, Rs, Cs)	Audio_Ch_ASSI_NOT_SUPPORTED	//(Not supported)};// Reporting audio decoding status.struct AudioDecoderInfo {	RMuint32 CodecID;			// Decoder ID	RMuint32 SampleRate;		// Audio source sample rate	RMuint32 ChannelNumber;		// Channle Number	RMuint32 SampleCount;		// decoded sample count	RMuint32 ByteCount;			// Consumed byte count	RMuint32 ErrorCount;		// Number of error happened.	RMuint32 BassMode;	RMuint32 SpeakerConfig;		RMuint32 lfe;	RMuint32 DualMode;	RMuint32 SpdifMode;	enum AudioChannelAssignment_type ChannelAssignment; // enum AudioChannelAssignment_type	RMuint32 SkippedFrameCount;};struct auxiliary_data_type1 {	RMuint32 data[4];};/* struct EMhwlibCopyControlWithVersion is used for RMGenericPropertyID_CopyControl property that replaces  RMGenericPropertyID_MacrovisionLevel and RMGenericPropertyID_CGMSA.  RMGenericPropertyID_MacrovisionLevel sets agc_level and the aps of line20, line21_xds with the same value.  New requirements ask for different levels for agc and aps for line 20, 21_xds.  Also macrovision changed the coefficient table for AACS -> need for agc_version.*/enum EMhwlibAGCVersion {	EMhwlibAGCVersion_ConstantBPP = 0,	EMhwlibAGCVersion_AlternateBPP,};/* The EMhwlibCopyControlVersion is added for eventual changes in the future. */enum EMhwlibCopyControlVersion {	EMhwlibCopyControlVersion_0 = 0, /* It matches the current EMhwlibCopyControl structure */};struct EMhwlibCopyControl {	/* start for EMhwlibCopyControlVersion_0 */	enum EMhwlibAGCVersion agc_version;	RMuint32 agc_level;          /* macrovision pulses 0, 1, 2, 3. Usually is same value as aps. */	RMuint32 cgmsa;              /* copy generation management system 0, 1, 2, 3. Sent on line 20 and					in "Copy and Redistribution Control Packet" on line21_xds. */	RMuint32 aps_level;          /* analog protection system 0, 1, 2, 3. Sent on line 20 and					in "Copy and Redistribution Control Packet" on line21_xds. */	RMuint32 rcd;                /* redistribution control descriptor. Sent on line 20 and					in "Copy and Redistribution Control Packet" on line21_xds. */	RMuint32 asb;                /* analog source bit. Sent on line 20 and					in "Copy and Redistribution Control Packet" on line21_xds. */	/* end for EMhwlibCopyControlVersion_0 */};struct EMhwlibCopyControlWithVersion {	enum EMhwlibCopyControlVersion cci_version;	struct EMhwlibCopyControl cci;};struct SurfaceAspectRatio_type {	/** picture aspect ratio (default), pixel aspect ratio or display aspect ratio */	enum EMhwlibAspectRatioType type;	/** pixel or display aspect ratio of the surface, value ignored when picture aspect ratio is selected as type */	struct EMhwlibAspectRatio ar;};#define NO_TIMER 0xFFFFFFFFenum Master_type {	Master_STC = 0,	Master_Audio};	enum StcFilter_type {	NoFilter = 0,	/*Filter1,*/};	enum CorrectionMethod_type {	NoCorrection = 0,	CleanDividerAdjust, 	VCXOAdjust, 	/*InternalAutoAdjust,*/ };struct Speed_type {	RMint32 enumerator;	RMuint32 denominator;};typedef struct {	RMuint32 Address;	RMuint32 Size;} MMBlockArray[256];enum EMhwlibClosedCaptionType {	EMhwlibClosedCaptionType_None = 1,	EMhwlibClosedCaptionType_ATSC,	EMhwlibClosedCaptionType_DVD,	EMhwlibClosedCaptionType_SCTE,	EMhwlibClosedCaptionType_29,};struct user_data_context {#ifndef NO_USER_DATA_REORDERING#else	RMuint32 anchor_cc_data[32];	RMuint32 anchor_cc_pts_hi[32];	RMuint32 anchor_cc_pts_lo[32];	RMuint32 anchor_cc_count;#endif	enum EMhwlibClosedCaptionType cc_type;	RMbool afd_done;  // set to TRUE by user data parser, set to FALSE by VideoDecoder	enum EMhwlibActiveFormat afd;  // active format description, extracted from user data	RMbool afd_valid;};enum DiscontinuityType {	PcrDiscontinuity = 0,	/*VideoPtsDiscontinuity,	AudioPtsDiscontinuity*/};enum EMhwlibDataType_type {	EMhwlibData_TS,            /*  0 - store transport stream as it is */	EMhwlibData_PSI,           /*  1 - section filtering according 13818-1, 2.4.4. */	EMhwlibData_TSpayload,     /*  2 - reserved */	EMhwlibData_VPES,          /*  3 - store video PES packets. Video can have PES_lenght=0 in transport files. */	EMhwlibData_APES,          /*  4 - store PES packets with PES_lenght not 0.  */	EMhwlibData_PCR,           /*  5 - used in case of PCR extracted by firmware from PidBank filter.	                                   The pid must be different than the video pid.					   The output fifo size can be 0. */	EMhwlibData_Reserved0,     /*  6 - reserved */	EMhwlibData_Vpayload_pts,  /*  7 - store payload in output bitstream fifo and PTS in output pts fifo.					   If pts fifo has size 0, the pts-es are not stored. */	EMhwlibData_ASpayload_pts, /*  8 - store payload in output bitstream fifo and PTS in output pts fifo.					   If pts fifo has size 0, the pts-es are not stored. */	EMhwlibData_RDI,           /*  9 - RDI is used for CPRM PES packets */	EMhwlibData_Private,       /* 10 - reserved */	EMhwlibData_DSM_CC,        /* 11 - section filtering according 13818-6, 9.2.3. The only difference					   between PSI ans DSMCC is that the section_syntax_indicator and					   the private_indicator should be complement. */	EMhwlibData_DMB_OD,        /* 12 - reserved */	EMhwlibData_DMB_BIFS       /* 13 - reserved */};enum EMhwlibPidInput_type {	EMhwlibPid_Ts = 0, /* The TS packets with transport_scrambling_control not null are NOT sent                              to the outputs if the cipher and the key are not enabled. */	EMhwlibPid_Ts1     /* the TS packets with transport_scrambling_control not null are sent                              to the outputs even there is no valid cipher and key. */};enum EMhwlibPesInput_type {	EMhwlibPes_packet = 0, /* The PES packets with scrambling_control not null are NOT sent                              to the outputs if the cipher and the key are not enabled. */	EMhwlibPes_packet1     /* the PES packets with scrambling_control not null are sent                              to the outputs even there is no valid cipher and key. */};#define EMHWLIB_OUTPUT_SAMPLES_PROTECTED   1#define EMHWLIB_PICTURE_PROTECTED          1#define EMHWLIB_BITSTREAM_PROTECTED        2#define EMHWLIB_USE_ERASER_FIFO            4#define EMHWLIB_SPLICING_ENABLE                    1 /* not implemented */#define EMHWLIB_IGNORE_CONTINUITY_COUNTER_ERROR    2 /* if set the packets with CC error are saved in the output buffers */#define EMHWLIB_IGNORE_ERROR_INDICATOR             4 /* if set the packets with error are saved in the output buffers */struct EMhwlibPidEntry_type {	RMuint16                  pid;        /* 13 bit value */	enum EMhwlibPidInput_type input_type;	RMuint32                  flags;      /* reserved bit field for ignore_error_indicator, ignore_continuity_counter, splicing_enable */};struct EMhwlibFixedPidEntry_type { /* PAT, CAT, MGT */	enum EMhwlibPidInput_type input_type;	RMuint32                  flags;      /* reserved bit field for ignore_error_indicator, ignore_continuity_counter, splicing_enable */};struct EMhwlibPCRPidEntry_type {	RMuint16                  pid;        /* 13 bit value */	RMuint32                  clock_recovery_id; /* 0 or 1. Selects the hardware clock recovery that extracts the PCR. There are only two blocks for EM8634. */};struct EMhwlibPCRPidEntryInfo_type {	RMuint16                  pid;        /* 13 bit value */	RMuint32                  clock_recovery_id; /* 0 or 1. Selects the hardware clock recovery that extracts the PCR. There are only two blocks for EM8634. */	RMbool                    enable;         /* if FALSE the pid entry is ignored */};struct EMhwlibPidEntryInfo_type {	RMuint16                  pid;            /* 13 bit value */	enum EMhwlibPidInput_type input_type;	RMuint32                  flags;          /* reserved bit field for ignore_error_indicator, ignore_continuity_counter, splicing_enable */	RMbool                    enable;         /* if FALSE the pid entry is ignored */	RMuint32                  output_mask[1]; /* 32 bit mask indicating the output buffers for this pid.*/	RMuint32                  cipher_mask;    /* indicates what cipher is enabled - bit mask. Only one cipher supported in current implementation. */	RMuint32                  cipher_index[1];/* indicates what cipher entries from CipherTable is used */	RMuint32                  channel_id;     /* indicates the stream channel used for filtering */};struct EMhwlibPesEntry_type {	RMuint8                   stream_id;	RMuint8                   substream_id;	enum EMhwlibPesInput_type input_type;	RMbool                    enable;         /* if FALSE the pes entry is ignored */	RMuint32                  output_mask[1]; /* 32 bit mask indicating the output buffers for this pid.*/	RMuint32                  cipher_mask;    /* indicates what cipher is enabled - bit mask. Only on cipher supported. */	RMuint32                  cipher_index[1];/* indicates what cipher is used */};struct EMhwlibEntryOutputMask_type {	RMuint32                  entry_index;	RMuint32                  output_mask[1]; /* 32 bit mask indicating the output buffers for this pid/pes entry.*/};struct EMhwlibOutputMask_type {	RMuint32	output_mask[1]; /* 32 bit mask indicating the output buffers for this					   pid/pes entry */};enum EMhwlibTimerSync {	/* to replace DemuxProgram_TimerSync_type */	EMhwlibTimerSync_None,		EMhwlibTimerSync_FirstPcrSetPlayStc,/* First Pcr or Pts encountered after a stop/play sequence is set in stc,video,audio timers associated with the demux program. The timers are activated. */	EMhwlibTimerSync_PcrUpdateStc,	EMhwlibTimerSync_FirstPcrSetStc,/* First Pcr or Pts encountered after a stop/play sequence is set in stc,video,audio timers associated with the demux program. */};enum EMhwlibTransportPriority_type {	EMhwlibTransportPriority_Disable = 0, /* default, all the TS packets from pid are parsed by demux */	EMhwlibTransportPriority_0 = 2,    /* only TS packets with transport priority bit 0 are parsed by demux */	EMhwlibTransportPriority_1,        /* only TS packets with transport priority bit 1 are parsed by demux */};enum EMhwlibDESCipherMode{	EMhwlibDES_ECB_encryption,	EMhwlibDES_CBC_encryption,	EMhwlibDES_OFB_encryption,	EMhwlibDES_ECB_decryption,	EMhwlibDES_CBC_decryption,	EMhwlibDES_OFB_decryption};enum EMhwlibDESEncryptedPacketFormat {	EMhwlibDES_Reserved};enum EMhwlibAESCipherMode{	EMhwlibAES_ECB_decryption,	EMhwlibAES_ECB_encryption,	EMhwlibAES_OFB_decryption_encryption,	EMhwlibAES_CTR_decryption_encryption,	EMhwlibAES_CBC_decryption,	EMhwlibAES_CBC_encryption,	EMhwlibAES_CFB_decryption,	EMhwlibAES_CFB_encryption,	EMhwlibAES_AACS_hash_generation,	EMhwlibAES_VCPS_hash_generation,	EMhwlibAES_NDS_proprietary};enum EMhwlibAESEncryptedPacketFormat {	EMhwlibAES_UDAC, /* 0 - encryption starting from start of TS payload */	EMhwlibAES_Synamedia, /* 1 - encryption starting from end of TS payload */	EMhwlibAES_OFB,	EMhwlibAES_NSA,	EMhwlibAES_CipherModes_11 = EMhwlibAES_NSA,};enum EMhwlibMulti2CipherMode{	EMhwlibMulti2_ECB_decryption,	EMhwlibMulti2_CBC_decryption,	EMhwlibMulti2_OFB_decryption,	EMhwlibMulti2_CFB_decryption,	EMhwlibMulti2_ECB_encryption,	EMhwlibMulti2_CBC_encryption,	EMhwlibMulti2_OFB_encryption,	EMhwlibMulti2_CFB_encryption};enum EMhwlibC2CipherMode{	EMhwlibC2_ECB_decryption,	EMhwlibC2_CBC_decryption,	EMhwlibC2_ECB_encryption,	EMhwlibC2_CBC_encryption};enum EMhwlibCipher {	EMhwlibCipher_DES,    /* 0 */	EMhwlibCipher_AES,    /* 1 */	EMhwlibCipher_RC4,    /* 2 */	EMhwlibCipher_DVD,    /* 3 */	EMhwlibCipher_Multi2, /* 4 */	EMhwlibCipher_DVBCSA, /* 5 */	EMhwlibCipher_C2      /* 6 */};enum EMhwlibScramblingBits{	EMhwlibScramblingBits_None,      /* key is not applied */	EMhwlibScramblingBits_10_11,     /* mid cipher key is applied when packets have scrambling bits == 10, 11 */	EMhwlibScramblingBits_10,        /* mid cipher key is applied when packets have scrambling bits == 10 */	EMhwlibScramblingBits_11,        /* mid cipher key is applied when packets have scrambling bits == 11 */	EMhwlibScramblingBits_PreCipher, /* pre cipher key is applied for all the incoming data */};enum EMhwlibInbandOffset{	EMhwlibInbandOffset_Ignore,	/* emhwlib byte counter is used as bytecounter for inband */	EMhwlibInbandOffset_Relative,	/* the offset is added to emhwlib byte counter and used as bytecounter for inband */	EMhwlibInbandOffset_Absolute	/* the offset is used as bytecounter for inband */};/* Video codec profiles *//*  Jpeg profile are defined as EMhwlibJPEGProfile_XYZW  where X, Y, Z, W are:  X: luma horizontal sampling factor  Y: luma vertical sampling factor  Z: chroma horizontal sampling factor  W: chroma vertical sampling factor*/enum EMhwlibJPEGProfile{	/* 	   the value of the labels is explicited here because	   the sample apps (play_video) ask the user to input	   the profile directly by its value	*/	EMhwlibJPEGProfile_Unknown = 0,      /* This is what application passes when it does not know the profile */	EMhwlibJPEGProfile_2222 = 2222,      /*444*/	EMhwlibJPEGProfile_2212 = 2212,      /*422*/	EMhwlibJPEGProfile_2211 = 2211,      /*420*/	EMhwlibJPEGProfile_2111 = 2111,      /*ucode's 422h*/	EMhwlibJPEGProfile_2221 = 2221,      /*ucode's 422rot*/	EMhwlibJPEGProfile_1211 = 1211,      /*ucode's 422hrot*/};#define EMhwlib_H264_BaselineProfile   0#define EMhwlib_H264_MainProfile       1#define EMhwlib_H264_ExtendedProfile   2#define EMhwlib_H264_MaxProfile       EMhwlib_H264_ExtendedProfile/* DEPRECATED LABELS, USE THE ONES IN enum EMhwlibJPEGProfile */#define EMhwlib_JPEG_Invalid_Profile  0xff#define EMhwlib_JPEG_420_Profile      EMhwlibJPEGProfile_2211#define EMhwlib_JPEG_422_Profile      EMhwlibJPEGProfile_2221#define EMhwlib_JPEG_444_Profile      EMhwlibJPEGProfile_2222#define EMhwlib_JPEG_Max_Profile      EMhwlibJPEGProfile_2221#define EMhwlib_JPEG_is_422(x)  ( (x)== EMhwlibJPEGProfile_2212    \				       || (x)==EMhwlibJPEGProfile_2111  \				       || (x)==EMhwlibJPEGProfile_2221  \				       || (x)==EMhwlibJPEGProfile_1211 )/* Video codec levels */#define EMhwlib_H264_Level_1   0  /*   qcif */#define EMhwlib_H264_Level_11  1  /*    cif */#define EMhwlib_H264_Level_12  2  /*    cif */#define EMhwlib_H264_Level_13  3  /*    cif */#define EMhwlib_H264_Level_2   4  /*    cif */#define EMhwlib_H264_Level_21  5  /* halfD1 */#define EMhwlib_H264_Level_22  6  /*     D1 */#define EMhwlib_H264_Level_3   7  /*     D1 */#define EMhwlib_H264_Level_31  8  /*   720p */#define EMhwlib_H264_Level_32  9  /*   ???? */#define EMhwlib_H264_Level_4  10  /*   1080 */#define EMhwlib_H264_Level_41 11  /*   1080 */#define EMhwlib_H264_Level_42 12  /*   1080 */#define EMhwlib_H264_Level_5  13  /*   ???? */#define EMhwlib_H264_Level_51 14  /*   ???? */#define EMhwlib_H264_MaxLevel EMhwlib_H264_Level_51enum EMhwlibVideoCodec{	EMhwlibVideoCodec_MPEG2 = 1,	EMhwlibVideoCodec_MPEG4,	EMhwlibVideoCodec_MPEG4_Padding,	EMhwlibVideoCodec_DIVX3,	EMhwlibVideoCodec_VC1,	EMhwlibVideoCodec_WMV,	EMhwlibVideoCodec_H264,	EMhwlibJPEGCodec,	EMhwlibDVDSpuCodec,	EMhwlibBDRLECodec,};struct ConnectToDemuxOutput_in_type {	RMuint32 demux_output_module_id;	RMuint32 demux_output_bts_fifo;};struct ConnectToDemuxOutput_out_type {	RMuint32 decoder_stc_module_id;	RMuint32 decoder_pts_fifo; /* pts_fifo is followed by inband fifo*/};struct VideoDecoder_NextPicture_type {	struct EMhwlibNewPicture Picture;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?