mtype.h.svn-base

来自「ffshow源码」· SVN-BASE 代码 · 共 90 行

SVN-BASE
90
字号
//------------------------------------------------------------------------------// File: MtType.h//// Desc: DirectShow base classes - defines a class that holds and manages//       media type information.//// Copyright (c) 1992-2002 Microsoft Corporation.  All rights reserved.//------------------------------------------------------------------------------#ifndef __MTYPE__#define __MTYPE__/* Helper class that derived pin objects can use to compare media   types etc. Has same data members as the struct AM_MEDIA_TYPE defined   in the streams IDL file, but also has (non-virtual) functions */class CMediaType : public _AMMediaType {public:    ~CMediaType();    CMediaType();    CMediaType(const GUID * majortype);    CMediaType(const AM_MEDIA_TYPE&, HRESULT* phr = NULL);    CMediaType(const CMediaType&, HRESULT* phr = NULL);    CMediaType& operator=(const CMediaType&);    CMediaType& operator=(const AM_MEDIA_TYPE&);    BOOL operator == (const CMediaType&) const;    BOOL operator != (const CMediaType&) const;    HRESULT Set(const CMediaType& rt);    HRESULT Set(const AM_MEDIA_TYPE& rt);    BOOL IsValid() const;    const GUID *Type() const { return &majortype;} ;    void SetType(const GUID *);    const GUID *Subtype() const { return &subtype;} ;    void SetSubtype(const GUID *);    BOOL IsFixedSize() const {return bFixedSizeSamples; };    BOOL IsTemporalCompressed() const {return bTemporalCompression; };    ULONG GetSampleSize() const;    void SetSampleSize(ULONG sz);    void SetVariableSize();    void SetTemporalCompression(BOOL bCompressed);    // read/write pointer to format - can't change length without    // calling SetFormat, AllocFormatBuffer or ReallocFormatBuffer    BYTE*   Format() const {return pbFormat; };    ULONG   FormatLength() const { return cbFormat; };    void SetFormatType(const GUID *);    const GUID *FormatType() const {return &formattype; };    BOOL SetFormat(BYTE *pFormat, ULONG length);    void ResetFormatBuffer();    BYTE* AllocFormatBuffer(ULONG length);    BYTE* ReallocFormatBuffer(ULONG length);    void InitMediaType();    BOOL MatchesPartial(const CMediaType* ppartial) const;    BOOL IsPartiallySpecified(void) const;};/* General purpose functions to copy and delete a task allocated AM_MEDIA_TYPE   structure which is useful when using the IEnumMediaFormats interface as   the implementation allocates the structures which you must later delete */void WINAPI DeleteMediaType(AM_MEDIA_TYPE *pmt);AM_MEDIA_TYPE * WINAPI CreateMediaType(AM_MEDIA_TYPE const *pSrc);HRESULT WINAPI CopyMediaType(AM_MEDIA_TYPE *pmtTarget, const AM_MEDIA_TYPE *pmtSource);void WINAPI FreeMediaType(AM_MEDIA_TYPE& mt);//  Initialize a media type from a WAVEFORMATEXSTDAPI CreateAudioMediaType(    const WAVEFORMATEX *pwfx,    AM_MEDIA_TYPE *pmt,    BOOL bSetFormat);#endif /* __MTYPE__ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?