亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? psfdemux_parsing.c

?? SigmDesign SMP8634 media decode chip development SDK
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
			CatState++;			break;					case CAT_LENGTH_LO:			length |= *p;			len = length;			CatState++;			break;					case CAT_RESERVED_0:			CatState++;			len--;			break;					case CAT_RESERVED_1:			CatState++;			len--;			break;					case CAT_VERSION_NUMBER:			/* version_number on bit 5..1, current_next_indicator on bit 0 */			out->version_number_current_next_indicator = *p & 0x3F;			if ((*p & 1) == 0x00) {				fprintf(stderr, "ParseCAT the Conditional Access Table sent is not yet applicable!\n");				return RM_ERROR;			}			RMDBGLOG((DISABLE, "ParseCAT version number = %x current_next_indicator = %x\n",				out->version_number_current_next_indicator>>1,				out->version_number_current_next_indicator & 1));			CatState++;			len--;			break;					case CAT_SECTION_NUMBER:			if (*p != 0x00) {				fprintf(stderr, "ParseCAT no multiple sections in CAT supported yet !\n");				return RM_ERROR;			}			section_number = *p;			CatState++;			len--;			break;					case CAT_LAST_SECTION_NUMBER:			last_section_number = *p;			CatState++;			len--;			break;					case CAT_DESCRIPTOR_TAG:			if (len < 10) {				fprintf(stderr, "ParseCAT not enough data for descriptor and crc !\n");				return RM_ERROR;			}			descriptor_tag = *p;			CatState++;			len--;			break;		case CAT_DESCRIPTOR_LENGTH:			descriptor_length = *p;			if (descriptor_tag != 0x09) {	/* not CA descriptor	*/				CatState = CAT_CA_PRIVATE_DATA;				if (descriptor_length == 0) descriptor_length = 1;			}			else {				CatState++;			}			len--;			break;					case CAT_CA_SYSTEM_ID_HI:			ca_system_id = *p;			ca_system_id <<= 8;			descriptor_length--;			CatState++;			len--;			break;					case CAT_CA_SYSTEM_ID_LO:			ca_system_id |= *p;			out->ca_system_id[out->count] = ca_system_id;			descriptor_length--;			CatState++;			len--;			break;					case CAT_CA_PID_HI:			ca_pid = *p & 0x1F;			ca_pid <<= 8;			descriptor_length--;			CatState++;			len--;			break;					case CAT_CA_PID_LO:			ca_pid |= *p;			out->emm_pid[out->count] = ca_pid;			out->count++;			if (out->count > MAX_PROGRAM_NUMBER) {				fprintf(stderr, "ParseCAT has more programs than the max=0x%x !\n", MAX_PROGRAM_NUMBER);				return RM_ERROR;			}						len--;			descriptor_length--;			if (descriptor_length > 0) {		/* private_data_byte	*/								CatState = CAT_CA_PRIVATE_DATA;			}			else {				/* no private_data_byte	*/				if (len > 4) {			/* another CA descriptor*/					CatState = CAT_DESCRIPTOR_TAG;				}				else {					CatState = CAT_CRC_3;				}			}			break;		case CAT_CA_PRIVATE_DATA:			len--;			descriptor_length--;			if (descriptor_length == 0) {				if (len > 4) {		/* another CA descriptor*/					CatState = CAT_DESCRIPTOR_TAG;				}				else {					CatState = CAT_CRC_3;				}			}			break;					case CAT_CRC_3:		case CAT_CRC_2:		case CAT_CRC_1:			CatState++;			len--;			break;		case CAT_CRC_0:			CatState++;			len--;			if (len) {				fprintf(stderr, "ParseCAT reach CRC but there are 0x%x bytes"					" left from 0x%x !\n", len, length);				return RM_ERROR;			}			break;		}		size--;		size1--;		if (size1 == 0) 			p = pBuffer2;		else 			p++;	}		return RM_OK;}/************************************************************************ * ************************************************************************/void CATCallback(RMuint8 *pBuffer1, RMuint32 size1, RMuint8 *pBuffer2, RMuint32	size2, RMstatus	err, RMuint32 mask, void *context_in){	/*	 * The API is more general with two pointers	 * - in current implementation we use only first buffer	 */	struct context_per_task *context = (struct context_per_task *)context_in;	struct	CATInfo_type cat_info_temp;	RMuint32	i;	RMuint32	cat_compare_size;	RMDBGLOG((CALLDBG, "CATCallback (context @0x%08lx)\n", (RMuint32)context_in));	if (RMFAILED(err)) {		fprintf(stderr, "CATCallback ERROR\n");		return;	}	#if (0)		if (size1 > 188) 		fprintf(stderr, "multiple CAT sections %ld\n", size1);#endif		RMMemset(&cat_info_temp, 0, sizeof(struct CATInfo_type));	ParseCAT(pBuffer1, size1, pBuffer2, size2, &cat_info_temp);	/* compare the CMT content except for version and update */	cat_compare_size = (RMuint32)&cat_info_temp.version_number_current_next_indicator - (RMuint32)&cat_info_temp.count;	if (RMMemcmp((void*)&context->cat_info, (void*)&cat_info_temp, cat_compare_size) != 0) {		context->cat_info = cat_info_temp;				fprintf(stderr, "   %ld_CAT: ", context->id);		for (i = 0; i < cat_info_temp.count; i++) {			fprintf(stderr, "[%04x %04x] ", cat_info_temp.ca_system_id[i], cat_info_temp.emm_pid[i]);			/*			 * Allocate pid entries for every PMT and keep track of these			 * PMT pid entries in one list			 */		}		fprintf(stderr, "\n");				context->cat = TRUE;	}	{ /* filter only a new cat version in hardware section filter - in order to optimize CPU usage on standalone */		struct DemuxTask_MatchSectionEntry_type section_entry;		/* version_number on bit 5..1, current_next_indicator on bit 0 */		context->match_section_table[3].section_entry.mask[5] = 0x3f; 		context->match_section_table[3].section_entry.mode[5] = ~0x3f; 		context->match_section_table[3].section_entry.comp[5] = cat_info_temp.version_number_current_next_indicator;			section_entry.Index = context->match_section_table[3].index;		section_entry.SectionEntry = context->match_section_table[3].section_entry;		err = RUASetProperty(context->pRUA, context->demux_task, RMDemuxTaskPropertyID_MatchSectionEntry,				&section_entry, sizeof(section_entry), 0);		if (RMFAILED(err)) {			RMDBGLOG((ENABLE, "Error RMDemuxTaskPropertyID_MatchSectionEntry"));		}	}}RMstatus InitTableVariables(struct context_per_task *context){	RMDBGLOG((CALLDBG, "initTableVariables (context @0x%08lx)\n", (RMuint32)context));		/* ############## AES_CBC_PRECIPHER CODE BEGIN ############# */	if (context->dtcpip_streaming == TRUE || context->test_aes_precipher == TRUE) 		context->key_size = 16;	/* ############## AES_CBC_PRECIPHER CODE BEGIN ############# */			if (context->app_type == input_record) {		context->match_section_table_count = 0;		context->pid_table_count = 0;				context->output_table = (struct Output_type *) RMMalloc(sizeof(struct Output_type));		if (context->output_table == NULL) {			return RM_FATALOUTOFMEMORY;		}		context->output_table_count = 1;	}	else if (context->app_type != program_stream_parsing) {		context->match_section_table = (struct  MatchSectionEntry_type *) RMMalloc(sizeof(gmatchSectionTable));		if (context->match_section_table == NULL) {			return RM_FATALOUTOFMEMORY;		}		RMMemcpy(context->match_section_table, gmatchSectionTable, sizeof(gmatchSectionTable));		context->match_section_table_count = sizeof(gmatchSectionTable)/sizeof(struct MatchSectionEntry_type);				context->pid_table = (struct PidEntry_type *) RMMalloc(sizeof(gPidTable));		if (context->pid_table == NULL) {			return RM_FATALOUTOFMEMORY;		}		RMMemcpy(context->pid_table, gPidTable, sizeof(gPidTable));		context->pid_table_count = sizeof(gPidTable)/sizeof(struct PidEntry_type);				context->output_table = (struct Output_type *) RMMalloc(sizeof(gOutputTable));		if (context->output_table == NULL) {			return RM_FATALOUTOFMEMORY;		}		RMMemcpy(context->output_table, gOutputTable, sizeof(gOutputTable));		context->output_table_count = sizeof(gOutputTable)/sizeof(struct Output_type);		RMDBGLOG((ENABLE, "init output_table 0x%lx with statically defined gOutputTable, count %lu\n", context->output_table, context->output_table_count));		if (context->app_type == dvbcsa_decryption) {			RMDBGLOG((ENABLE, "\ndvbcsa_decryption application\n"));			context->key_size = 8;		}		if ((context->app_type == aes_cbc_decryption) || 			(context->app_type == aes_ecb_decryption) ||			(context->app_type == aes_nsa_decryption) ||			(context->app_type == aes_ofb_decryption) ) {			RMDBGLOG((ENABLE, "\naes_?_decryption application\n"));			context->key_size = 16;		}		RMDBGLOG((ENABLE, "\npid_filter_section application: pid_table_count=%ld output_table_count=%ld\n",			  context->pid_table_count, context->output_table_count));	}	else {		context->pes_table = (struct PesEntry_type *) RMMalloc(sizeof(gPesTable));		if (context->pes_table == NULL) {			return RM_FATALOUTOFMEMORY;		}		RMMemcpy(context->pes_table, gPesTable, sizeof(gPesTable));		if( context->SourceType == SourceType_m1s ) {      // if the app type is m1s			context->pes_table[1].stream_id = 0xc0 | context->audio_subid; 			context->pes_table[1].substream_id = 0x0;			context->pes_table[2].stream_id = 0x0;     // zeroed spu			context->pes_table[2].substream_id = 0x0;		}		else if (context->SourceType == SourceType_dvd) {			context->pes_table[0].stream_id = 0xe0;    // video			context->audio_pid = (context->audio_opt->Codec == AudioDecoder_Codec_MPEG1) ? 0xC0:0xBD;			switch(context->audio_opt->Codec) {				case AudioDecoder_Codec_PCM:					context->pes_table[1].substream_id = 0xa0 | context->audio_subid;					break;				case AudioDecoder_Codec_DTS:					context->pes_table[1].substream_id = 0x88 | context->audio_subid;					break;				case AudioDecoder_Codec_MPEG1:					if (context->audio_pid != (0xC0 /*+ Tasks[i].audio_subid*/)) {						fprintf(stderr, "\n***************** audio_pid audio_subid conflict *****************\n");						fprintf(stderr, "*** for mpeg audio select either audio_pid, either audio_subid ***\n");						fprintf(stderr, "******************************************************************\n\n");					}					context->pes_table[1].stream_id = 0xc0 | context->audio_subid;					context->pes_table[1].substream_id = 0;					break;				default:					context->pes_table[1].substream_id = 0x80 | context->audio_subid;					break;			}			context->pes_table[2].stream_id = 0xbd;			context->pes_table[2].substream_id = 0x20 | context->spu_subid;		}		context->pes_table_count = sizeof(gPesTable)/sizeof(struct PesEntry_type);				context->output_table = (struct Output_type *) RMMalloc(sizeof(gPesOutputTable));		if (context->output_table == NULL) {			return RM_FATALOUTOFMEMORY;		}		RMMemcpy(context->output_table, gPesOutputTable, sizeof(gPesOutputTable));		context->output_table_count = sizeof(gPesOutputTable)/sizeof(struct Output_type);		RMDBGLOG((ENABLE, "\nprogram_stream_parsing application\n"));	}	return RM_OK;}void TTXCallback(RMuint8 *pBuffer1, RMuint32 size1, RMuint8 *pBuffer2, RMuint32 size2, RMstatus err, RMuint32 mask, void *context_in){	struct context_per_task *context = (struct context_per_task *)context_in;	if( context->dcc_info->ttx_sw_decoder ) {		RMstatus err = RMTTXDecode( context->dcc_info->ttx_sw_decoder, pBuffer1, size1 );		if( RMFAILED(err) ) { // flush the buffer and start filling buffer again			RMTTXFlush( context->dcc_info->ttx_sw_decoder );		}	}	else		RMDBGLOG((ENABLE, "No TTX DECODER\n"));	return;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
xnxx国产精品| 亚洲美女电影在线| 色综合久久综合中文综合网| 亚洲一区二区三区视频在线播放 | 欧美精品一区二区三区很污很色的| 成人黄色片在线观看| 日本va欧美va精品| 一区免费观看视频| 久久久久国产成人精品亚洲午夜| 色综合天天性综合| 国产一区二区在线影院| 无吗不卡中文字幕| 亚洲同性gay激情无套| 久久综合999| 日韩一区二区三区在线| 欧美综合色免费| 不卡电影一区二区三区| 国产米奇在线777精品观看| 天天综合日日夜夜精品| 亚洲综合精品自拍| 日韩理论电影院| 欧美激情一区二区三区蜜桃视频| 日韩一区二区麻豆国产| 欧美日韩在线播放一区| 91蝌蚪porny| 不卡影院免费观看| 成人激情av网| 高清日韩电视剧大全免费| 麻豆精品一二三| 日本伊人色综合网| 午夜精品一区在线观看| 一区二区三区在线播放| 中文字幕一区二| 亚洲色图丝袜美腿| 综合久久一区二区三区| 中文字幕精品综合| 国产精品伦理一区二区| 国产午夜亚洲精品羞羞网站| 2014亚洲片线观看视频免费| 日韩免费观看高清完整版在线观看| 欧美日韩三级视频| 欧美区在线观看| 欧美精品123区| 欧美一级片免费看| 日韩欧美一二三四区| 日韩精品最新网址| 久久久精品蜜桃| 日本一区二区三区四区在线视频 | 亚洲国产欧美在线| 日韩精品电影在线观看| 午夜欧美视频在线观看| 日本aⅴ亚洲精品中文乱码| 日韩在线一区二区| 老司机午夜精品99久久| 国产精品系列在线观看| www.视频一区| 色拍拍在线精品视频8848| 色综合久久天天综合网| 欧美午夜片在线观看| 777午夜精品视频在线播放| 欧美一区二区三区色| 26uuu欧美日本| 中文字幕一区二区三区在线播放| 中文字幕在线不卡一区| 亚洲一区二区影院| 久久国产精品第一页| 国产精品77777竹菊影视小说| 成人午夜精品在线| 91福利精品视频| 日韩欧美色电影| 国产精品女主播在线观看| 亚洲欧美区自拍先锋| 日韩国产在线一| 国产盗摄视频一区二区三区| 成人短视频下载| 678五月天丁香亚洲综合网| 久久人人爽人人爽| 夜夜爽夜夜爽精品视频| 青娱乐精品在线视频| 国产成人在线视频免费播放| av日韩在线网站| 91麻豆精品久久久久蜜臀| 国产日韩影视精品| 亚洲国产精品欧美一二99| 精品亚洲国内自在自线福利| 99在线精品一区二区三区| 欧美一区二区三区视频| 亚洲图片另类小说| 精品影视av免费| 91久久国产最好的精华液| 日韩精品一区二区在线| 亚洲另类春色国产| 国产毛片精品国产一区二区三区| 色94色欧美sute亚洲线路一ni| 日韩欧美一二三四区| 一区二区三区在线视频观看| 国产尤物一区二区在线| 欧美在线观看一区二区| 久久久久九九视频| 婷婷成人综合网| av成人老司机| 久久精品日产第一区二区三区高清版| 亚洲一区二区黄色| av亚洲产国偷v产偷v自拍| 日韩欧美久久一区| 亚洲大片在线观看| 99久久久久久| 久久精品一区二区三区不卡| 亚洲.国产.中文慕字在线| 成人精品视频一区二区三区| 日韩一级二级三级精品视频| 玉足女爽爽91| 成人黄色小视频| 久久久久国产精品麻豆| 蜜臀久久99精品久久久久久9| 色悠悠久久综合| 亚洲欧洲av在线| 国产a久久麻豆| 久久这里只精品最新地址| 亚洲成人一区二区在线观看| 91麻豆国产在线观看| 国产精品美日韩| 国产精品一区二区果冻传媒| 日韩欧美中文一区| 美女网站在线免费欧美精品| 欧美久久免费观看| 舔着乳尖日韩一区| 在线播放欧美女士性生活| 亚洲激情在线激情| 91浏览器入口在线观看| 国产精品毛片a∨一区二区三区| 国产成人免费在线| 欧美高清在线视频| 波多野结衣中文字幕一区| 国产色91在线| 高清av一区二区| 亚洲国产精品99久久久久久久久| 国产在线乱码一区二区三区| 日韩欧美激情在线| 国产综合色精品一区二区三区| 91精品一区二区三区在线观看| 日日骚欧美日韩| 日韩一级大片在线| 国模少妇一区二区三区| 久久欧美中文字幕| 成人福利在线看| 亚洲女人****多毛耸耸8| 91国偷自产一区二区开放时间 | 国产精品亚洲午夜一区二区三区 | 欧美高清在线一区二区| jizzjizzjizz欧美| 一区二区三区毛片| 欧美日韩国产乱码电影| 日韩av电影一区| 久久久久久久久一| av中文字幕不卡| 一片黄亚洲嫩模| 欧美一区二区三区视频在线观看| 麻豆成人免费电影| 国产色婷婷亚洲99精品小说| 不卡在线观看av| 香蕉久久一区二区不卡无毒影院| 欧美一区二区大片| 国产经典欧美精品| 曰韩精品一区二区| 欧美mv日韩mv| av一本久道久久综合久久鬼色| 一区二区三区视频在线看| 欧美一区二区大片| 成人av资源站| 天堂va蜜桃一区二区三区漫画版| 精品国产sm最大网站免费看| 成人自拍视频在线| 亚洲一二三区不卡| 2014亚洲片线观看视频免费| 91视频在线观看免费| 日韩黄色免费电影| 中文字幕在线不卡视频| 777久久久精品| 不卡欧美aaaaa| 日本女人一区二区三区| 国产精品乱人伦| 91精品国产综合久久久久久漫画 | 国产精品狼人久久影院观看方式| 日本丰满少妇一区二区三区| 久久精品国产亚洲一区二区三区| 国产精品三级视频| 欧美久久一二区| 91影院在线免费观看| 蜜桃视频第一区免费观看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美日韩一区国产| 不卡av电影在线播放| 乱一区二区av| 亚洲国产aⅴ天堂久久| 久久久国产精品麻豆| 欧美日韩一区不卡| 91网站黄www| 国产成人夜色高潮福利影视| 亚洲午夜私人影院|