📄 emhwlib_globaltypes.h
字号:
enum Ac3OutputChannels_type { Ac3_C = 0x01, Ac3_LR = 0x02, Ac3_LCR = 0x03, Ac3_LRS = 0x12, Ac3_LCRS = 0x13, Ac3_LRLsRs = 0x22, Ac3_LCRLsRs = 0x23};enum Ac3CompMode_type { CompMode_analog, CompMode_digital, CompMode_line_out, CompMode_RF, CompMode_RF_iptv};enum DtsOutputChannels_type { Dts_C = 0x01, Dts_LR = 0x02, Dts_LCR = 0x03, Dts_LRS = 0x12, Dts_LCRS = 0x13, Dts_LRLsRs = 0x22, Dts_LCRLsRs = 0x23};/* Fl = front left, Fr = front right, Fc = front center, Bl = back left, Br = back right, Bc = back center, Flc = front left of center, Frc = front right of center, Sl = side left, Sr = side right Lf = low frequency or subwoofer */enum WmaproOutputChannels_type { Wmapro_1 = 0x10, /* Wmapro_Fc */ Wmapro_2 = 0x20, /* Wmapro_FlFr */ Wmapro_3 = 0x30, /* Wmapro_FlFrFc */ Wmapro_4 = 0x40, /* Wmapro_FlFrFcBc */ Wmapro_41 = 0x41, /* Wmapro_FlFrBlBr */ Wmapro_5 = 0x50, /* Wmapro_FlFrFcSlSr */ Wmapro_51 = 0x51, /* Wmapro_FlFrFcBlBr */ Wmapro_6 = 0x60, /* Wmapro_FlFrFcLfSlSr */ Wmapro_61 = 0x61, /* Wmapro_FlFrFcLfBlBr */ Wmapro_62 = 0x62, /* Wmapro_FlFrFcBcSlSr */ Wmapro_63 = 0x63, /* Wmapro_FlFrFcBcBlBr */ Wmapro_7 = 0x70, /* Wmapro_FlFrFcLfBcSlSr */ Wmapro_71 = 0x71, /* Wmapro_FlFrFcLfBlBrBc */ Wmapro_72 = 0x72, /* Wmapro_FlFrFcBlBrSlSr */ Wmapro_73 = 0x73, /* Wmapro_FlFrFcBlBrFlcFrc */ Wmapro_8 = 0x80, /* Wmapro_FlFrFcLfBlBrSlSr */ Wmapro_81 = 0x81 /* Wmapro_FlFrFcLfBlBrFlcFrc */};enum WmaproDynamicRangeControl_type { Drc_high, Drc_med, Drc_low,};enum PcmByteOrder { PCM_ORDER_MSBFIRST, PCM_ORDER_LSBFIRST,};enum LpcmVobChannelAssign_type { // according to C.1-2 table // number of chanels and channel assign are specified LpcmVob1_C = 0, // 0x00 LpcmVob2_LR, // 0x01 LpcmVob3_LfRfS, // 0x02 LpcmVob4_LfRfLsRs, // 0x03 LpcmVob3_LfRfLfe, // 0x04 LpcmVob4_LfRfLfeS, // 0x05 LpcmVob5_LfRfLfeLsRs, // 0x06 LpcmVob3_LfRfC, // 0x07 LpcmVob4_LfRfCS, // 0x08 LpcmVob5_LfRfCLsRs, // 0x09 LpcmVob4_LfRfCLfe, // 0x0a LpcmVob5_LfRfCLfeS, // 0x0b LpcmVob6_LfRfCLfeLsRs, // 0x0c LpcmVob5_LRLfRfS, // 0x0d LpcmVob6_LRLfRfLsRs, // 0x0e LpcmVob5_LRLfRfLfe, // 0x0f LpcmVob6_LRLfRfLfeS, // 0x10 LpcmVob7_LRLfRfLfeLsRs,// 0x11 LpcmVob5_LRLfRfC, // 0x12 LpcmVob6_LRLfRfCS, // 0x13 LpcmVob7_LRLfRfCLsRs, // 0x14 LpcmVob6_LRLfRfCLfe, // 0x15 LpcmVob7_LRLfRfCLfeS, // 0x16 LpcmVob8_LRLfRfCLfeLsRs,// 0x17 LpcmVobVR_DualMono, //0x18};enum LpcmAobChannelAssign_type { // according to C.1-1 table // 1st digit after LpcmAob represents nchannels GR1, 2nd digit = nchannels GR2 LpcmAob10_C = 0, // 0x00 LpcmAob20_LR, // 0x01 LpcmAob21_LfRfS, // 0x02 LpcmAob22_LfRfLsRs, // 0x03 LpcmAob21_LfRfLfe, // 0x04 LpcmAob22_LfRfLfeS, // 0x05 LpcmAob23_LfRfLfeLsRs, // 0x06 LpcmAob21_LfRfC, // 0x07 LpcmAob22_LfRfCS, // 0x08 LpcmAob23_LfRfCLsRs, // 0x09 LpcmAob22_LfRfCLfe, // 0x0a LpcmAob23_LfRfCLfeS, // 0x0b LpcmAob24_LfRfCLfeLsRs, // 0x0c LpcmAob31_LfRfCS, // 0x0d LpcmAob32_LfRfCLsRs, // 0x0e LpcmAob31_LfRfCLfe, // 0x0f LpcmAob32_LfRfCLfeS, // 0x10 LpcmAob33_LfRfCLfeLsRs, // 0x11 LpcmAob41_LfRfLsRsLfe, // 0x12 LpcmAob41_LfRfLsRsC, // 0x13 LpcmAob42_LfRfLsRsCLfe, // 0x14};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, EMhwlibClosedCaptionType_BD, /* ATSC with additional constraints */};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. */};/*The input types for pes entry determine what demux does in next cases: - send or not the PES packets with scrambling_control not null if the cipher and the key are not enabled. - ignore or not specific rules for substream ids carried in private streams. Ex: The private_stream_1, 0xBD,can carry private substreams. These substreams can follow the DVD specification (audio and subpicture) or not.By default the demux respects the DVD rule, but it can also ignore it and send all the payload to the demux output.*/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. The substream ids are treated according to DVD spec. */ EMhwlibPes_packet1, /* the PES packets with scrambling_control not null are sent to the outputs even there is no valid cipher and key. The substream ids are treated according to DVD spec. */ EMhwlibPes_packet_ignore_ssid /* The PES packets with scrambling_control not null are NOT sent to the outputs if the cipher and the key are not enabled. The substream ids are ignored. */};#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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -