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

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

?? videostream.c

?? Ming is a library for generating Macromedia Flash files (.swf), written in C, and includes useful ut
?? C
?? 第 1 頁 / 共 2 頁
字號:
		return -1;	if(ichar >> 7)	{		SWF_warn("setVP6Dimension: first frame is interframe\n");		return -1;	}	if(ichar & 1)	{		SWF_warn("setVP6Dimension: VP60!\n");		return -1;	}	ichar = SWFInput_getChar(input);	ichar = SWFInput_getChar(input);	render_x = SWFInput_getChar(input);	render_y = SWFInput_getChar(input);	stream->width = render_x * 16;	stream->height = render_y * 16;		return 0;	}static int setStreamProperties(SWFVideoStream stream) {	int ret;	FLVTag tag, *tag_p = NULL;		stream->numFrames = FLVStream_getNumFrames(stream->flv, FLV_VIDEOTAG);	while((ret = FLVStream_nextTag(stream->flv, &tag, tag_p)) == 0) 	{		if(tag.tagType == FLV_VIDEOTAG)			break;		tag_p = &tag;	}		if(ret < 0)		return -1;	stream->codecId = tag.hdr.video.codec;		switch (stream->codecId) {		case VIDEO_CODEC_H263:			ret = setH263StreamDimension(stream, &tag);			stream->smoothingFlag = VIDEO_SMOOTHING;			break;		case VIDEO_CODEC_SCREEN:			ret = setScreenStreamDimension(stream, &tag);			stream->smoothingFlag = 0;			break;		case VIDEO_CODEC_VP6:			setVP6Dimension(stream, &tag);			stream->smoothingFlag = VIDEO_SMOOTHING;			ret = 0;			break;		case VIDEO_CODEC_VP6A:		case VIDEO_CODEC_SCREEN2:			SWF_warn("setStreamProperties: automatic dimension setting is not working with this codec yet!\n");			ret = 0;			break;		default:			SWF_warn("Unknown Codec %x\n", stream->codecId);			ret = -1;	}	return ret;}static int onPlace(SWFDisplayItem item, SWFBlockList blocklist){	SWFVideoStream stream = (SWFVideoStream)SWFDisplayItem_getCharacter(item); 	SWFBlock video = SWFVideoStream_getVideoFrame(stream);	if(video == NULL)		return 0;        SWFBlockList_addBlock(blocklist, video);	stream->firstFrame = 0;	return 1;}static int onFrame(SWFDisplayItem item, SWFBlockList blocklist){	SWFPlaceObject2Block placeVideo;	SWFVideoStream stream;	SWFBlock video = NULL;	/* if item is new -> onInit already inserted a frame */		if(item->flags != 0)		return 0;	stream = (SWFVideoStream)SWFDisplayItem_getCharacter(item);	if(stream->mode == SWFVIDEOSTREAM_MODE_MANUAL &&		stream->addFrame == 0)		return 0;		if(stream->mode != SWFVIDEOSTREAM_MODE_MANUAL)		stream->frame++;	if(stream->frame >= stream->framesLoaded)	{		video = SWFVideoStream_getVideoFrame(stream);		if(video == NULL)			return 0;	}		placeVideo = newSWFPlaceObject2Block(item->depth);	SWFPlaceObject2Block_setRatio(placeVideo, stream->frame);	SWFPlaceObject2Block_setMove(placeVideo);	SWFBlockList_addBlock(blocklist, (SWFBlock)placeVideo);               	if(video != NULL)		SWFBlockList_addBlock(blocklist, video);		stream->addFrame = 0;	return 2;}/** * Seek within a video stream. * * This functions allows seeking in video stream. Semantics  * like SWFInput_seek();  * * Works only with SWFVIDEOSTREAM_MODE_MANUAL! * @return old video position (frame) */int SWFVideoStream_seek(SWFVideoStream stream, int frame, int whence){	int old, pos;	if(stream == NULL || stream->embedded == 0)		return -1;	if(stream->mode != SWFVIDEOSTREAM_MODE_MANUAL)		return -1;	old = stream->frame;	switch(whence)	{	case SEEK_SET: 		if(frame < 0 || frame >= stream->numFrames)			return -1;		stream->frame = frame;		break;	case SEEK_END:		if(frame < 0 || frame >= stream->numFrames)	 			return -1;		stream->frame = stream->numFrames - frame;		break;	case SEEK_CUR:		pos = stream->frame + frame;		if(pos < 0 || pos >= stream->numFrames)			return -1;		break;	default:		return -1;	}	stream->addFrame = 1;	return old;} /** * Display next video frame * * Works only with embedded video streams.  * * @return -1 if an error happend. */int SWFVideoStream_nextFrame(SWFVideoStream stream){	if(stream == NULL || !stream->embedded)		return -1;	if(stream->mode != SWFVIDEOSTREAM_MODE_MANUAL)		return -1;	if(stream->addFrame == 1 || stream->firstFrame == 1)		return 0;	stream->addFrame = 1;	stream->frame++;	return 0;}/** * switch video stream frame mode * If the mode == SWFVIDEOSTREAM_MODE_AUTO (default) every swfmovie  * frame a video frame is added. * In SWFVIDEOSTREAM_MODE_MANUAL mode, the user needs to call  * SWFVideoStream_nextFrame() to change the video's frame.  * * Works only with embedded video streams. * * @return the previous mode or -1 if an invalid mode was passed. */int SWFVideoStream_setFrameMode(SWFVideoStream stream, int mode){	int oldmode;	if(stream == NULL || !stream->embedded)		return -1;		oldmode = stream->mode;	switch(mode)	{	case SWFVIDEOSTREAM_MODE_AUTO:		stream->mode = mode;		return oldmode;	case SWFVIDEOSTREAM_MODE_MANUAL:		stream->mode = mode;		return oldmode;	default:		SWF_warn("SWFVideoStream_setFrameMode: mode %i is unknown", mode);		return -1;		}}/*  * create a new SWFVideoSteam object * This function creates a new videostream object from a FLV-file. * Takes a SWFInput object as argument.  * Be aware: You need to keep the SWFInput valid until the movie is generated via save() or output()! */SWFVideoStreamnewSWFVideoStream_fromInput(SWFInput input) {	SWFBlock block;	SWFVideoStream stream;	if(!input)		return NULL;		stream = (SWFVideoStream)malloc(sizeof(struct SWFVideoStream_s));	if(!stream)		return NULL;	block = (SWFBlock)stream;		SWFCharacterInit((SWFCharacter)stream);	CHARACTERID(stream) = ++SWF_gNumCharacters; 	((SWFCharacter)stream)->onFrame = onFrame;        	((SWFCharacter)stream)->onPlace = onPlace;       	block->type = SWF_DEFINEVIDEOSTREAM;	block->writeBlock = writeSWFVideoStreamToMethod;	block->complete = completeSWFVideoStream;	block->dtor = (destroySWFBlockMethod)destroySWFVideoStream;		stream->flv = FLVStream_fromInput(input);	if(stream->flv == NULL)	{		free(stream);		return NULL;	}	stream->lastTag = NULL;	stream->lastFrame = 0;	stream->frame = 0;	stream->embedded = 1;	stream->mode = SWFVIDEOSTREAM_MODE_AUTO;	stream->addFrame = 0;	stream->framesLoaded = 0;	stream->firstFrame = 1;	stream->width = VIDEO_DEF_WIDTH;	stream->height = VIDEO_DEF_HEIGHT;	if (setStreamProperties(stream) < 0)	{		free(stream);		return NULL;	}	return stream;}/* * creates a new SWFVideoStream object * This function creates an empty videostream object. This object can be adressed via * ActionScript to connect and display a streamed video (progessive download / rtmp). */SWFVideoStream newSWFVideoStream() {	SWFBlock block;	SWFVideoStream stream = (SWFVideoStream)malloc(sizeof(struct SWFVideoStream_s));        if(!stream)                return NULL;        block = (SWFBlock)stream;        	SWFCharacterInit((SWFCharacter)stream);        CHARACTERID(stream) = ++SWF_gNumCharacters;        	block->type = SWF_DEFINEVIDEOSTREAM;        block->writeBlock = writeSWFVideoStreamToMethod;        block->complete = completeSWFVideoStream;        block->dtor = (destroySWFBlockMethod)destroySWFVideoStream;        	stream->flv = NULL;	stream->lastTag = NULL;        stream->frame = 0;        stream->embedded = 0;	stream->numFrames = -1;	stream->width = VIDEO_DEF_WIDTH;	stream->height = VIDEO_DEF_HEIGHT;	return stream;}	/*  * create a new SWFVideoSteam object * This function creates a new videostream object from a FLV-file. * Takes a FILE * as argument.  * Be aware: You need to keep the FILE open until the movie is generated via save() or output()! */SWFVideoStream newSWFVideoStream_fromFile(FILE *f /* FILE pointer to a FLV-file */) {	return newSWFVideoStream_fromInput(newSWFInput_file(f));}/*  * sets video dimension  * This function set width and height for streamed videos  * Works only _streamed_ videos (progressive download or rtmp) */void SWFVideoStream_setDimension(SWFVideoStream stream /* stream object */, 				int width, /* width in px */				int height /* height in px */) {	if(!stream->embedded) {		stream->width = width;		stream->height = height;	}}/* * returns the number of video-frames * This function returns the number of video-frames of a SWFVideoStream. * Works only for embedded streams!  */int SWFVideoStream_getNumFrames(SWFVideoStream stream /* Embedded video stream */) {	if(!stream)		return -1;	return stream->numFrames;}/* * returns 1 if embedded video stream has also an audio stream * This functions test if the embedded FLV stream also has audio-data. */int SWFVideoStream_hasAudio(SWFVideoStream stream /* Embedded video stream */){	if(stream != NULL && stream->flv != NULL && stream->flv->has_audio)		return 1;		return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看一级特黄欧美大片| 国产一区二区在线视频| 日韩三级精品电影久久久| 国产99精品在线观看| 午夜精品久久久久久| 国产精品久久久久久久久快鸭| 欧美日韩国产色站一区二区三区| 成人精品高清在线| 麻豆视频观看网址久久| 亚洲女女做受ⅹxx高潮| 久久久91精品国产一区二区精品| 欧美日韩的一区二区| 91香蕉视频污在线| 国产成人av网站| 黄一区二区三区| 日本女人一区二区三区| 一区二区三区四区视频精品免费| 中文字幕巨乱亚洲| 精品国产免费人成电影在线观看四季| 欧美亚洲自拍偷拍| 99久久精品一区二区| 国产九色精品成人porny| 三级欧美在线一区| 亚洲影视资源网| 1区2区3区欧美| 中文子幕无线码一区tr| 国产欧美日韩综合精品一区二区| 欧美一级高清片在线观看| 欧美日韩一区二区欧美激情| 91影院在线观看| 北条麻妃国产九九精品视频| 国产美女娇喘av呻吟久久| 精品一区二区在线视频| 欧美a级理论片| 免费欧美在线视频| 日本成人在线一区| 免费成人av在线播放| 久久精品国产一区二区三区免费看| 丝袜诱惑亚洲看片| 亚洲成人资源网| 日韩精品视频网| 日本系列欧美系列| 奇米影视一区二区三区小说| 麻豆成人91精品二区三区| 麻豆国产欧美一区二区三区| 免费在线一区观看| 国产主播一区二区三区| 国产一区二区三区日韩| 国产老肥熟一区二区三区| 国产成人综合在线| 成人午夜又粗又硬又大| 91在线视频官网| 欧美最猛性xxxxx直播| 欧洲另类一二三四区| 3d动漫精品啪啪一区二区竹菊| 欧美一区二区视频在线观看2020 | 91福利国产成人精品照片| 91久久精品国产91性色tv| 欧美日韩二区三区| 久久一留热品黄| 中文字幕亚洲精品在线观看| 亚洲在线观看免费视频| 麻豆精品在线看| 国产精品一区二区果冻传媒| www.亚洲色图| 欧美日韩另类一区| 久久亚洲综合av| 综合久久给合久久狠狠狠97色| 亚洲影院理伦片| 国产综合色在线| 日本黄色一区二区| 91精品国产全国免费观看| 久久蜜臀精品av| 亚洲乱码国产乱码精品精98午夜 | 精品福利一区二区三区免费视频| 国产亚洲欧美色| 伊人婷婷欧美激情| 精品一区二区在线免费观看| av男人天堂一区| 777精品伊人久久久久大香线蕉| 精品精品国产高清a毛片牛牛 | 亚洲精品中文在线观看| 日韩成人免费看| av午夜一区麻豆| 日韩一级高清毛片| 国产精品美女久久久久aⅴ| 亚洲二区视频在线| 处破女av一区二区| 欧美色综合久久| 国产亚洲综合在线| 亚洲第一成年网| 成人av先锋影音| 欧美va亚洲va香蕉在线| 一区二区三区美女视频| 国产精品99久久久久久久vr| 欧美日本韩国一区二区三区视频 | 亚洲成av人片一区二区| 成熟亚洲日本毛茸茸凸凹| 欧美男女性生活在线直播观看| 日本一区二区三区视频视频| 日韩电影在线观看网站| 99久久99精品久久久久久| 精品久久一区二区三区| 一区二区三区四区乱视频| 国产成人免费视频网站| 欧美一级生活片| 一区二区激情小说| 成人免费视频免费观看| 欧美变态tickle挠乳网站| 亚洲va欧美va国产va天堂影院| av成人动漫在线观看| 国产欧美精品在线观看| 久久福利资源站| 欧美一区日韩一区| 日日摸夜夜添夜夜添国产精品| 99久久国产综合精品色伊| 国产欧美一区二区精品婷婷| 久久精品国产亚洲5555| 欧美喷水一区二区| 亚洲韩国精品一区| 色综合久久中文字幕| 国产精品国产精品国产专区不蜜 | 亚洲影院在线观看| 99久久伊人网影院| 国产欧美综合在线| 国产精品1区二区.| 国产亚洲va综合人人澡精品| 美国十次综合导航| 欧美一区二区三区不卡| 爽爽淫人综合网网站| 欧美日韩一区国产| 亚洲一级二级三级| 欧美视频在线播放| 调教+趴+乳夹+国产+精品| 欧美日韩在线播放三区| 亚洲国产欧美日韩另类综合 | 日韩黄色一级片| 欧美日韩精品三区| 五月激情六月综合| 7878成人国产在线观看| 久久精品国产99久久6| 欧美v日韩v国产v| 国精产品一区一区三区mba视频| 日韩视频在线你懂得| 蓝色福利精品导航| 久久综合狠狠综合久久综合88| 国产一区不卡视频| 中文一区在线播放| 色婷婷激情一区二区三区| 亚洲美女视频在线| 欧美日韩一区二区在线观看视频| 日一区二区三区| 精品国产乱码久久久久久浪潮 | 欧美人狂配大交3d怪物一区| 日本不卡中文字幕| 久久精品一区二区三区不卡| 国产99一区视频免费 | 夜色激情一区二区| 51精品秘密在线观看| 国产一区二区三区在线观看免费 | 日韩欧美精品在线视频| 激情成人午夜视频| 亚洲天天做日日做天天谢日日欢| 欧美在线观看视频一区二区 | 国产精品天天看| 色乱码一区二区三区88| 日韩中文字幕1| 久久综合成人精品亚洲另类欧美| 成人av在线播放网址| 午夜一区二区三区视频| 欧美精品一区二区三区蜜桃视频| www.欧美日韩国产在线| 婷婷一区二区三区| 久久久777精品电影网影网 | 一区二区三区日韩精品视频| 欧美一区二区三区公司| proumb性欧美在线观看| 日韩国产在线观看| 中文文精品字幕一区二区| 精品视频在线免费| 国产一区二区三区不卡在线观看| 亚洲人成网站影音先锋播放| 91精品久久久久久久91蜜桃| 成人黄页毛片网站| 秋霞av亚洲一区二区三| 国产精品日产欧美久久久久| 欧美日韩成人在线一区| 成人v精品蜜桃久久一区| 日韩成人午夜电影| 亚洲你懂的在线视频| 久久久三级国产网站| 欧美日韩视频在线第一区| 国产成人aaaa| 日韩二区三区四区| 亚洲男人的天堂在线观看| 欧美大片顶级少妇| 欧美性videosxxxxx| 99精品视频在线免费观看| 在线看不卡av| 加勒比av一区二区|