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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mp4_header.c

?? < VC++視頻音頻開發>> 這本書的源碼
?? C
字號:


#include <stdlib.h>
#include <math.h>

#include "mp4_vars.h"

#include "getbits.h"
#include "debug.h"
#include "mp4_header.h"

/**
 *
**/

void next_start_code();

/***/

//得到視頻對象層頭
int getvolhdr()
{
	if (showbits(27) == VO_START_CODE)
	{
		getbits(27); 
		getbits(5); 

		if (getbits(28) != VOL_START_CODE)
		{
			exit(101);
		}
		mp4_state->hdr.ident = getbits(4); 
		mp4_state->hdr.random_accessible_vol = getbits(1);
		mp4_state->hdr.type_indication = getbits(8); 
		mp4_state->hdr.is_object_layer_identifier = getbits(1);

		if (mp4_state->hdr.is_object_layer_identifier) {
			mp4_state->hdr.visual_object_layer_verid = getbits(4);
			mp4_state->hdr.visual_object_layer_priority = getbits(3);
		} 
		else {
			mp4_state->hdr.visual_object_layer_verid = 1;
			mp4_state->hdr.visual_object_layer_priority = 1;
		}
		mp4_state->hdr.aspect_ratio_info = getbits(4);
		mp4_state->hdr.vol_control_parameters = getbits(1);
		if (mp4_state->hdr.vol_control_parameters) {
			mp4_state->hdr.chroma_format = getbits(2);
			mp4_state->hdr.low_delay = getbits(1);
			mp4_state->hdr.vbv_parameters = getbits(1);
			if (mp4_state->hdr.vbv_parameters) {
				mp4_state->hdr.first_half_bit_rate = getbits(15);
				getbits1(); 
				mp4_state->hdr.latter_half_bit_rate = getbits(15);
				getbits1(); 
				mp4_state->hdr.first_half_vbv_buffer_size = getbits(15);
				getbits1(); 
				mp4_state->hdr.latter_half_vbv_buffer_size = getbits(3);
				mp4_state->hdr.first_half_vbv_occupancy = getbits(11);
				getbits1(); 
				mp4_state->hdr.latter_half_vbv_occupancy = getbits(15);
				getbits1(); 
			}
		}
		mp4_state->hdr.shape = getbits(2);
		getbits1(); 
		mp4_state->hdr.time_increment_resolution = getbits(16);
		getbits1(); 
		mp4_state->hdr.fixed_vop_rate = getbits(1);

		if (mp4_state->hdr.fixed_vop_rate) {
			int bits = (int) ceil(log((double)mp4_state->hdr.time_increment_resolution)/log(2.0));
			if (bits < 1) 
				bits = 1;
			mp4_state->hdr.fixed_vop_time_increment = getbits(bits);
		}
		
		if (mp4_state->hdr.shape != BINARY_SHAPE_ONLY)  
		{
			if(mp4_state->hdr.shape == 0)
			{
				getbits1(); 
				mp4_state->hdr.width = getbits(13);
				getbits1(); 
				mp4_state->hdr.height = getbits(13);
				getbits1(); 
			}

			mp4_state->hdr.interlaced = getbits(1);
			mp4_state->hdr.obmc_disable = getbits(1);
			
			if (mp4_state->hdr.visual_object_layer_verid == 1) {
				mp4_state->hdr.sprite_usage = getbits(1);
			} 
			else {
				mp4_state->hdr.sprite_usage = getbits(2);
			}
			
			mp4_state->hdr.not_8_bit = getbits(1);
			if (mp4_state->hdr.not_8_bit) 
			{
				mp4_state->hdr.quant_precision = getbits(4);
				mp4_state->hdr.bits_per_pixel = getbits(4);
			}
			else 
			{
				mp4_state->hdr.quant_precision = 5;
				mp4_state->hdr.bits_per_pixel = 8;
			}

			if (mp4_state->hdr.shape == GRAY_SCALE) {
				exit(102);
			}

			mp4_state->hdr.quant_type = getbits(1); 
			if (mp4_state->hdr.quant_type) 
			{
				mp4_state->hdr.load_intra_quant_matrix = getbits(1);
				if (mp4_state->hdr.load_intra_quant_matrix) {
					unsigned int val;
					int i, k = 0;
					do {
						k++;
						val = getbits(8);
						mp4_tables->intra_quant_matrix[mp4_tables->zig_zag_scan[k]] = val;
					} while ((k < 64) && (val != 0));
					for (i = k; i < 64; i++) {
						mp4_tables->intra_quant_matrix[mp4_tables->zig_zag_scan[i]] =
							mp4_tables->intra_quant_matrix[mp4_tables->zig_zag_scan[k-1]];
					}
				}
				mp4_state->hdr.load_nonintra_quant_matrix = getbits(1);
				if (mp4_state->hdr.load_nonintra_quant_matrix) {
					unsigned int val;
					int i, k = 0;
					do {
						k++;
						val = getbits(8);
						mp4_tables->nonintra_quant_matrix[mp4_tables->zig_zag_scan[k]] = val;
					} while ((k < 64) && (val != 0));
					for (i = k; i < 64; i++) {
						mp4_tables->nonintra_quant_matrix[mp4_tables->zig_zag_scan[i]] =
							mp4_tables->nonintra_quant_matrix[mp4_tables->zig_zag_scan[k-1]];
					}
				}
			}

			if (mp4_state->hdr.visual_object_layer_verid/*ident*/ != 1) {
				mp4_state->hdr.quarter_pixel = getbits(1);
			} else {
				mp4_state->hdr.quarter_pixel = 0;
			}

			mp4_state->hdr.complexity_estimation_disable = getbits(1);
			mp4_state->hdr.error_res_disable = getbits(1);
			mp4_state->hdr.data_partitioning = getbits(1);
			if (mp4_state->hdr.data_partitioning) {
				exit(102);
			}	  
			else {
				mp4_state->hdr.error_res_disable = 1;
			}
			
			mp4_state->hdr.intra_acdc_pred_disable = 0;
			mp4_state->hdr.scalability = getbits(1);

			if (mp4_state->hdr.scalability)	{
				exit(103);
			}
			

			if (showbits(32) == USER_DATA_START_CODE) {
				exit(104);
			}
    } 

		return 1;
  }
  
  return 0; // // 沒有視頻對象啟動代碼
}

/***/

// 得到圖像組頭
int getgophdr()
{
	if (nextbits(32) == GOP_START_CODE) 
	{
		getbits(32); 

		mp4_state->hdr.time_code = getbits(18);
		mp4_state->hdr.closed_gov = getbits(1);
		mp4_state->hdr.broken_link = getbits(1);
	}

	return 1;
}

/***/

// 得到視頻對象平面的頭
int getvophdr()
{
	next_start_code();
	if(getbits(32) != (int) VOP_START_CODE)
  {
		_Print("Vop start_code NOT found\n");
		return 0;
  }

	mp4_state->hdr.prediction_type = getbits(2);

	while (getbits(1) == 1) // 臨時的時間起點
  {
		mp4_state->hdr.time_base++;
  }
	getbits1(); 
	{
		int bits = (int) ceil(log(mp4_state->hdr.time_increment_resolution)/log(2.0));
		if (bits < 1) bits = 1;
		
		mp4_state->hdr.time_inc = getbits(bits); 
	}

	getbits1(); 
	mp4_state->hdr.vop_coded = getbits(1);
	if (mp4_state->hdr.vop_coded == 0) 
	{
		next_start_code();
		return 1;
	}  

	if ((mp4_state->hdr.shape != BINARY_SHAPE_ONLY) &&
		(mp4_state->hdr.prediction_type == P_VOP)) 
	{
		mp4_state->hdr.rounding_type = getbits(1);
	} else {
		mp4_state->hdr.rounding_type = 0;
	}
	
	if (mp4_state->hdr.shape != RECTANGULAR)
	{
		if (! (mp4_state->hdr.sprite_usage == STATIC_SPRITE && 
			mp4_state->hdr.prediction_type==I_VOP) )
		{
			mp4_state->hdr.width = getbits(13);
			getbits1();
			mp4_state->hdr.height = getbits(13);
			getbits1();
			mp4_state->hdr.hor_spat_ref = getbits(13);
			getbits1();
			mp4_state->hdr.ver_spat_ref = getbits(13);
			getbits1(); 
		}
		
		mp4_state->hdr.change_CR_disable = getbits(1);
		
		mp4_state->hdr.constant_alpha = getbits(1);
		if (mp4_state->hdr.constant_alpha) {
			mp4_state->hdr.constant_alpha_value = getbits(8);
		}
  }

	if (! (mp4_state->hdr.complexity_estimation_disable)) {
		exit(108);
	}

	if (mp4_state->hdr.shape != BINARY_SHAPE_ONLY)  
  { 
		mp4_state->hdr.intra_dc_vlc_thr = getbits(3);
		if (mp4_state->hdr.interlaced) {
			exit(109);
		}
  }
	
	if (mp4_state->hdr.shape != BINARY_SHAPE_ONLY) 
  { 
		mp4_state->hdr.quantizer = getbits(mp4_state->hdr.quant_precision); // vop quant

		if (mp4_state->hdr.prediction_type != I_VOP) 
		{
			mp4_state->hdr.fcode_for = getbits(3); 
		}
		
		if (! mp4_state->hdr.scalability) {
			if (mp4_state->hdr.shape && mp4_state->hdr.prediction_type!=I_VOP)
				// 視頻對象平面編碼類型
				mp4_state->hdr.shape_coding_type = getbits(1); 
		}
	} 
	
	return 1;
}

/***/

int __inline nextbits(int nbit)
{
	return showbits(nbit);
}


int __inline bytealigned(int nbit) 
{
	return (((ld->bitcnt + nbit) % 8) == 0);
}

/***/

void __inline next_start_code()
{
	if (mp4_state->juice_flag)
	{
		if (! bytealigned(0))
		{
			getbits(1);


			while (! bytealigned(0)) {
				flushbits(1);
			}
		}
	}
	else
	{
		getbits(1);

		while (! bytealigned(0)) {
			flushbits(1);
		}
	}
}

/***/

int __inline nextbits_bytealigned(int nbit)
{
	int code;
	int skipcnt = 0;

	if (bytealigned(skipcnt))
	{
		
		if (showbits(8) == 127) {
			skipcnt += 8;
		}
	}
	else
	{
	
		while (! bytealigned(skipcnt)) {
			skipcnt += 1;
		}
	}

	code = showbits(nbit + skipcnt);
	return ((code << skipcnt) >> skipcnt);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品成人在线视频| 91久久精品网| 91福利在线观看| 精品国产区一区| 亚洲国产成人porn| 成人综合婷婷国产精品久久免费| 欧美日韩aaa| ...av二区三区久久精品| 精品一区二区三区不卡| 欧美日韩在线直播| 亚洲天天做日日做天天谢日日欢| 久久精品99久久久| 欧美一三区三区四区免费在线看 | 青青草国产精品97视觉盛宴| 成人一级视频在线观看| 亚洲精品一区在线观看| 午夜精品久久一牛影视| 91玉足脚交白嫩脚丫在线播放| 欧美tk丨vk视频| 午夜精品一区二区三区免费视频| 色狠狠色狠狠综合| 亚洲狼人国产精品| 色综合久久88色综合天天免费| 国产人伦精品一区二区| 国产精品18久久久久久久久久久久| 欧美日本在线播放| 亚洲成人综合视频| 欧美性大战久久久| 一区二区国产视频| 精品视频在线免费| 亚洲sss视频在线视频| 欧美三级欧美一级| 香蕉av福利精品导航| 欧美日韩亚洲不卡| 石原莉奈一区二区三区在线观看| 欧美亚洲综合久久| 亚洲成人精品影院| 欧美日产国产精品| 久久国产尿小便嘘嘘| 日韩欧美在线影院| 激情图区综合网| 久久久久国产精品人| 成人不卡免费av| 亚洲视频小说图片| 欧美日韩国产成人在线免费| 午夜精品久久久久久久99水蜜桃 | 99国产精品99久久久久久| 国产精品免费视频一区| 91色婷婷久久久久合中文| 亚洲精品视频一区二区| 欧日韩精品视频| 免费一级欧美片在线观看| 国产亚洲精品久| 91丨porny丨最新| 亚洲国产综合视频在线观看| 欧美一区二区国产| 处破女av一区二区| 亚洲国产精品自拍| 精品国产sm最大网站免费看| 成人午夜激情片| 亚洲一区二区三区视频在线播放 | 欧美日韩精品久久久| 狠狠色综合日日| 亚洲欧美日韩系列| 日韩视频免费直播| 99久久综合99久久综合网站| 亚洲国产毛片aaaaa无费看 | 制服丝袜中文字幕一区| 国产精品综合在线视频| 一区二区三区日韩| 精品免费视频一区二区| 日本韩国欧美一区| 国产在线国偷精品免费看| 亚洲欧美韩国综合色| 2021中文字幕一区亚洲| 国产成人三级在线观看| 丝袜美腿亚洲综合| 国产精品国产自产拍在线| 欧美一区二区日韩一区二区| 91美女福利视频| 极品少妇一区二区| 亚洲一区二区av在线| 国产亚洲成aⅴ人片在线观看| 欧美三级电影网站| 成人激情免费电影网址| 奇米四色…亚洲| 亚洲精品乱码久久久久久 | 九色综合狠狠综合久久| 亚洲一区在线观看免费| 国产精品午夜在线观看| 欧美草草影院在线视频| 在线成人av影院| 91久久人澡人人添人人爽欧美| 国产伦精品一区二区三区免费迷| 调教+趴+乳夹+国产+精品| 亚洲欧美日韩国产综合在线| 中文子幕无线码一区tr| 日韩精品自拍偷拍| 91精品国产综合久久国产大片| 欧美专区亚洲专区| 91黄色免费观看| 91视频在线观看免费| 国产.欧美.日韩| 国产精品亚洲专一区二区三区| 美女高潮久久久| 青娱乐精品视频在线| 秋霞电影一区二区| 日一区二区三区| 丝袜美腿成人在线| 天堂蜜桃91精品| 亚洲福利国产精品| 丝袜亚洲精品中文字幕一区| 视频一区二区欧美| 日本免费在线视频不卡一不卡二 | 亚洲乱码日产精品bd| 亚洲私人影院在线观看| 亚洲特黄一级片| 一区二区成人在线观看| 亚洲乱码国产乱码精品精可以看 | 激情五月婷婷综合| 精品一区二区三区在线视频| 激情综合亚洲精品| 国产一区二区精品在线观看| 精品一区二区精品| 国产成人高清视频| 99国产精品一区| 欧美三区在线观看| 日韩欧美国产不卡| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美videossexotv100| 久久综合九色综合欧美98 | 国产精品正在播放| 波多野结衣在线aⅴ中文字幕不卡| 99麻豆久久久国产精品免费优播| 日本黄色一区二区| 3atv在线一区二区三区| 久久先锋影音av鲁色资源| 国产精品系列在线| 亚洲成av人片在www色猫咪| 日本成人在线网站| 国产成人免费视频| 日本道在线观看一区二区| 欧美日本一道本| 中文字幕第一区| 婷婷夜色潮精品综合在线| 国产又黄又大久久| 色八戒一区二区三区| 日韩一区二区影院| 国产精品毛片久久久久久| 亚洲高清视频中文字幕| 国产一区999| 欧美综合亚洲图片综合区| 欧美成人免费网站| 一区二区三区日韩精品| 精品一区二区三区不卡| 91成人国产精品| 久久久久88色偷偷免费| 亚洲va天堂va国产va久| 高清国产一区二区| 91精品国产乱码| 一区二区三区四区视频精品免费 | 国产91富婆露脸刺激对白| 欧美午夜一区二区三区| 国产丝袜美腿一区二区三区| 亚洲成在线观看| 国产成人综合在线观看| 欧美视频在线观看一区| 国产婷婷精品av在线| 日本不卡一区二区三区高清视频| 91视频.com| 中文av字幕一区| 国产在线一区观看| 这里是久久伊人| 亚洲大尺度视频在线观看| 99精品视频一区二区三区| 国产亚洲精品7777| 久久精品国产秦先生| 欧美男生操女生| 夜夜爽夜夜爽精品视频| 欧美伊人久久久久久午夜久久久久| 精品成a人在线观看| 日韩av在线播放中文字幕| 欧亚一区二区三区| 亚洲欧美在线视频观看| 成人网在线播放| 欧美激情综合在线| 国产精品18久久久久久久久| 亚洲精品在线观看网站| 蜜臀av亚洲一区中文字幕| 在线观看91av| 视频在线观看91| 欧美日韩午夜在线| 亚洲国产精品自拍| 欧美在线啊v一区| 综合分类小说区另类春色亚洲小说欧美| 国产原创一区二区| 久久九九久精品国产免费直播| 乱中年女人伦av一区二区| 日韩一区二区三区免费观看| 日韩专区中文字幕一区二区|