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

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

?? videostream.c

?? Ming is a library for generating Macromedia Flash files (.swf), written in C, and includes useful ut
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*       Ming, an SWF output library   Copyright (C) 2002  Opaque Industries - http://www.opaque.net/      15.12.2003 Klaus Rechert      This library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.   This library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with this library; if not, write to the Free Software   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#include <stdio.h>#include <stdlib.h>#include "input.h"#include "method.h"#include "block.h"#include "character.h"#include "videostream.h"#include "libming.h"#include "../displaylist.h"#include "flv.h"#define VIDEO_SMOOTHING 0x01 #define VIDEO_NO_SMOOTHING 0x0#define VIDEOFRAME_BLOCK_SIZE 10struct SWFVideoStream_s{	struct SWFCharacter_s character;		FLVStream *flv;	FLVTag *lastTag;	int lastFrame;		int numFrames;		unsigned int frame;	int width;	int height;	unsigned short embedded;	unsigned char codecId;	unsigned char smoothingFlag;	int mode;	int addFrame;	int framesLoaded;	int firstFrame;};struct SWFVideoFrame_s{	struct SWFBlock_s block;		SWFVideoStream stream;	int frameNum;	FLVTag tag;};int SWFVideoStream_getFrameNumber(SWFVideoFrame frame) {	return frame->frameNum;}int completeSWFVideoFrame(SWFBlock block) {	SWFVideoFrame frame = (SWFVideoFrame)block;	SWFInput input;			input = FLVTag_getPayloadInput(&frame->tag);	if(input == NULL)		return 4;	return SWFInput_length(input) + 4;}void writeSWFVideoFrameToMethod(SWFBlock block, SWFByteOutputMethod method, void *data) {	int i, ichar, len;	SWFVideoFrame frame = (SWFVideoFrame)block;	SWFVideoStream stream;	SWFInput input;		if(!block)		return;		input = FLVTag_getPayloadInput(&frame->tag);	if(input == NULL)		return;	len = SWFInput_length(input);	stream = frame->stream;		methodWriteUInt16(CHARACTERID(stream),method, data);	methodWriteUInt16(frame->frameNum, method, data);	for (i = 0; i < len; i++) {		ichar = SWFInput_getChar(input);		method(ichar, data);			}}/* * embedes a video frame in a SWFBlock object * This function reads a video frame for a FLV source and embeds it in a  * SWFBlock object. */SWFBlockSWFVideoStream_getVideoFrame(SWFVideoStream stream /* associated video stream */) {	SWFVideoFrame block;	int frame;	if(!stream->embedded)		return NULL;		if(stream->frame >= stream->numFrames)	{		SWF_warn("SWFVideoStream_getVideoFrame: frame %i, numFrames %i\n", 			stream->frame, stream->numFrames);		return NULL;	}	if(stream->frame < stream->framesLoaded)		return NULL;	block = (SWFVideoFrame) malloc(sizeof(struct SWFVideoFrame_s));	/* If malloc failed, return NULL to signify this */	if (NULL == block)		return NULL;	SWFBlockInit((SWFBlock)block);	BLOCK(block)->complete = completeSWFVideoFrame;	BLOCK(block)->writeBlock = writeSWFVideoFrameToMethod;	BLOCK(block)->dtor = NULL;	BLOCK(block)->type = SWF_VIDEOFRAME;	block->stream = stream;	if(stream->lastTag != NULL && stream->lastFrame < stream->frame)	{		frame = stream->lastFrame;	}	else	{		stream->lastTag = NULL;		frame = -1;	}	do {		if(FLVStream_nextTag(stream->flv, &block->tag, stream->lastTag))		{			free(block);				return NULL;		}		stream->lastTag = &block->tag;		if(block->tag.tagType == FLV_VIDEOTAG)		{			frame++;		}	} while (frame != stream->frame);		block->frameNum = stream->frame;		stream->lastFrame = stream->frame;		stream->framesLoaded = stream->frame + 1;	return (SWFBlock)block;}		static int setH263CustomDimension(SWFVideoStream stream, SWFInput input, int flags) {	int ichar, rshift, mask;	int (*method) (SWFInput stream);	SWFInput_seek(input, -1, SEEK_CUR);	if(flags == 0) {		method = SWFInput_getChar;		rshift = 7;		mask = 0xff;	}	else if (flags == 1) {		method = SWFInput_getUInt16_BE;		rshift = 15;		mask = 0xffff;	}	else		return -1;		ichar = method(input);	stream->width = ( (ichar << 1) & mask );		ichar = method(input);	stream->width |= ( (ichar >> rshift) & mask );	stream->height = ( (ichar << 1) & mask );	ichar = method(input);	stream->height |= ( (ichar >> rshift) & mask );		return 0;}static int setH263StreamDimension(SWFVideoStream stream, FLVTag *tag){	SWFInput input;	int ichar, flags;	input = FLVTag_getPayloadInput(tag);	if(input == NULL)		return -1;	/* skip:	 * pictureStartCode UB[17] 2 byte ( 1 bit remaining )	 * Version UB[5] 	 * Temporal Reference UB[8]	 * Picture Size UB[3] 	 * */	SWFInput_seek(input, 2, SEEK_CUR);	ichar = SWFInput_getUInt16_BE(input);				/* 3-bit flag */	flags = ((0x0003 & ichar) << 1);			ichar = SWFInput_getChar(input);	flags |= ((0x80 & ichar) >> 7);		switch(flags) 	{		case 6:			stream->width = 160;			stream->height = 120;			return 0;		case 5:			stream->width = 320;			stream->height = 240;			return 0;		case 4:			stream->width = 128;			stream->height = 96;			return 0;		case 3:			stream->width = 176;			stream->height = 144;			return 0;						case 2: 			stream->width = 352;			stream->height = 288;			return 0;		default:			return setH263CustomDimension(stream, input, flags);	}}				static int setScreenStreamDimension(SWFVideoStream stream, FLVTag *tag) {	unsigned int ui16 = 0;	int ic;	SWFInput input;		input = FLVTag_getPayloadInput(tag);	if(input == NULL)		return -1;		/* special case: skip 1 byte */ 	ic  = SWFInput_getChar(input);		ic = SWFInput_getChar(input);	if(ic >= 0) 		ui16 = ic << 8;		ic = SWFInput_getChar(input);	if(ic >= 0)		ui16 |= ic;	stream->width = ui16 & 0x0fff;	ic = SWFInput_getChar(input);	if(ic >= 0) 		ui16 = ic << 8;		ic = SWFInput_getChar(input);	if(ic >= 0)		ui16 |= ic;	stream->height = ui16 & 0x0fff;		return 0;}void writeSWFVideoStreamToMethod(SWFBlock block, SWFByteOutputMethod method, void *data){	SWFVideoStream stream = (SWFVideoStream)block;		methodWriteUInt16(CHARACTERID(stream), method, data);	methodWriteUInt16(stream->numFrames, method, data);	methodWriteUInt16(stream->width, method, data);	methodWriteUInt16(stream->height, method, data);		if(stream->embedded) {		method(stream->smoothingFlag, data);		method(stream->codecId, data);	}	/*	 * in case of streaming video, flags and codec id must be 0x0	 * if not 0 it craches player + browser	 */	else {		method(0x0, data);		method(0x0, data);	}};int completeSWFVideoStream(SWFBlock block) {	return VIDEOFRAME_BLOCK_SIZE;}void destroySWFVideoStream(SWFVideoStream stream) {	destroySWFCharacter((SWFCharacter) stream);}static int setVP6Dimension(SWFVideoStream stream, FLVTag *tag){	SWFInput input;	int ichar;	int render_x, render_y;	input = FLVTag_getPayloadInput(tag);	if(input == NULL)		return -1;		ichar = SWFInput_getChar(input);	if(ichar == EOF) 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久色婷婷小香蕉久久| 9191成人精品久久| av不卡在线播放| 极品少妇xxxx偷拍精品少妇| 国产91对白在线观看九色| 亚洲国产欧美在线| 欧美精品少妇一区二区三区 | 欧美精品自拍偷拍| 91久久线看在观草草青青| 国产欧美精品在线观看| 99精品久久99久久久久| 亚洲成人中文在线| 欧美一区二区大片| 国产毛片一区二区| 国产精品理论在线观看| 色老头久久综合| 日本成人在线不卡视频| 久久久久久久久久久久电影| 久久亚洲精品小早川怜子| 亚洲女同一区二区| 国产一区二区视频在线播放| 99热精品一区二区| 欧美一区二区视频在线观看2020| 欧美三级中文字| 中文字幕一区二区三区蜜月| 婷婷开心激情综合| 日本高清免费不卡视频| 亚洲日本va午夜在线电影| 欧美色窝79yyyycom| av日韩在线网站| 亚洲一级片在线观看| ww久久中文字幕| 欧美日韩精品一区二区三区| 国产精品乡下勾搭老头1| 一区二区三区美女| 久久综合狠狠综合久久综合88 | 精品亚洲porn| 亚洲六月丁香色婷婷综合久久 | 懂色av中文字幕一区二区三区| 亚洲午夜久久久久| 国产精品伦理一区二区| 日韩欧美一区二区久久婷婷| 99精品欧美一区二区三区小说 | 日韩欧美一级二级三级久久久| 972aa.com艺术欧美| 国模娜娜一区二区三区| 亚洲成人www| 中文字幕在线免费不卡| 久久免费国产精品| 精品欧美久久久| 欧美乱妇15p| 欧美性生活影院| av在线这里只有精品| 国产一区二区网址| 美国毛片一区二区三区| 亚洲国产另类精品专区| 亚洲欧美一区二区三区极速播放| 久久久久久电影| 欧美大肚乱孕交hd孕妇| 欧美精品日韩一区| 欧美日韩国产免费一区二区| 91美女视频网站| 国产成人亚洲精品狼色在线| 久久国产精品第一页| 免费视频一区二区| 日日噜噜夜夜狠狠视频欧美人| 亚洲一区二区三区国产| 夜夜精品视频一区二区| 一区二区三区久久| 亚洲激情成人在线| 亚洲精品一二三区| 亚洲黄一区二区三区| 亚洲线精品一区二区三区| 夜夜嗨av一区二区三区四季av | av不卡免费在线观看| 成人午夜视频网站| 成人毛片在线观看| 不卡电影一区二区三区| 99国产精品一区| 在线观看一区二区视频| 在线看国产一区| 56国语精品自产拍在线观看| 日韩一区二区三区视频在线| 日韩一区二区三区在线| 精品成人佐山爱一区二区| 精品sm捆绑视频| 欧美激情一二三区| 亚洲天堂久久久久久久| 亚洲人快播电影网| 亚洲综合久久久久| 亚洲高清免费观看| 日本欧美大码aⅴ在线播放| 久久精品国产亚洲aⅴ| 国产一区二区免费视频| 国产成人精品在线看| 91蝌蚪porny| 欧美色手机在线观看| 69堂精品视频| 亚洲精品在线网站| 亚洲欧美日韩在线播放| 五月激情综合网| 精品在线你懂的| 91麻豆精品秘密| 884aa四虎影成人精品一区| 精品卡一卡二卡三卡四在线| 国产精品久久久久久久久快鸭 | 欧美一级日韩免费不卡| 精品国免费一区二区三区| 国产精品视频yy9299一区| 一片黄亚洲嫩模| 久久66热偷产精品| 99精品视频在线播放观看| 3d成人h动漫网站入口| 国产午夜精品久久久久久久| 一区二区三区中文字幕电影| 久久成人久久鬼色| 色噜噜狠狠成人网p站| 精品蜜桃在线看| 亚洲天天做日日做天天谢日日欢| 午夜电影一区二区| 福利电影一区二区三区| 欧美色图免费看| 中文字幕精品三区| 日韩电影在线观看网站| 懂色一区二区三区免费观看 | 国产黄人亚洲片| 欧美少妇一区二区| 久久久久久久久久久久久夜| 亚洲第一搞黄网站| 国产精品69毛片高清亚洲| 久久久午夜精品| 亚洲精品高清在线观看| 精品亚洲国内自在自线福利| 欧美日韩亚洲综合一区二区三区| 国产日韩综合av| 国产专区欧美精品| 在线欧美一区二区| 中文字幕不卡在线播放| 国产在线播放一区三区四| 这里只有精品视频在线观看| 国产日韩精品一区二区三区在线| 亚洲bt欧美bt精品| 在线观看日韩电影| 亚洲夂夂婷婷色拍ww47| eeuss鲁一区二区三区| 国产拍揄自揄精品视频麻豆| 男女性色大片免费观看一区二区 | 91香蕉视频污| 日韩欧美高清在线| 亚洲国产精品久久一线不卡| 国产jizzjizz一区二区| 久久久久久黄色| 成人网在线免费视频| 日本不卡1234视频| 久久精品久久精品| 国产xxx精品视频大全| 亚洲色图20p| 国产麻豆日韩欧美久久| 日韩欧美国产一二三区| 日韩二区三区在线观看| 欧美日韩一区二区三区视频| 自拍偷在线精品自拍偷无码专区 | 日韩亚洲欧美中文三级| 亚洲综合丁香婷婷六月香| 一本色道a无线码一区v| 国产精品女主播在线观看| 高清国产一区二区| 欧美激情自拍偷拍| 国产iv一区二区三区| 国产丝袜美腿一区二区三区| 国产电影一区在线| 久久久久高清精品| 国产成人亚洲精品青草天美| 欧美激情综合五月色丁香| 国产成人日日夜夜| 欧美国产日韩在线观看| 成人免费精品视频| 亚洲免费看黄网站| 欧美综合天天夜夜久久| 五月婷婷激情综合网| 51精品视频一区二区三区| 久久国产麻豆精品| 久久青草国产手机看片福利盒子 | 国产精品1024| 国产精品免费丝袜| 91免费国产在线| 亚洲成人第一页| 欧美va亚洲va在线观看蝴蝶网| 久久99精品久久久久久国产越南| 精品福利在线导航| av网站免费线看精品| 玉米视频成人免费看| 欧美精品第1页| 国产精品一级片在线观看| 欧美国产乱子伦| 欧美日韩中文国产| 久久国产日韩欧美精品| 国产精品二区一区二区aⅴ污介绍| 色香蕉久久蜜桃| 六月丁香综合在线视频|