⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avi_control.h

📁 SAMSUNG 5009的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
    WORD  cbSize; 
} WAVEFORMATEX; 

typedef struct tagTEXTINFO{
    WORD wCodePage;
    WORD wCountryCode;
    WORD wLanguageCode;
    WORD wDialect;
} TEXTINFO;
*/

/* <<< :@ 5010.joe.kang 051122: DRM */
/* DRM format enum */
typedef enum
{
	AVC_DRM_BASE=0,
	AVC_DRM_ACTIVATION_PURCHASE,
	AVC_DRM_ACTIVATION_RENTAL,
	AVC_DRM_PURCHASE,
	AVC_DRM_RENTAL,
	AVC_DRM_UNKNOWN,
/* <<< @: 5010-xxx.HoJune_Byun 06/02/15 : Additional Requirement for Divx Certification */	
	AVC_DRM_MASTER_KEY_ERROR
/* <<< @: 5010-xxx.HoJune_Byun 06/02/15 : Additional Requirement for Divx Certification */	
} AVC_DRM_TYPE_et;

typedef enum {
	DRM_Play_File =0,
	DRM_Authorization_Error,
	DRM_Rental_Expired,
	DRM_Rental_Confirmation,
	DRM_Rental_Check_OK
} AVC_DRM_RESULT_et;
/* >>> :@ 5010.joe.kang 051122: DRM function*/



/* 06 30 05 */	/* WAVE form wFormatTag IDs */
#define  WAVE_FILTER_UNKNOWN   0x0000 
#define  WAVE_FILTER_DEVELOPMENT   0xFFFF 
#define  WAVE_FILTER_VOLUME   0x0001 
#define  WAVE_FILTER_ECHO   0x0002 

//jy
#define  WAVE_FORMAT_NOCOMPRESSED_PCM  0x0001

#define  WAVE_FORMAT_ADPCM   0x0002 
#define  WAVE_FORMAT_IEEE_FLOAT   0x0003 
#define  WAVE_FORMAT_VSELP   0x0004 
#define  WAVE_FORMAT_IBM_CVSD   0x0005 
#define  WAVE_FORMAT_ALAW   0x0006 
#define  WAVE_FORMAT_MULAW   0x0007 
#define  WAVE_FORMAT_DTS   0x0008 
#define  WAVE_FORMAT_OKI_ADPCM   0x0010 
#define  WAVE_FORMAT_DVI_ADPCM   0x0011 
//#define  WAVE_FORMAT_IMA_ADPCM   (WAVE_FORMAT_DVI_ADPCM) 
#define  WAVE_FORMAT_MEDIASPACE_ADPCM   0x0012 
#define  WAVE_FORMAT_SIERRA_ADPCM   0x0013 
#define  WAVE_FORMAT_G723_ADPCM   0x0014 
#define  WAVE_FORMAT_DIGISTD   0x0015 
#define  WAVE_FORMAT_DIGIFIX   0x0016 
#define  WAVE_FORMAT_DIALOGIC_OKI_ADPCM   0x0017 
#define  WAVE_FORMAT_MEDIAVISION_ADPCM   0x0018 
#define  WAVE_FORMAT_CU_CODEC   0x0019 
#define  WAVE_FORMAT_YAMAHA_ADPCM   0x0020 
#define  WAVE_FORMAT_SONARC   0x0021 
#define  WAVE_FORMAT_DSPGROUP_TRUESPEECH   0x0022 
#define  WAVE_FORMAT_ECHOSC1   0x0023 
#define  WAVE_FORMAT_AUDIOFILE_AF36   0x0024 
#define  WAVE_FORMAT_APTX   0x0025 
#define  WAVE_FORMAT_AUDIOFILE_AF10   0x0026 
#define  WAVE_FORMAT_PROSODY_1612   0x0027 
#define  WAVE_FORMAT_LRC   0x0028 
#define  WAVE_FORMAT_DOLBY_AC2   0x0030 
#define  WAVE_FORMAT_GSM610   0x0031 
#define  WAVE_FORMAT_MSNAUDIO   0x0032 
#define  WAVE_FORMAT_ANTEX_ADPCME   0x0033 
#define  WAVE_FORMAT_CONTROL_RES_VQLPC   0x0034 
#define  WAVE_FORMAT_DIGIREAL   0x0035 
#define  WAVE_FORMAT_DIGIADPCM   0x0036 
#define  WAVE_FORMAT_CONTROL_RES_CR10   0x0037 
#define  WAVE_FORMAT_NMS_VBXADPCM   0x0038 
#define  WAVE_FORMAT_CS_IMAADPCM   0x0039 
#define  WAVE_FORMAT_ECHOSC3   0x003A 
#define  WAVE_FORMAT_ROCKWELL_ADPCM   0x003B 
#define  WAVE_FORMAT_ROCKWELL_DIGITALK   0x003C 
#define  WAVE_FORMAT_XEBEC   0x003D 
#define  WAVE_FORMAT_G721_ADPCM   0x0040 
#define  WAVE_FORMAT_G728_CELP   0x0041 
#define  WAVE_FORMAT_MSG723   0x0042 
#define  WAVE_FORMAT_MPEG   0x0050 
#define  WAVE_FORMAT_RT24   0x0052 
#define  WAVE_FORMAT_PAC   0x0053 
#define  WAVE_FORMAT_MPEGLAYER3   0x0055 
#define  WAVE_FORMAT_LUCENT_G723   0x0059 
#define  WAVE_FORMAT_CIRRUS   0x0060 
#define  WAVE_FORMAT_ESPCM   0x0061 
#define  WAVE_FORMAT_VOXWARE   0x0062 
#define  WAVE_FORMAT_CANOPUS_ATRAC   0x0063 
#define  WAVE_FORMAT_G726_ADPCM   0x0064 
#define  WAVE_FORMAT_G722_ADPCM   0x0065 
#define  WAVE_FORMAT_DSAT_DISPLAY   0x0067 
#define  WAVE_FORMAT_VOXWARE_BYTE_ALIGNED   0x0069 
#define  WAVE_FORMAT_VOXWARE_AC8   0x0070 
#define  WAVE_FORMAT_VOXWARE_AC10   0x0071 
#define  WAVE_FORMAT_VOXWARE_AC16   0x0072 
#define  WAVE_FORMAT_VOXWARE_AC20   0x0073 
#define  WAVE_FORMAT_VOXWARE_RT24   0x0074 
#define  WAVE_FORMAT_VOXWARE_RT29   0x0075 
#define  WAVE_FORMAT_VOXWARE_RT29HW   0x0076 
#define  WAVE_FORMAT_VOXWARE_VR12   0x0077 
#define  WAVE_FORMAT_VOXWARE_VR18   0x0078 
#define  WAVE_FORMAT_VOXWARE_TQ40   0x0079 
#define  WAVE_FORMAT_SOFTSOUND   0x0080 
#define  WAVE_FORMAT_VOXWARE_TQ60   0x0081 
#define  WAVE_FORMAT_MSRT24   0x0082 
#define  WAVE_FORMAT_G729A   0x0083 
#define  WAVE_FORMAT_MVI_MVI2   0x0084 
#define  WAVE_FORMAT_DF_G726   0x0085 
#define  WAVE_FORMAT_DF_GSM610   0x0086 
#define  WAVE_FORMAT_ISIAUDIO   0x0088 
#define  WAVE_FORMAT_ONLIVE   0x0089 
#define  WAVE_FORMAT_SBC24   0x0091 
#define  WAVE_FORMAT_DOLBY_AC3_SPDIF   0x0092 
#define  WAVE_FORMAT_MEDIASONIC_G723   0x0093 
#define  WAVE_FORMAT_PROSODY_8KBPS   0x0094 
#define  WAVE_FORMAT_ZYXEL_ADPCM   0x0097 
#define  WAVE_FORMAT_PHILIPS_LPCBB   0x0098 
#define  WAVE_FORMAT_PACKED   0x0099 
#define  WAVE_FORMAT_MALDEN_PHONYTALK   0x00A0 
#define  WAVE_FORMAT_RHETOREX_ADPCM   0x0100 
#define  WAVE_FORMAT_IRAT   0x0101 
#define  WAVE_FORMAT_VIVO_G723   0x0111 
#define  WAVE_FORMAT_VIVO_SIREN   0x0112 
#define  WAVE_FORMAT_DIGITAL_G723   0x0123 
#define  WAVE_FORMAT_SANYO_LD_ADPCM   0x0125 
#define  WAVE_FORMAT_SIPROLAB_ACEPLNET   0x0130 
#define  WAVE_FORMAT_SIPROLAB_ACELP4800   0x0131 
#define  WAVE_FORMAT_SIPROLAB_ACELP8V3   0x0132 
#define  WAVE_FORMAT_SIPROLAB_G729   0x0133 
#define  WAVE_FORMAT_SIPROLAB_G729A   0x0134 
#define  WAVE_FORMAT_SIPROLAB_KELVIN   0x0135 
#define  WAVE_FORMAT_G726ADPCM   0x0140 
#define  WAVE_FORMAT_QUALCOMM_PUREVOICE   0x0150 
#define  WAVE_FORMAT_QUALCOMM_HALFRATE   0x0151 
#define  WAVE_FORMAT_TUBGSM   0x0155 
#define  WAVE_FORMAT_MSAUDIO1   0x0160 

/* For ASF */
#define WAVE_FORMAT_WMA		0x0161
#define WAVE_FORMAT_WMA9_PROFESSIONAL	0x0162
#define WAVE_FORMAT_WMA9_LOSSLESS		0x0163

#define  WAVE_FORMAT_CREATIVE_ADPCM   0x0200 
#define  WAVE_FORMAT_CREATIVE_FASTSPEECH8   0x0202 
#define  WAVE_FORMAT_CREATIVE_FASTSPEECH10   0x0203 
#define  WAVE_FORMAT_UHER_ADPCM   0x0210 
#define  WAVE_FORMAT_QUARTERDECK   0x0220 
#define  WAVE_FORMAT_ILINK_VC   0x0230 
#define  WAVE_FORMAT_RAW_SPORT   0x0240 
#define  WAVE_FORMAT_IPI_HSX   0x0250 
#define  WAVE_FORMAT_IPI_RPELP   0x0251 
#define  WAVE_FORMAT_CS2   0x0260 
#define  WAVE_FORMAT_SONY_SCX   0x0270 
#define  WAVE_FORMAT_FM_TOWNS_SND   0x0300 
#define  WAVE_FORMAT_BTV_DIGITAL   0x0400 
#define  WAVE_FORMAT_QDESIGN_MUSIC   0x0450 
#define  WAVE_FORMAT_VME_VMPCM   0x0680 
#define  WAVE_FORMAT_TPC   0x0681 
#define  WAVE_FORMAT_OLIGSM   0x1000 
#define  WAVE_FORMAT_OLIADPCM   0x1001 
#define  WAVE_FORMAT_OLICELP   0x1002 
#define  WAVE_FORMAT_OLISBC   0x1003 
#define  WAVE_FORMAT_OLIOPR   0x1004 
#define  WAVE_FORMAT_LH_CODEC   0x1100 
#define  WAVE_FORMAT_NORRIS   0x1400 
#define  WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS   0x1500 
/* <<< @: 5010-xxx.JaeYoul_Kim 051029 : add DIVX coding mode */
#define  WAVE_FORMAT_DVM_AC3   0x2000  
#define  WAVE_FORMAT_DVM_DTS   0x2001
/* >>> @: 5010-xxx.JaeYoul_Kim 051029 */
#define  WAVE_FORMAT_EXTENSIBLE   0xFFFE 
//////////////////////////////////////////////////////////////////
#define  WAVE_FORMAT_OGG   0x6771 	//jy ogg



/* Sectors( 2352 Bytes x 15 sectors(CD mode) )狼 start客 end point */
//VOID 	_AVI_Input_Initialize( UCHAR *start );


VOID	Avi_Task(UCHAR argc, void *argv);
//VOID	avi_parsing(UINT sector_rd_ptr, UINT sector_end_ptr);
VOID 	AVI_PreInit(void);
//UINT 	Avi_Header_Parse(UINT start_ptr, UINT end_ptr);
VOID 	AVI_DeleteTask(VOID);
VOID 	Avi_Stop(void);
VOID	  MemcopyDMA(UCHAR *to, UCHAR *from, UINT size);	
VOID	_AES_HW_Terminate(void);


/* 06 28 05 */
AVI_STATUS_et	getAVIStatus(VOID);
VOID	setAVIStatus(AVI_STATUS_et  status);
//VOID	Avi_SetAudioCodec(AUDIO_STREAMFORMAT_st	astrf);
//VOID	Avi_SetAudioCodec(BYTE2	audio_str_id);
VOID	Avi_SetAudioCodec(BYTE2	audio_str_id, SINT	audio_streamNo);

/* <<< @: 5010-xxx.HoJune_Byun 06/03/30 : memset after 'pLastVbvIn->end' point of the last alloc */
VOID	Avi_VideoLastAlloc(SH_ExtraParInput_t *pExtraInfo);
/* <<< @: 5010-xxx.HoJune_Byun 06/03/30 : memset after 'pLastVbvIn->end' point of the last alloc */

VOID	Avi_AudioLastAlloc(void);



/* <<< @: 5010-xxx.HoJune_Byun 05/11/15 : Inactivate unused code */
#if _AES_DYCRYPT_
	#if	0 
VOID copyRemDRM(UCHAR *sourceBuff,SPartialDRMBuff *psPartDRM);
VOID copyPartialDRMInfo(UCHAR *sourceBuff,SPartialDRMBuff *psPartDRM, UINT byteOffset);
VOID copyRemEncryptFrame(UCHAR *sourceBuff,UINT frameSize);
VOID copyPartialDDChunkInfo(UCHAR *sourceBuff, UINT byteOffset);
VOID copyRemDDChunkInfo(UCHAR *sourceBuff);
	#endif

/* <<< :@ 5010.joe.kang 051122: DRM function*/
AVC_DRM_TYPE_et parseDRMInfo(UCHAR * drm_ptr);
AVC_DRM_RESULT_et DRM_RentalQuery(UCHAR * useLimit, UCHAR * useCount);
AVC_DRM_RESULT_et DRM_MakeSessionKey(void);
VOID DRM_MakeFrameKeys(void);
/* >>> :@ 5010.joe.kang 051122: */

VOID	test_master_decrypt(UCHAR* tempPtr); 	/* get the session key from the master key */
VOID	test_session_aes(UCHAR* frameKeyPtr);		/* Populate the frame key table from the session key  */
VOID decryptFrame(UCHAR * tempPtr, UINT size, UINT offSet);
VOID	test_local_master_decrypt(UCHAR * tempPtr, UCHAR hardwareKey[]);

/* <<< @: 5010-xxx.HoJune_Byun 05/11/29 : Inactivate Unused Code */
#if	0
VOID	DecryptMasterKey(UCHAR* tempPtr, UINT	size, UINT	offset);
#endif
/* <<< @: 5010-xxx.HoJune_Byun 05/11/29 */
#endif/* _AES_DYCRYPT_ */





INT  StringCmp(CHAR * curPtr, CHAR * compPtr, int cmpLength);





/*0915*/
VOID	Avi_Ext_Aud_DeleteTask(void);


//HJ1005
VOID			Avi_InitDemuxVariables(void);
SYS_RETURN	AVI_SendMsgToTask(AVI_Message_st  *pMsg, SysWait_t Wait);
RET_STATUS	AVI_BM_Release( BM_NODE *pNode);
SH_RETURN		AVI_StreamInit( void );
//HJ1005

BOOL	AVI_GetVideoDiscontMark( void );
BOOL	AVI_SetVideoDiscontMark( void );
BOOL	AVI_ClearVideoDiscontMark(void );
BOOL	AVI_GetAudioDiscontMark( void );
BOOL	AVI_SetAudioDiscontMark( void );
BOOL	AVI_ClearAudioDiscontMark(void );

SH_RETURN	AVI_DemuxLocalBufInit(void);
VOID	AVI_DemuxLocalBufDeinit(void);

VOID	AVI_GetDefaultVideoStream(BOOL *pValid, int *pStreamNum);
VOID	AVI_GetDefaultAudioStream(BOOL *pValid, int *pStreamNum);
VOID	AVI_GetDefaultSubtitleStream(BOOL *pValid, int *pStreamNum);
VOID	AVI_GetCurVideoStream(BOOL *pValid, int *pStreamNum);
VOID	AVI_GetCurAudioStream(BOOL *pValid, int *pStreamNum);
VOID	AVI_GetCurSubtitleStream(BOOL *pValid, int *pStreamNum);
VOID	AVI_SetCurVideoStream(BOOL *pValid, int VideoIndex);
VOID	AVI_SetCurAudioStream(BOOL *pValid, int AudioIndex);
VOID	AVI_SetCurSubtitleStream(BOOL *pValid, int SubtitleIndex);


//HJ 2005. 10. 25
BOOL	Avi_SetVideoCodec(CHAR *fccHandler_biCompression, SINT	stream_no);



/* <<< @: 5010-xxx.HoJune_Byun 05/11/15 : Inactivate unused code */
#if 1
//HJ 2005.10.29
VOID	Avi_AudioLastAllocAfterVideo(VOID);
VOID	Avi_VideoLastAllocAfterAudio(VOID);


//HJ 2005. 11.10
VOID	AVI_StopAudio(AVI_Message_st		*Msg);
#endif/* 0 */
/* <<< @: 5010-xxx.HoJune_Byun 05/11/15 : Inactivate unused code */




/* <<< @: 5010-xxx.HoJune_Byun 05/11/15 :  */
VOID	AVI_ChangeAudioStreamHandler(AVI_Message_st	*pMsg);
//VOID	Avi_SetAudioCodecForAudioChange(BYTE2	audio_str_id, int Audio_StreamNo);
//int		AVI_SetAudioChangeStream(int AudioStreamNo, aviin_t * pAviHeaderHandle);


S5H_AudioCodingMode_t	Avi_GetAudioStreamInfo(BYTE2	audio_str_id, int Audio_StreamNo);




/* <<< @: 5010-xxx.HoJune_Byun 05/11/22 :  Subtitle Change */
VOID	AVI_ChangeSubpicStreamHandler(AVI_Message_st	*pMsg);
VOID	Avi_SetSubpicCodecChange(SINT	subpic_streamNo);
/* <<< @: 5010-xxx.HoJune_Byun 05/11/22 :  Subtitle Change */


/* <<< @: 5010-xxx.HoJune_Byun 05/11/15 :  Inactivate unused code */
#if 0
typedef enum{
	
	DIVX_WMA_Audio,
	DIVX_ADPCM_Audio,
	DIVX_PCM_Audio,
	DIVX_MP3_Audio,
	DIVX_MPEG_Layer2_Audio,
	DIVX_AC3_Audio,
	DIVX_DTS_Audio,
	DIVX_UNKNOWN_Audio
	
}AVI_AudioStreamCodecInfo_et;
#endif/* 0 */
/* <<< @: 5010-xxx.HoJune_Byun 05/11/15 :  Inactivate unused code */



/* <<< @: 5010-xxx.HoJune_Byun 05/11/26 */
VOID	AVI_CreateAesSema(VOID);
VOID	AVI_DeleteAesSema(VOID);
/* <<< @: 5010-xxx.HoJune_Byun 05/11/26 */



	/* <<< @: 5010-xxx.HoJune_Byun 05/12/06 :  Optimize & Minimize 'MM_DRM_BUF' buffer size from 128KBytes to 128 Bytes */
	VOID	AVI_GetDecryptInfo(VOID);
	VOID	AVI_TransferVideoData(UCHAR *pStart,UINT	DataSize, SH_ExtraParInput_t *pExtraInfo);
	/* <<< @: 5010-xxx.HoJune_Byun 05/12/06 :  Optimize & Minimize 'MM_DRM_BUF' buffer size from 128KBytes to 128 Bytes */



/* <<< @: 5010-xxx.HoJune_Byun 05/12/17 : Optimize & Minimize 'MM_DRM_BUF' buffer size from 128KBytes to 128 Bytes */
UINT	AVI_GetCurDecryptSize(UINT	TempDecryptSize);
/* <<< @: 5010-xxx.HoJune_Byun 05/12/17 : Optimize & Minimize 'MM_DRM_BUF' buffer size from 128KBytes to 128 Bytes */


VOID	AVI_ClearDecryptInfo(VOID);

INT	Avi_VideoCodecCheck(CHAR *biCompression, CHAR *fccHandler);
INT	Avi_AudioCodecCheck(BYTE2	audio_str_id, SINT audio_streamNo/* 0 */);
VOID	AVI_GetValidDefaultAudioStream(BOOL *pValid, int *pStreamNum);

/*<<< sometimes the demux area is all zero, 
	demux is always looped which leads to avi_stop cmd failed to receive azureming@060301*/
BOOL 	AVI_GetAbortDemuxStatus(VOID);
VOID	AVI_SetAbortDemuxStatus(BOOL flag);
/*>>> sometimes the demux area is all zero, 
	demux is always looped which leads to avi_stop cmd failed to receive azureming@060301*/
BOOL GetFlagNotSupportAVIVideo(VOID);

#ifdef __cplusplus
}
#endif
#endif  /* _AVI_CONTROL_H_ */

⌨️ 快捷键说明

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