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

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

?? videosource.h

?? < VC++視頻音頻開發>> 這本書的源碼
?? H
字號:
//	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.

#ifndef f_VIDEOSOURCE_H
#define f_VIDEOSOURCE_H

#include <windows.h>
#include <vfw.h>

#include "DubSource.h"

class AVIStripeSystem;
class AVIStripeIndexLookup;
class IMJPEGDecoder;
class IAVIReadHandler;
class IAVIReadStream;

class VideoSource : public DubSource {
protected:
	HANDLE		hBufferObject;
	LONG		lBufferOffset;
	void		*lpvBuffer;
	BITMAPINFOHEADER *bmihDecompressedFormat;
	long		stream_desired_frame;
	long		stream_current_frame;

	void *AllocFrameBuffer(long size);
	void FreeFrameBuffer();

	VideoSource();

public:
	enum {
		IFMODE_NORMAL		=0,
		IFMODE_SWAP			=1,
		IFMODE_SPLIT1		=2,
		IFMODE_SPLIT2		=3,
		IFMODE_DISCARD1		=4,
		IFMODE_DISCARD2		=5,
	};

	virtual ~VideoSource();

	BITMAPINFOHEADER *getImageFormat() const {
		return (BITMAPINFOHEADER *)getFormat();
	}

	void *getFrameBuffer() {
		return lpvBuffer;
	}

	HANDLE getFrameBufferObject() {
		return hBufferObject;
	}

	LONG getFrameBufferOffset() {
		return lBufferOffset;
	}

	virtual bool setDecompressedFormat(int depth);
	virtual bool setDecompressedFormat(BITMAPINFOHEADER *pbih);

	BITMAPINFOHEADER *getDecompressedFormat() {
		return bmihDecompressedFormat;
	}

	virtual void streamSetDesiredFrame(long frame_num);
	virtual long streamGetNextRequiredFrame(BOOL *is_preroll);
	virtual int	streamGetRequiredCount(long *pSize);
	virtual void *streamGetFrame(void *inputBuffer, long data_len, BOOL is_key, BOOL is_preroll, long frame_num) = NULL;

	virtual void streamBegin(bool fRealTime);

	virtual void invalidateFrameBuffer();
	virtual	BOOL isFrameBufferValid() = NULL;

	virtual void *getFrame(LONG frameNum) = NULL;

	virtual char getFrameTypeChar(long lFrameNum) = 0;

	virtual bool isKeyframeOnly();
	virtual bool isType1();
};

class VideoSourceAVI : public VideoSource {
private:
	IAVIReadHandler *pAVIFile;
	IAVIReadStream *pAVIStream;
	HIC			hicDecomp, hicDecomp2;
	LONG		lLastFrame;
	BITMAPINFOHEADER *bmihTemp;
	BOOL		use_ICDecompressEx;

	AVIStripeSystem			*stripesys;
	IAVIReadHandler			**stripe_files;
	IAVIReadStream			**stripe_streams;
	AVIStripeIndexLookup	*stripe_index;
	int						stripe_count;

	IMJPEGDecoder *mdec;
	HBITMAP		hbmLame;
	bool		fUseGDI;
	bool		fAllKeyFrames;
	bool		bIsType1;

	IAVIReadStream *format_stream;

	char		*key_flags;
	bool		use_internal;
	int			mjpeg_mode;
	void		*mjpeg_reorder_buffer;
	int			mjpeg_reorder_buffer_size;
	long		*mjpeg_splits;
	long		mjpeg_last;
	long		mjpeg_last_size;
	FOURCC		fccForceVideo;
	FOURCC		fccForceVideoHandler;

	void _construct();
	void _destruct();

	bool AttemptCodecNegotiation(BITMAPINFOHEADER *, bool);

public:
	VideoSourceAVI(IAVIReadHandler *pAVI, AVIStripeSystem *stripesys=NULL, IAVIReadHandler **stripe_files=NULL, bool use_internal=false, int mjpeg_mode=0, FOURCC fccForceVideo=0, FOURCC fccForceVideoHandler=0);
	~VideoSourceAVI();

	void Reinit();
	void redoKeyFlags();

	int _read(LONG lStart, LONG lCount, LPVOID lpBuffer, LONG cbBuffer, LONG *lBytesRead, LONG *lSamplesRead);
	BOOL _isKey(LONG samp);
	LONG nearestKey(LONG lSample);
	LONG prevKey(LONG lSample);
	LONG nextKey(LONG lSample);
	__int64 sampleOffset(LONG lSample);

	bool setDecompressedFormat(int depth);
	bool setDecompressedFormat(BITMAPINFOHEADER *pbih);
	void invalidateFrameBuffer();
	BOOL isFrameBufferValid();
	bool isStreaming();

	void streamBegin(bool fRealTime);
	void *streamGetFrame(void *inputBuffer, long data_len, BOOL is_key, BOOL is_preroll, long frame_num);
	void streamEnd();

	void *getFrame(LONG frameNum);

	HIC	getDecompressorHandle() const { return hicDecomp; }
	bool isUsingInternalMJPEG() const { return !!mdec; }

	char getFrameTypeChar(long lFrameNum);
	bool isKeyframeOnly();
	bool isType1();
};

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费成人av| 欧美激情一区二区三区四区| av电影在线不卡| 国产.精品.日韩.另类.中文.在线.播放| 亚洲电影一区二区| 日韩一区在线播放| 亚洲免费成人av| 亚洲mv大片欧洲mv大片精品| 首页欧美精品中文字幕| 久久精品国产**网站演员| 国产一区二区三区视频在线播放| 久久精品国产99国产| 国产精品一区二区久久不卡| 成人精品国产一区二区4080| 成人app网站| 欧美日韩一二三区| 欧美一级一级性生活免费录像| 日韩精品影音先锋| 国产精品美女久久久久高潮| 一区二区三区日韩| 久久国产精品99久久久久久老狼 | 亚洲精品亚洲人成人网| 亚洲四区在线观看| 午夜精品久久久久| 国产精品亚洲综合一区在线观看| eeuss鲁一区二区三区| 欧美色视频在线观看| 日韩免费电影网站| 国产精品欧美久久久久一区二区| 亚洲一二三区不卡| 精品制服美女久久| 91在线观看下载| 91麻豆精品国产91久久久 | 91亚洲精品乱码久久久久久蜜桃| 欧美日韩黄视频| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲图片欧美激情| 久久精工是国产品牌吗| 99久久精品免费精品国产| 5月丁香婷婷综合| 国产精品视频线看| 麻豆国产欧美一区二区三区| av电影在线不卡| 精品对白一区国产伦| 一区二区三区在线视频免费 | 国产欧美日韩卡一| 亚洲成人av福利| www.亚洲免费av| 精品国产三级电影在线观看| 亚洲国产日产av| 成人av在线一区二区三区| 日韩精品中文字幕一区二区三区| 一区二区三区四区视频精品免费 | 国产黄色精品网站| 日韩美女视频一区二区在线观看| 亚洲精品写真福利| www.色精品| 久久久久久9999| 久久成人av少妇免费| 欧美体内she精高潮| 亚洲欧美日韩综合aⅴ视频| 国产成人自拍网| 精品久久久久久久久久久院品网| 日日摸夜夜添夜夜添亚洲女人| 91社区在线播放| 国产精品美女www爽爽爽| 国产精品亚洲第一区在线暖暖韩国| 日韩一级视频免费观看在线| 午夜视频在线观看一区二区三区| 在线中文字幕不卡| 亚洲欧美综合在线精品| 福利电影一区二区| 日本一区二区成人| 国产不卡高清在线观看视频| 国产亚洲午夜高清国产拍精品| 久久国产夜色精品鲁鲁99| 欧美一级搡bbbb搡bbbb| 天堂久久一区二区三区| 欧美一三区三区四区免费在线看 | 国产伦精品一区二区三区免费迷 | 欧美精品一区二区在线播放| 黑人巨大精品欧美一区| 欧美精品一区二区不卡| 国产麻豆成人传媒免费观看| 欧美国产97人人爽人人喊| 91在线观看美女| 亚洲一区二区影院| 91麻豆精品国产自产在线| 奇米精品一区二区三区在线观看一| 91精品视频网| 国产精品一二三四| 国产精品国产自产拍高清av| 色综合一个色综合| 日韩中文字幕亚洲一区二区va在线 | 国产日韩欧美高清在线| av一本久道久久综合久久鬼色| 最新国产の精品合集bt伙计| 欧美撒尿777hd撒尿| 久久99精品国产麻豆婷婷| 日本一区二区三区四区在线视频 | 99久久99久久精品免费观看| 亚洲最色的网站| 欧美一区二区三区免费视频 | 亚洲永久精品国产| 日韩欧美国产小视频| 懂色av一区二区三区免费看| 亚洲资源中文字幕| 久久亚洲精品国产精品紫薇 | 日韩国产在线一| 国产欧美一区视频| 精品视频1区2区3区| 国产麻豆9l精品三级站| 亚洲一区二区三区四区五区黄| 欧美成人精品高清在线播放| 色综合婷婷久久| 国产一区二区电影| 亚洲午夜一区二区| 亚洲国产成人自拍| 欧美精品电影在线播放| 粉嫩绯色av一区二区在线观看| 图片区小说区国产精品视频| 中文字幕不卡在线播放| 欧美一区二区三区系列电影| 91亚洲永久精品| 国产精选一区二区三区| 日韩精品五月天| 一区二区三区在线视频观看58| 国产午夜精品久久久久久免费视| 欧美久久一二区| 91免费版在线看| 国产成人av电影在线观看| 天天综合网天天综合色| 一区二区三区中文字幕| 亚洲国产精品黑人久久久| 精品久久一区二区| 91精品国产综合久久福利| 91美女片黄在线观看| 成人综合婷婷国产精品久久 | 久久超级碰视频| 五月天欧美精品| 亚洲午夜一区二区| 国产精品人人做人人爽人人添| 2023国产精华国产精品| 91精品在线免费观看| 欧美视频一区二区三区| 色综合色综合色综合| 99免费精品在线观看| 国产成人精品免费看| 国产精品一色哟哟哟| 国产美女在线精品| 国内精品免费**视频| 国产综合久久久久久久久久久久| 毛片av一区二区| 久久精品国产澳门| 久久精品国产99久久6| 激情综合色播五月| 久久99深爱久久99精品| 久草热8精品视频在线观看| 蜜臂av日日欢夜夜爽一区| 免费成人结看片| 国产一区二区三区四区五区入口 | 日韩制服丝袜av| 日本欧美一区二区| 久久狠狠亚洲综合| 国产精品99久久久久久久女警| 国产精品1区2区3区| 高清国产一区二区三区| 99re8在线精品视频免费播放| 色综合天天综合| 欧美日本一道本| 精品国产伦一区二区三区免费| 国产网站一区二区三区| 国产精品久久久久影院亚瑟| 一区二区不卡在线播放 | 国产剧情一区在线| 北条麻妃国产九九精品视频| 欧美在线观看一区| 日韩欧美在线网站| 国产亚洲一二三区| 亚洲美女一区二区三区| 日本少妇一区二区| 成人av免费观看| 欧美二区乱c少妇| 中文字幕va一区二区三区| 夜夜嗨av一区二区三区中文字幕 | 欧美群妇大交群的观看方式| 精品国产区一区| 亚洲天堂久久久久久久| 日本色综合中文字幕| 不卡的电影网站| 在线播放视频一区| 中文字幕不卡的av| 日本不卡在线视频| 91丨九色丨尤物| 精品国产伦一区二区三区观看体验 | 国产尤物一区二区在线| 色偷偷久久一区二区三区| 日韩精品一区二区三区视频| 亚洲精品自拍动漫在线| 国产乱人伦精品一区二区在线观看|