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 + -
显示快捷键?