📄 decoderengine.h
字号:
/*
* DecoderEngine.h
*
* The MPEG4 Codec for Symbian Project
*
* Copyright (c) 2005-2008 for Cyansoft Studio (www.cyansoft.com.cn).
* All Rights Reserved.
*
* Contributor(s): ______________________________________.
*
* $Cyansoft$
*
*/
#ifndef _DECODER_ENGINE_INC_
#define _DECODER_ENGINE_INC_
#include <e32base.h>
#include <w32std.h>
#include <f32file.h>
#include <s32file.h>
#include <e32svr.h>
class CDirectDraw;
class CYuv2Rgb;
class CScale;
class CMPEG4Decoder;
class CDecoderEngine : public CActive, public MDirectScreenAccess
{
public:
CDecoderEngine();
static CDecoderEngine* NewL( CDirectDraw* aDDraw );
static CDecoderEngine* NewLC( CDirectDraw* aDDraw );
void ConstructL( CDirectDraw* aDDraw );
~CDecoderEngine();
TInt CreateL( TFileName aFileToOpen, TUint32 aWidth, TUint32 aHeight, TUint32 aBytesPixel, CYuv2Rgb* aYuv2Rgb, CScale* aScale, HBufC8* aInputbuf, TUint32 aInputSize, HBufC8* aYuvbuf, TUint32 aYuvSize, HBufC8* aRgbbuf, CMPEG4Decoder* aDecoder );
void StartL();
TInt DecodeL();
void PauseL( TBool fPause );
void StopL( TBool fIgnoreReport );
public: // from MDirectScreenAccess
virtual void Restart( RDirectScreenAccess::TTerminationReasons aReason );
virtual void AbortNow( RDirectScreenAccess::TTerminationReasons aReason );
protected: // from CActive
void DoCancel();
void RunL();
private:
void DrawFrameL();
CDirectDraw* iDDraw;
TUint32 iWidth, iHeight, iBytesPixel;
TFileName iFileToOpen;
TInt iFileSize, iReadSize, iInputSize, iYuvSize;
RFs* iFsSession;
RFile* iFile;
RFileReadStream* iInputStreamFile;
CMPEG4Decoder* iDecoder;
CYuv2Rgb* iYuv2Rgb;
CScale* iScale;
HBufC8* iYuvbuf;
HBufC8* iRgbbuf;
HBufC8* iInputbuf;
TBool iPause, iStop;
TUint32 iFrames, iTotalTime, iDecodeTime, iYuv2rgbTime, iScaleTime;
};
#endif /* _DECODER_ENGINE_INC_ */
/* End of file */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -