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

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

?? mp4scene.c

?? SigmDesign SMP8634 media decode chip development SDK
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * * Copyright (c) Sigma Designs, Inc. 2006. All rights reserved. * *//**   @file mp4scene.c   @brief limited BIFS parsing for MP4 streams	   @author Yifan Liu   @ingroup dccsamplecode*/#include "../samples/sample_os.h"#define ALLOW_OS_CODE 1#include "../dcc/include/dcc.h"#include "../samples/common.h"#include "psfdemux_common.h"#include "mp4scene.h"#if 1#define CALLDBG ENABLE#else#define CALLDBG DISABLE#endifenum SFNodeType_type {	UnknownSFNodeType = 0,	SF2DNode,	SF3DNode,	SFAppearanceNode,	SFAudioNode,	SFBackground2DNode,	SFBackground3DNode,	SFColorNode,	SFCoordinate2DNode,	SFCoordinateNode,	SFExpressionNode,	SFFAPNode,	SFFDPNode,	SFFITNode,	SFFaceDefMeshNode,	SFFaceDefTablesNode,	SFFaceDefTransformNode,	SFFogNode,	SFFontStyleNode,	SFGeometryNode,	SFLinePropertiesNode,	SFMaterialNode,	SFNavigationInfoNode,	SFNormalNode,	SFStreamingNode,	SFTextureCoordinateNode,	SFTextureNode,	SFTextureTransformNode,	SFTopNode,	SFViewpointNode,	SFVisemeNode,	SFWorldNode};RMuint8 NodeTypeBitNumber_table[] ={	0, /*UnknownNodeType*/	5, /*SF2DNode*/	6, /*SF3DNode*/	1, /*SFAppearanceNode*/	3, /*SFAudioNode*/	1, /*SFBackground2DNode*/	1, /*SFBackground3DNode*/	1, /*SFColorNode*/	1, /*SFCoordinate2DNode*/	1, /*SFCoordinateNode*/	1, /*SFExpressionNode*/	1, /*SFFAPNode*/	1, /*SFFDPNode*/	1, /*SFFITNode*/	1, /*SFFaceDefMeshNode*/	1, /*SFFaceDefTablesNode*/	1, /*SFFaceDefTransformNode*/	1, /*SFFogNode*/	1, /*SFFontStyleNode*/	5, /*SFGeometryNode*/	1, /*SFLinePropertiesNode*/	2, /*SFMaterialNode*/	1, /*SFNavigationInfoNode*/	1, /*SFNormalNode*/	3, /*SFStreamingNode*/	1, /*SFTextureCoordinateNode*/	3, /*SFTextureNode*/	1, /*SFTextureTransformNode*/	3, /*SFTopNode*/	1, /*SFViewpointNode*/	1, /*SFVisemeNode*/	7, /*SFWorldNode*/};enum SFWorldNode_type {	Reserved_Type = 0,	Anchor,	AnimationStream,	Appearance,	AudioBuffer,	AudioClip,	AudioDelay,	AudioFX,	AudioMix,	AudioSource,	AudioSwitch,	Background,	Background2D,	Billboard,	Bitmap,	Box,	Circle,	Collision,	Color,	ColorInterpolator,	CompositeTexture2D,	CompositeTexture3D,	Conditional,	Cone,	Coordinate,	Coordinate2D,	CoordinateInterpolator,	CoordinateInterpolator2D,	Curve2D,	Cylinder,	CylinderSensor,	DirectionalLight,	DiscSensor,	ElevationGrid,	Expression,	Extrusion,	Face,	FaceDefMesh,	FaceDefTables,	FaceDefTransform,	FAP,	FDP,	FIT,	Fog,	FontStyle,	Form,	Group,	ImageTexture,	IndexedFaceSet,	IndexedFaceSet2D,	IndexedLineSet,	IndexedLineSet2D,	Inline,	LOD,	Layer2D,	Layer3D,	Layout,	LineProperties,	ListeningPoint,	Material,	Material2D,	MovieTexture,	NavigationInfo,	Normal,	NormalInterpolator,	OrderedGroup,	OrientationInterpolator,	PixelTexture,	PlaneSensor,	PlaneSensor2D,	PointLight,	PointSet,	PointSet2D,	PositionInterpolator,	PositionInterpolator2D,	ProximitySensor2D,	ProximitySensor,	QuantizationParameter,	Rectangle,	ScalarInterpolator,	Script,	Shape,	Sound,	Sound2D,	Sphere,	SphereSensor,	SpotLight,	Switch,	TermCap,	Text,	TextureCoordinate,	TextureTransform,	TimeSensor,	TouchSensor,	Transform,	Transform2D,	Valuator,	Viewpoint,	VisibilitySensor,	Viseme,	WorldInfo,};char SFWorldNode_name[][64] = {	"Reserved_Type = 0",	"Anchor",	"AnimationStream",	"Appearance",	"AudioBuffer",	"AudioClip",	"AudioDelay",	"AudioFX",	"AudioMix",	"AudioSource",	"AudioSwitch",	"Background",	"Background2D",	"Billboard",	"Bitmap",	"Box",	"Circle",	"Collision",	"Color",	"ColorInterpolator",	"CompositeTexture2D",	"CompositeTexture3D",	"Conditional",	"Cone",	"Coordinate",	"Coordinate2D",	"CoordinateInterpolator",	"CoordinateInterpolator2D",	"Curve2D",	"Cylinder",	"CylinderSensor",	"DirectionalLight",	"DiscSensor",	"ElevationGrid",	"Expression",	"Extrusion",	"Face",	"FaceDefMesh",	"FaceDefTables",	"FaceDefTransform",	"FAP",	"FDP",	"FIT",	"Fog",	"FontStyle",	"Form",	"Group",	"ImageTexture",	"IndexedFaceSet",	"IndexedFaceSet2D",	"IndexedLineSet",	"IndexedLineSet2D",	"Inline",	"LOD",	"Layer2D",	"Layer3D",	"Layout",	"LineProperties",	"ListeningPoint",	"Material",	"Material2D",	"MovieTexture",	"NavigationInfo",	"Normal",	"NormalInterpolator",	"OrderedGroup",	"OrientationInterpolator",	"PixelTexture",	"PlaneSensor",	"PlaneSensor2D",	"PointLight",	"PointSet",	"PointSet2D",	"PositionInterpolator",	"PositionInterpolator2D",	"ProximitySensor2D",	"ProximitySensor",	"QuantizationParameter",	"Rectangle",	"ScalarInterpolator",	"Script",	"Shape",	"Sound",	"Sound2D",	"Sphere",	"SphereSensor",	"SpotLight",	"Switch",	"TermCap",	"Text",	"TextureCoordinate",	"TextureTransform",	"TimeSensor",	"TouchSensor",	"Transform",	"Transform2D",	"Valuator",	"Viewpoint",	"VisibilitySensor",	"Viseme",	"WorldInfo"};enum FieldType_type {	UnknownNodeType = 0,	SF2DNodeType = SF2DNode,	SF3DNodeType = SF3DNode,	SFBoolType = SFWorldNode+1,	SFColorType,	SFFloatType,	SFInt32Type,	SFRotationType,	SFStringType,	SFTimeType,	SFUrlType,	SFVec2fType,	SFVec3fType,	SFImageType,	SFCommandBufferType,	SFScriptType,	MF2DNodeType,	MF3DNodeType,	MFFloatType,	MFBoolType,	MFColorType,	MFInt32Type,	MFRotationType,	MFStringType,	MFTimeType,	MFUrlType,	MFVec2fType,	MFVec3fType,	MFImageType,	MFCommandBufferType,	MFScriptType,};struct BitStream_type {	RMuint8 * stream;	RMuint32 size;	RMuint32 cur_byte;	RMuint32 cur_bit;};struct FieldData {	int fieldType; /* The type of the field (e.g., SFInt32Type). This is given by */			/* the .Field Type. column of the node coding table for the */			/* node to which it belongs. */	int quantType; /* The type of quantization used for the field. This is given by */			/* the .Q. column of the node coding table of the node to */			/* which it belongs. Types refer to Table 19 in 9.3.3.1.1. */	int animType; /* The animation method for the field. This is given by the .A. */			/* column of the node coding table. Types refer to animation */			/* type in Table 25 in 9.3.3.2.1. */	boolean useEfficientCoding; /* Set to true if the efficient coding is to be used. This value is */			/* FALSE by default. If there is a local */			/* QuantizationParameter node this value is the same */			/* as its useEfficientCoding field. */	/* The following data structures are used in the quantization */	/* process: */	//FieldCodingTable fct; /* This field is determined from the node coding table as */				/* described in 9.3.2.9. */	//AnimFieldQP aqp; /* This field is only used in BIFS-Anim. It references an */			/* AnimFieldQP stucture described in 9.3.2.10. */	//QuantizationParameter lqp; /* This field points to the local QuantizationParameter */	//boolean isQuantized; /* Set to true if the corresponding field is quantized, false */				/* otherwise. */	//int nbBits; /* The number of bits used for the quantization of the field. */	//float floatMin[]; /* The minimum bounds for the quantization of vector fields. */			/* These values are obtained from the FieldCodingTable */			/* (described in 9.3.2.9) and the current */			/* QuantizationParameter node (for BIFS-Scene) or the */			/* animField (for BIFS-Anim). */	//float floatMax[]; /* The maximum bounds for the quantization of vector fields. */				/* These values are obtained from the FieldCodingTable */				/* (described in 9.3.2.9) and the current */				/* QuantizationParameter node (for BIFS-Scene) or the */				/* animField (for BIFS-Anim). */	//int intMin[]; /* The minimum bounds for integers (SFInt32 and MFInt32). */				/* These values are obtained from the FieldCodingTable */				/* (described in 9.3.2.9) and the current */				/* QuantizationParameter node (for BIFS-Scene) or the  */				/* animField (for BIFS-Anim). */};#define NODE_DATA_FIELD_NUMBER 16struct NodeData {	int nodeType; /* The nodeType of the node. */	struct FieldData field[NODE_DATA_FIELD_NUMBER];			/* The fields of this node whose construction is described below. This array is indexed in all mode. */	boolean isAnimField[NODE_DATA_FIELD_NUMBER];				/* The mask of animated fields for the entire BIFS-Anim session, */				/* indexed in .dyn. mode. This array is only used in BIFS-Anim. */				/* The following data describes the indexing of the fields in .in., .out., */				/* .def., .dyn. and .all. modes */	int nDEFbits; /* The number of bits used for .def. field codes (the width of the codewords in the 2nd column of the node coding tables). */	int nINbits; /* The number of bits used for .in. field codes (the width of the codewords in the 3rd column of the node coding tables). */	int nOUTbits; /* The number of bits used for .out. field codes (the width of the codewords in the 4th column of the node coding tables). */	int numDEFfields; /* The number of .def. fields available for this node */	int numDYNfields; /* The number of .dyn. fields available for this node. */	int in2all[NODE_DATA_FIELD_NUMBER]; /* The ids of eventIns and exposedFields in .all. mode, indexed with the ids in .in. mode. */	int def2all[NODE_DATA_FIELD_NUMBER]; /* The ids of fields and exposedFields in .all. mode, indexed with the ids in .def. mode. */	int dyn2all[NODE_DATA_FIELD_NUMBER]; /* The ids of dynamic fields in .all. mode, indexed with the ids in .dyn. mode. */	boolean useQuant;				/* When the NodeData is used for storing a prototype, the useQuant states whether the quantization is applied on the PROTO or not. */				/* boolean useAnim; When the NodeData is used for storing a prototype, the useQuant */				/* states whether the BIFS-Anim is applied on the PROTO or not. */	struct NodeData * protoData;				/* In case that a node is contained in a PROTO, its NodeData structure points to the PROTO NodeData structure in the proto field.*/};#define ParseBIFS_GET_BITS( s, n, b )   \	do {                            \		RMstatus err;           \		err = bitstream_get_bits( (s), (n), (RMuint32*)(b) ); \		if( err ) {                       \			bitstream_destory( (s) ); \			return RM_ERROR;          \		}                                 \	} while(0)//printf( "get %d bits from 0x%02x bit %d\n", (n), (s)->stream[(s)->cur_byte], (s)->cur_bit );//printf( "got 0x%02x \n", *(b)&0xff );/*RMuint8 buf[] ={ 0x47 ,0x40 ,0x20 ,0x12 ,0x00 ,0x04 ,0xb0 ,0x1a ,0x00 ,0x00 ,0xc1 ,0x00 ,0x00 ,0xd0 ,0xc0 ,0x10, 0x12 ,0x81 ,0x30 ,0x2a ,0x05 ,0x72 ,0x61 ,0x04 ,0x88 ,0x50 ,0x45 ,0x05 ,0x3f ,0x00 ,0x70 ,0xa1, 0xd4 ,0xbe ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff, 0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff ,0xff};*/RMuint8 USENAMES = 0;static RMstatus SFNode( enum SFNodeType_type nodeDataType, struct BitStream_type * bs, struct BIFSInfo_type * out );static struct BitStream_type * bitstream_create( RMuint8 *src, RMuint32 size ){	struct BitStream_type * bs = (struct BitStream_type *)malloc( sizeof(struct BitStream_type) );	bs->stream = src;	bs->size = size;	bs->cur_byte = 0;	bs->cur_bit = 7;  /* assuming big endian, bit counter start from MSB */	return bs;}static void bitstream_destory( struct BitStream_type * bs ){	if( bs != NULL ){		free( bs );		bs = NULL;	}	return;}static RMstatus bitstream_get_one_byte( struct BitStream_type * bs, RMuint8 * byte ){	RMuint8 curbyte = bs->stream[bs->cur_byte];	RMuint8 curbit = bs->cur_bit;	*byte = 0;   /* init the output */	if( bs->cur_byte >= bs->size )		return RM_ERROR;	*byte = curbyte << (7-curbit);	bs->cur_byte ++;	curbyte = bs->stream[bs->cur_byte];	*byte |= curbyte >> (curbit+1);	return RM_OK;}static RMstatus bitstream_get_less_one_byte( struct BitStream_type * bs, RMuint32 num, RMuint8 * byte ){	RMuint8 curbyte = bs->stream[bs->cur_byte];	RMuint8 curbit = bs->cur_bit;	*byte = 0;   /* init the output */	if( num >= 8 ) /* get 0 - 7 bits only */		return RM_ERROR;	if( bs->cur_byte >= bs->size )		return RM_ERROR;	*byte = curbyte << (7-curbit);	if( curbit >= num) {  /* enough bits in curbyte */		*byte >>= (8-num);		bs->cur_bit -= num;	}	else if( curbit + 1 == (RMuint8)num ){  /* curbyte is just used up */		*byte >>= (8-num);		bs->cur_bit = 7;		bs->cur_byte ++;	}	else {  /* curbyte is not enough */		RMuint32 more = num - (curbit+1);		RMuint32 next;		bs->cur_byte++;		if( bs->cur_byte >= bs->size ) {			*byte = 0;			return RM_ERROR;      /* end of stream no next byte */		}		next = bs->stream[bs->cur_byte];		next >>= curbit+1;		*byte |= next;		*byte >>= 8-num;		bs->cur_bit = 7-more;	}	return RM_OK;}static RMstatus bitstream_get_bits( struct BitStream_type * bs, RMuint32 num, RMuint32 *bits ){	RMstatus err;	*bits = 0;	if( num >= 8 ) {		RMuint32 bytes = num/8;		RMuint32 shift = 8-(num%8);		RMuint8 bottom = 0;		RMuint32 i;		for( i=0; i<bytes; i++ ) {			RMuint8 b;			err = bitstream_get_one_byte( bs, &b );			if( RMFAILED(err) )				return err;			*bits |= ((RMuint32)b & 0x000000ff) << (8*bytes - i*8);		}		*bits >>= shift;		err = bitstream_get_less_one_byte( bs, num%8, &bottom );		if( RMFAILED(err) )			return err;		*bits |= (RMuint32)bottom & (0x000000ff>>shift) ;		return RM_OK;	}	else {		return bitstream_get_less_one_byte( bs, num, (RMuint8*)bits );	}}static RMstatus PROTOlist( struct BitStream_type * bs, struct BIFSInfo_type * out ){	RMuint8 bits;	RMDBGLOG((CALLDBG, "PROTOlist\n" ));	ParseBIFS_GET_BITS( bs, 1, &bits );	while( bits ){		// PROTOdeclaration();		fprintf( stderr, "PROTOdeclaration is not implemented,  return now\n" );		return RM_ERROR;  /* protodeclaration isnot implemneted */		ParseBIFS_GET_BITS( bs, 1, &bits );	}	return RM_OK;}static RMuint32 GetNDTnbBits( enum SFNodeType_type node )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美影院一区二区| 日韩精品一区二区三区蜜臀 | 91麻豆精品91久久久久同性| 欧美成人一级视频| 亚洲一区欧美一区| 国产91丝袜在线播放0| 5月丁香婷婷综合| 亚洲人成在线观看一区二区| 国产资源在线一区| 欧美老女人在线| 亚洲综合无码一区二区| 成人伦理片在线| 久久综合久久综合九色| 日韩精品国产精品| 在线免费观看成人短视频| 国产偷v国产偷v亚洲高清| 免费人成网站在线观看欧美高清| 日本福利一区二区| 1000精品久久久久久久久| 国产高清成人在线| xfplay精品久久| 麻豆免费看一区二区三区| 欧美日本一道本在线视频| 一区二区三区高清| 色88888久久久久久影院野外| 国产精品色在线| 国产精品456露脸| 精品av久久707| 激情久久久久久久久久久久久久久久| 正在播放一区二区| 日本中文字幕一区| 欧美一级一区二区| 五月婷婷久久丁香| 在线不卡免费av| 日韩高清欧美激情| 日韩一区二区精品葵司在线| 奇米综合一区二区三区精品视频| 欧美少妇xxx| 日日夜夜免费精品视频| 91精品国产一区二区三区香蕉 | 亚洲免费av网站| 91视频国产资源| 亚洲伊人色欲综合网| 欧美日韩一区二区三区四区 | 亚洲精品精品亚洲| 在线免费观看视频一区| 亚洲高清在线视频| 日韩一区二区电影网| 久久爱www久久做| 欧美韩日一区二区三区| 91在线精品一区二区| 亚洲一区av在线| 日韩欧美一区二区在线视频| 蜜桃精品在线观看| 中文幕一区二区三区久久蜜桃| 成人福利视频在线| 亚洲国产精品精华液网站| 91精品国产福利| 国产suv一区二区三区88区| 亚洲免费观看高清完整版在线观看熊| 欧美三级电影网| 国产伦理精品不卡| 一区二区三区四区精品在线视频| 8v天堂国产在线一区二区| 国产麻豆9l精品三级站| 亚洲曰韩产成在线| 精品国精品自拍自在线| 色嗨嗨av一区二区三区| 精品一区二区三区在线播放视频 | 国产精品色在线观看| 欧美色手机在线观看| 美女免费视频一区二区| 亚洲欧洲av另类| 日韩一区二区三区电影| 成人免费毛片app| 男女性色大片免费观看一区二区 | 18欧美乱大交hd1984| 91精品视频网| 91农村精品一区二区在线| 蜜臀a∨国产成人精品| 亚洲欧美在线观看| 2021久久国产精品不只是精品| 欧美影院一区二区三区| 国产成人综合亚洲91猫咪| 亚洲成年人影院| 国产日产欧产精品推荐色| 666欧美在线视频| 在线播放视频一区| 99精品在线观看视频| 美女脱光内衣内裤视频久久网站 | 99视频精品免费视频| 美女网站视频久久| 天天亚洲美女在线视频| 精品久久久久99| 欧美日韩成人激情| 成人a免费在线看| 精品在线亚洲视频| 日韩精品一级中文字幕精品视频免费观看 | 欧美videos大乳护士334| 欧美日韩中文字幕一区二区| 91社区在线播放| 国产91丝袜在线播放| 国产成人综合自拍| 国产成人综合在线| 国产乱码精品一区二区三区忘忧草 | 国产精品三级电影| 日韩欧美亚洲一区二区| 色综合咪咪久久| 国产精品一区一区三区| 国产毛片精品一区| 国产剧情一区在线| 国产乱码精品一区二区三区忘忧草| 蜜桃视频在线一区| 久久99精品久久久久久动态图| 热久久一区二区| 久久精品国产一区二区三 | 夜夜操天天操亚洲| 国产精品久久久久久久久免费樱桃| 亚洲精品在线三区| 国产亚洲污的网站| 国产色综合久久| 国产精品国产a| 一区二区理论电影在线观看| 一区二区三区四区高清精品免费观看| 亚洲精品欧美综合四区| 亚洲国产一区二区a毛片| 五月天激情小说综合| 日本免费在线视频不卡一不卡二| 奇米精品一区二区三区在线观看| 日韩在线观看一区二区| 亚洲一级二级在线| 日韩国产高清在线| 99久久久精品| 欧美日韩在线播放一区| 欧美亚洲日本国产| 日韩欧美一二三四区| 久久久99久久精品欧美| 综合亚洲深深色噜噜狠狠网站| 一区二区三区日韩欧美精品| 爽好久久久欧美精品| 精品亚洲aⅴ乱码一区二区三区| 国产乱妇无码大片在线观看| 99国产精品久久久久久久久久久| 欧美视频在线播放| 2024国产精品| 一二三区精品福利视频| 久久99国产精品麻豆| 99久久综合狠狠综合久久| 欧美日高清视频| 亚洲国产成人一区二区三区| 亚洲一线二线三线久久久| 久草精品在线观看| 91网页版在线| 欧美精品一区二区三区视频| 国产精品女同互慰在线看| 亚洲午夜羞羞片| 国产精品一卡二| av不卡在线播放| 欧美久久久久中文字幕| 国产亚洲午夜高清国产拍精品| 亚洲精品国产无套在线观| 久久精品国产成人一区二区三区| 国精产品一区一区三区mba视频 | 亚洲成人你懂的| 国产福利不卡视频| 91精品国产综合久久福利| 亚洲视频中文字幕| 国产剧情av麻豆香蕉精品| 欧美日高清视频| 一区二区三区中文字幕在线观看| 国产一区二区三区综合| 7777女厕盗摄久久久| 亚洲乱码日产精品bd| 国产不卡免费视频| 精品福利一区二区三区| 午夜精品福利久久久| 91丨porny丨最新| 中文一区二区在线观看| 久草精品在线观看| 欧美一级一级性生活免费录像| 亚洲国产精品久久不卡毛片 | 国产成人av一区二区三区在线观看| 欧美精品在欧美一区二区少妇| 亚洲视频资源在线| av不卡免费在线观看| 国产女同性恋一区二区| 精品一区二区在线观看| 日韩亚洲欧美综合| 日韩不卡免费视频| 欧美日韩午夜在线视频| 亚洲曰韩产成在线| 欧美视频在线播放| 亚洲777理论| 欧美日本一区二区在线观看| 一区二区三区四区激情| 99久久久精品| 亚洲视频小说图片| 不卡一区二区中文字幕| 精品国产一区二区精华| 久久精品国产精品青草|