Untitled diff

Created Diff never expires
12 removals
53 lines
10 additions
54 lines
/* •¶ŽšƒR[ƒh‚Í‚r‚i‚h‚r ‰üsƒR[ƒh‚Í‚b‚q‚k‚e */
/* •¶ŽšƒR[ƒh‚Í‚r‚i‚h‚r ‰üsƒR[ƒh‚Í‚b‚q‚k‚e */
/* $Id: Codec.h 731 2011-08-30 13:49:13Z umezawa $ */
/* $Id$ */


#pragma once
#pragma once


#define CBGROSSWIDTH_NATURAL ((size_t)0)
#define CBGROSSWIDTH_NATURAL ((size_t)0)
#define CBGROSSWIDTH_WINDOWS ((size_t)-1)
#define CBGROSSWIDTH_WINDOWS ((size_t)-1)


class CCodec
class CCodec
{
{
public:
public:
DLLEXPORT static CCodec *CreateInstance(utvf_t utvf, const char *pszInterfaceName);
DLLEXPORT static CCodec *CreateInstance(utvf_t utvf, const char *pszInterfaceName);
DLLEXPORT static void DeleteInstance(CCodec *pCodec);
DLLEXPORT static void DeleteInstance(CCodec *pCodec);


protected:
protected:
CCodec(void);
CCodec(void);
virtual ~CCodec(void);
virtual ~CCodec(void);


public:
public:
virtual const char *GetTinyName(void) = 0;
virtual const char *GetTinyName(void) = 0;
virtual void GetShortFriendlyName(char *pszName, size_t cchName) = 0;
virtual void GetShortFriendlyName(char *pszName, size_t cchName) = 0;
virtual void GetShortFriendlyName(wchar_t *pszName, size_t cchName) = 0;
virtual void GetShortFriendlyName(wchar_t *pszName, size_t cchName) = 0;
virtual void GetLongFriendlyName(char *pszName, size_t cchName) = 0;
virtual void GetLongFriendlyName(char *pszName, size_t cchName) = 0;
virtual void GetLongFriendlyName(wchar_t *pszName, size_t cchName) = 0;
virtual void GetLongFriendlyName(wchar_t *pszName, size_t cchName) = 0;
virtual const utvf_t *GetEncoderInputFormat(void) = 0;
virtual const utvf_t *GetEncoderInputFormat(void) = 0;
virtual const utvf_t *GetDecoderOutputFormat(void) = 0;
virtual const utvf_t *GetDecoderOutputFormat(void) = 0;
virtual const utvf_t *GetCompressedFormat(void) = 0;
virtual const utvf_t *GetCompressedFormat(void) = 0;
virtual bool IsTemporalCompressionSupported(void) = 0;
virtual bool IsTemporalCompressionSupported(void) = 0;


#ifdef _WIN32
#ifdef _WIN32
virtual INT_PTR About(HWND hwnd);
virtual INT_PTR About(HWND hwnd);
virtual INT_PTR Configure(HWND hwnd) = 0;
virtual INT_PTR Configure(HWND hwnd) = 0;
#endif
#endif


virtual size_t GetStateSize(void) = 0;
virtual size_t GetStateSize(void) = 0;
virtual int GetState(void *pState, size_t cb) = 0;
virtual int GetState(void *pState, size_t cb) = 0;
virtual int SetState(const void *pState, size_t cb) = 0;
virtual int SetState(const void *pState, size_t cb) = 0;


virtual int EncodeBegin(utvf_t infmt, unsigned int width, unsigned int height, size_t cbGrossWidth) = 0;
virtual int EncodeBegin(unsigned int width, unsigned int height) = 0;
virtual size_t EncodeFrame(void *pOutput, bool *pbKeyFrame, const void *pInput) = 0;
virtual size_t EncodeFrame(void *pOutput, bool *pbKeyFrame, const void *pInput, utvf_t infmt, size_t cbGrossWidth) = 0;
virtual int EncodeEnd(void) = 0;
virtual int EncodeEnd(void) = 0;
virtual size_t EncodeGetExtraDataSize(void) = 0;
virtual size_t EncodeGetExtraDataSize(void) = 0;
virtual int EncodeGetExtraData(void *pExtraData, size_t cb, utvf_t infmt, unsigned int width, unsigned int height, size_t cbGrossWidth) = 0;
virtual int EncodeGetExtraData(void *pExtraData, size_t cb, unsigned int width, unsigned int height) = 0;
virtual size_t EncodeGetOutputSize(utvf_t infmt, unsigned int width, unsigned int height, size_t cbGrossWidth) = 0;
virtual size_t EncodeGetOutputSize(utvf_t infmt, unsigned int width, unsigned int height) = 0;
virtual int EncodeQuery(utvf_t infmt, unsigned int width, unsigned int height, size_t cbGrossWidth) = 0;
virtual int EncodeQuery(utvf_t infmt, unsigned int width, unsigned int height) = 0;


virtual int DecodeBegin(utvf_t outfmt, unsigned int width, unsigned int height, size_t cbGrossWidth, const void *pExtraData, size_t cbExtraData) = 0;
virtual int DecodeBegin(unsigned int width, unsigned int height, const void *pExtraData, size_t cbExtraData) = 0;
virtual size_t DecodeFrame(void *pOutput, const void *pInput, bool bKeyFrame) = 0;
virtual size_t DecodeFrame(void *pOutput, const void *pInput, utvf_t outfmt, size_t cbGrossWidth) = 0;
virtual int DecodeGetFrameType(bool *pbKeyFrame, const void *pInput) = 0;
virtual int DecodeEnd(void) = 0;
virtual int DecodeEnd(void) = 0;
virtual size_t DecodeGetOutputSize(utvf_t outfmt, unsigned int width, unsigned int height, size_t cbGrossWidth) = 0;
virtual size_t DecodeGetOutputSize(utvf_t outfmt, unsigned int width, unsigned int height, size_t cbGrossWidth) = 0;
virtual int DecodeQuery(utvf_t outfmt, unsigned int width, unsigned int height, size_t cbGrossWidth, const void *pExtraData, size_t cbExtraData) = 0;
virtual int DecodeQuery(utvf_t outfmt, unsigned int width, unsigned int height, const void *pExtraData, size_t cbExtraData) = 0;
};
};