www.pudn.com > mediator15src.zip > VideoSequenceCompressor.h
/* * VideoSequenceCompressor.h * Copyright (C) 2002 Arno Hornberger* Original Version Copyright (C) 1998-2001 Avery Lee * * This file is part of MPEG Mediator, a free MPEG stream converter. * * MPEG Mediator 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. * * MPEG Mediator 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef VIDEOSEQUENCECOMPRESSOR_H #define VIDEOSEQUENCECOMPRESSOR_H #include #include #include #include #include #include "error.h" class VideoSequenceCompressor { public: VideoSequenceCompressor(HIC hic, LPBITMAPINFOHEADER lpbih, int rate, int scale, long lQuality, long lKeyRate, long lDataRate); ~VideoSequenceCompressor(); // void dropFrame(); void *packFrame(void *pBits, bool *pfKeyframe, long *plSize); BITMAPINFOHEADER *GetOutputFormat(); int GetOutputFormatSize(); // bool isSequenceIntelligent() { return !!(dwFlags & VIDCF_COMPRESSFRAMES); } // long getMaxSize() { return lMaxPackedSize; } private: bool DeInitVideoCompressor(); void init(HIC hic, BITMAPINFO *pbiInput, BITMAPINFO *pbiOutput, long lQ, long lKeyRate); void setDataRate(long lDataRate, long lUsPerFrame, long lFrameCount); void start(); HIC hic; DWORD dwFlags; BITMAPINFO *pbiInput, *pbiOutput; char *pOutputBuffer, *pPrevBuffer; long lFrameNum, lKeyRate, lQuality; long lKeyRateCounter; long lMaxFrameSize; long lMaxPackedSize; bool fCompressionStarted; long lSlopSpace; void *pConfigData; int cbConfigData; }; #endif