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

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

?? aviindex.cpp

?? VC++視頻音頻開發(fā)實用工程案例精選.rar配套光盤代碼。
?? CPP
字號:
//	VirtualDub - Video processing and capture application
//	Copyright (C) 1998-2001 Avery Lee
//
//	This program is free software; you can redistribute it and/or modify
//	it under the terms of the GNU General Public License as published by
//	the Free Software Foundation; either version 2 of the License, or
//	(at your option) any later version.
//
//	This program 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 General Public License for more details.
//
//	You should have received a copy of the GNU General Public License
//	along with this program; if not, write to the Free Software
//	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

#include <stdio.h>
#include <crtdbg.h>

#include "AVIIndex.h"

///////////////////////////////////////////////////////////////////////////

class AVIIndexChainNode {
public:
	enum { ENTS=2048 };

	AVIIndexChainNode *next;

	AVIIndexEntry2 ient[ENTS];
	int num_ents;

	AVIIndexChainNode() {
		num_ents = 0;
		next = NULL;
	}

	bool add(FOURCC ckid, __int64 pos, long size, bool is_keyframe) {
		if (num_ents < ENTS) {
			ient[num_ents].ckid = ckid;
			ient[num_ents].pos = pos;
			ient[num_ents].size = is_keyframe ? size : 0x80000000+size;
			++num_ents;
			return true;
		}
		return false;
	}

	void put(AVIINDEXENTRY *&avieptr) {
		int i;

		for(i=0; i<num_ents; i++) {
			avieptr->ckid			= ient[i].ckid;
			avieptr->dwFlags		= ient[i].size & 0x80000000 ? 0 : AVIIF_KEYFRAME;
			avieptr->dwChunkOffset	= ient[i].pos;
			avieptr->dwChunkLength	= ient[i].size & 0x7FFFFFFF;

			++avieptr;
		}
	}

	void put(AVIIndexEntry2 *&avie2ptr) {
		int i;

		for(i=0; i<num_ents; i++)
			*avie2ptr++ = ient[i];
	}

	void put(AVIIndexEntry3 *&avie3ptr, __int64 offset) {
		int i;

		for(i=0; i<num_ents; i++) {
			avie3ptr->dwSizeKeyframe	= ient[i].size;
			avie3ptr->dwOffset			= (DWORD)(ient[i].pos - offset);

			++avie3ptr;
		}
	}
};

///////////////////////////////////////////////////////////////////////////

AVIIndexChain::AVIIndexChain() {
	head = tail = NULL;
	total_ents = 0;
}

void AVIIndexChain::delete_chain() {
	AVIIndexChainNode *aicn = head,*aicn2;

	while(aicn) {
		aicn2 = aicn->next;
		delete aicn;
		aicn = aicn2;
	}

	head = tail = NULL;
}

AVIIndexChain::~AVIIndexChain() {
	delete_chain();
}

bool AVIIndexChain::add(AVIINDEXENTRY *avie) {
	if (!tail || !tail->add(avie->ckid, avie->dwChunkOffset, avie->dwChunkLength, !!(avie->dwFlags & AVIIF_KEYFRAME))) {
		AVIIndexChainNode *aicn = new AVIIndexChainNode();

		if (tail) tail->next = aicn; else head=aicn;
		tail = aicn;

		if (tail->add(avie->ckid, avie->dwChunkOffset, avie->dwChunkLength, !!(avie->dwFlags & AVIIF_KEYFRAME))) {
			++total_ents;
			return true;
		}

		return false;
	}

	++total_ents;

	return true;
}

bool AVIIndexChain::add(AVIIndexEntry2 *avie2) {
	return add(avie2->ckid, avie2->pos, avie2->size & 0x7FFFFFFF, !!(avie2->size & 0x80000000));
}

bool AVIIndexChain::add(FOURCC ckid, __int64 pos, long size, bool is_keyframe) {
	if (!tail || !tail->add(ckid, pos, size, is_keyframe)) {
		AVIIndexChainNode *aicn = new AVIIndexChainNode();

		if (tail) tail->next = aicn; else head=aicn;
		tail = aicn;

		if (tail->add(ckid, pos, size, is_keyframe)) {
			++total_ents;
			return true;
		}

		return false;
	}

	++total_ents;

	return true;
}

void AVIIndexChain::put(AVIINDEXENTRY *avietbl) {
	AVIIndexChainNode *aicn = head;

	while(aicn) {
		aicn->put(avietbl);
		aicn=aicn->next;
	}

	delete_chain();
}

void AVIIndexChain::put(AVIIndexEntry2 *avie2tbl) {
	AVIIndexChainNode *aicn = head;

	while(aicn) {
		aicn->put(avie2tbl);
		aicn=aicn->next;
	}

	delete_chain();
}

void AVIIndexChain::put(AVIIndexEntry3 *avie3tbl, __int64 offset) {
	AVIIndexChainNode *aicn = head;

	while(aicn) {
		aicn->put(avie3tbl, offset);
		aicn=aicn->next;
	}

	delete_chain();
}

AVIIndex::AVIIndex() {
	index = NULL;
	index2 = NULL;
	index3 = NULL;
}

AVIIndex::~AVIIndex() {
	delete[] index;
	delete[] index2;
	delete[] index3;
}

bool AVIIndex::makeIndex() {
	if (!allocateIndex(total_ents)) return false;

	put(indexPtr());

	return true;
}

bool AVIIndex::makeIndex2() {
	if (!allocateIndex2(total_ents)) return false;

	put(index2Ptr());

	return true;
}

bool AVIIndex::makeIndex3(__int64 offset) {
	if (!allocateIndex3(total_ents)) return false;

	put(index3Ptr(), offset);

	return true;
}

void AVIIndex::clear() {
	delete_chain();
	delete[] index;
	delete[] index2;
	delete[] index3;
	index = NULL;
	index2 = NULL;
	index3 = NULL;
	total_ents = 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线播| 欧美变态tickling挠脚心| 欧美专区在线观看一区| 亚洲国产精品久久艾草纯爱| 在线中文字幕不卡| 日韩女优av电影| 亚洲欧美另类图片小说| 久久精品国产精品亚洲精品| 91丨九色丨黑人外教| 欧美精品一区男女天堂| 亚洲午夜久久久久久久久电影院| 国产一区二区三区免费播放 | 亚洲gay无套男同| 国产老女人精品毛片久久| 欧美性大战xxxxx久久久| 中文字幕免费不卡在线| 久久99精品国产91久久来源| 欧美日韩在线三区| 久久电影网站中文字幕| 在线亚洲一区观看| 中文字幕一区二区三区乱码在线| 韩国一区二区在线观看| 制服丝袜在线91| 亚洲国产一二三| 在线观看亚洲一区| 18欧美乱大交hd1984| 成人综合婷婷国产精品久久| 国产日韩欧美a| 国产一区二区三区四区在线观看| 欧美一区二区视频在线观看2020 | 国产精品99久久久久久有的能看| 777色狠狠一区二区三区| 亚洲永久免费视频| 欧美日韩综合在线免费观看| 一区二区三区不卡视频在线观看 | 精品影视av免费| 欧美xxxxxxxxx| 精品无人码麻豆乱码1区2区 | 亚洲免费高清视频在线| 看国产成人h片视频| 精品视频在线免费| 亚洲制服丝袜在线| 欧美亚洲一区二区在线观看| 亚洲色图制服诱惑| 在线一区二区三区做爰视频网站| 亚洲精品成a人| 欧美日韩一区二区三区在线| 亚洲va天堂va国产va久| 91精品国产综合久久婷婷香蕉 | 亚洲国产精品精华液ab| 成人午夜私人影院| 亚洲日本免费电影| 在线免费观看视频一区| 香蕉久久一区二区不卡无毒影院 | 偷偷要91色婷婷| 日韩精品中文字幕一区| 国产伦精品一区二区三区视频青涩| 久久精品夜色噜噜亚洲a∨| 成人丝袜视频网| 亚洲永久精品大片| 日韩欧美一区二区久久婷婷| 国产精一品亚洲二区在线视频| 国产精品视频一二三区| 欧美亚男人的天堂| 毛片不卡一区二区| 国产精品毛片大码女人| 欧美图片一区二区三区| 韩国女主播一区二区三区| 亚洲精品日产精品乱码不卡| 欧美喷潮久久久xxxxx| 国产米奇在线777精品观看| 亚洲女人****多毛耸耸8| 欧美精品日日鲁夜夜添| 国产毛片精品国产一区二区三区| 亚洲欧美日韩国产手机在线| 日韩一区二区三区电影在线观看| 国产999精品久久久久久绿帽| 亚洲一卡二卡三卡四卡五卡| 久久久久久久久岛国免费| 色天天综合色天天久久| 激情综合五月天| 亚洲国产日韩精品| 国产精品久久久久影院亚瑟 | 日韩精品高清不卡| 欧美国产综合色视频| 欧美日本免费一区二区三区| 国产91丝袜在线播放0| 香港成人在线视频| 国产精品不卡视频| 欧美不卡在线视频| 精品视频全国免费看| av成人老司机| 国产一区二区三区综合| 日本不卡123| 亚洲一区二区三区自拍| 国产精品久久久久久久久久久免费看| 欧美卡1卡2卡| 欧美在线观看视频一区二区| 丁香六月久久综合狠狠色| 老司机午夜精品| 亚洲成人手机在线| 一区二区理论电影在线观看| 国产精品麻豆久久久| 亚洲精品一区二区三区福利 | 不卡大黄网站免费看| 日韩激情一区二区| 亚洲一区二区三区四区在线观看 | 日韩一区和二区| 欧美美女直播网站| 欧美影院一区二区三区| 91免费观看在线| 91丨porny丨蝌蚪视频| 国产91在线看| 成人av中文字幕| 风间由美一区二区三区在线观看| 看片网站欧美日韩| 久久99九九99精品| 韩国av一区二区三区四区| 久久99久久99| 国产在线精品一区二区三区不卡| 麻豆成人91精品二区三区| 免费在线欧美视频| 美女诱惑一区二区| 韩国av一区二区三区| 国产精品一区二区在线观看不卡| 国产一区二区中文字幕| 国产一区二区三区黄视频| 国产一区二区毛片| 不卡一区在线观看| 91黄色在线观看| 欧美日韩的一区二区| 欧美成人女星排名| 久久综合久久鬼色| 国产精品久久三| 亚洲综合在线五月| 日本在线不卡视频| 国产麻豆精品在线| av亚洲精华国产精华| 欧美性生活一区| 91精品福利在线一区二区三区| 欧美成人三级电影在线| 久久九九99视频| 亚洲人成在线观看一区二区| 亚洲chinese男男1069| 精品一区二区免费在线观看| 成人黄色免费短视频| 在线观看成人小视频| 日韩欧美国产综合| 国产精品三级av| 香蕉影视欧美成人| 国产99一区视频免费| 欧洲另类一二三四区| 精品日韩一区二区三区| 国产精品久久久一区麻豆最新章节| 亚洲一区二区黄色| 国产一区日韩二区欧美三区| 91丨九色丨尤物| 日韩一区二区三区精品视频| 国产精品国产三级国产普通话三级| 亚洲一级电影视频| 国产精品一色哟哟哟| 欧美情侣在线播放| 国产精品免费网站在线观看| 天天射综合影视| 亚洲激情成人在线| 中文字幕在线不卡视频| 亚洲成人免费在线| 成人开心网精品视频| 91精品国产高清一区二区三区| 久久精品人人做人人爽人人| 亚洲一区二区精品视频| 欧美精品日日鲁夜夜添| 国产日韩综合av| 日韩国产高清在线| 99精品国产99久久久久久白柏| 欧美二区乱c少妇| 亚洲视频一二三| 国模无码大尺度一区二区三区| 欧美性生活一区| 亚洲欧美中日韩| 精品夜夜嗨av一区二区三区| 欧美三级中文字| 亚洲日韩欧美一区二区在线| 国产精品一卡二卡| 日韩午夜精品电影| 偷拍与自拍一区| 欧美性大战久久| 亚洲最快最全在线视频| 色偷偷成人一区二区三区91| 国产偷国产偷精品高清尤物| 麻豆精品在线看| 日韩一级片在线观看| 天天亚洲美女在线视频| 欧美日韩和欧美的一区二区| 亚洲一区二区av在线| 日本道免费精品一区二区三区| 国产精品国产自产拍在线| 成年人国产精品| 中文字幕制服丝袜成人av| 成人免费电影视频|