Copy (2) of QTDec.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:1k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. #pragma once
  2. #include <afxtempl.h>
  3. #include "........includeqtqt.h"
  4. //
  5. // CQTDec
  6. //
  7. // {2D261619-3822-4856-A422-DC77BF0FB947}
  8. DEFINE_GUID(CLSID_QTDec, 
  9. 0x2d261619, 0x3822, 0x4856, 0xa4, 0x22, 0xdc, 0x77, 0xbf, 0xf, 0xb9, 0x47);
  10. class CQTDec : public CTransformFilter
  11. {
  12. bool m_fQtInitialized;
  13. CArray<CMediaType> m_mts;
  14. QT::GWorldPtr m_pImageGWorld;
  15. QT::GWorldPtr MakeGWorld();
  16. void FreeGWorld(QT::GWorldPtr& pImageGWorld);
  17. QT::ComponentInstance m_cinst;
  18. QT::CodecCapabilities m_ccap;
  19. QT::CodecDecompressParams m_cdpar;
  20. QT::ImageDescriptionHandle m_hImageDesc;
  21. bool InitComponent();
  22. public:
  23. CQTDec(LPUNKNOWN lpunk, HRESULT* phr);
  24. virtual ~CQTDec();
  25. #ifdef REGISTER_FILTER
  26.     static CUnknown* WINAPI CreateInstance(LPUNKNOWN lpunk, HRESULT* phr);
  27. #endif
  28.     HRESULT BreakConnect(PIN_DIRECTION dir);
  29. HRESULT CompleteConnect(PIN_DIRECTION dir, IPin* pReceivePin);
  30. HRESULT Transform(IMediaSample* pIn, IMediaSample* pOut);
  31. HRESULT CheckInputType(const CMediaType* mtIn);
  32. HRESULT CheckTransform(const CMediaType* mtIn, const CMediaType* mtOut);
  33. HRESULT DecideBufferSize(IMemAllocator* pAllocator, ALLOCATOR_PROPERTIES* pProperties);
  34. HRESULT GetMediaType(int iPosition, CMediaType* pMediaType);
  35. };