📄 mtype.h
字号:
//------------------------------------------------------------------------------// File: MtType.h//// Desc: DirectShow base classes - defines a class that holds and manages// media type information.//// Copyright (c) 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -