Copy 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. bool CanDecompress(QT::OSType fourcc, bool& fYUY2, bool& fUYVY);
  15. QT::ImageDescriptionHandle MakeImageDescription();
  16. QT::GWorldPtr MakeGWorld();
  17. void FreeImageDescription(QT::ImageDescriptionHandle& hImageDescription);
  18. void FreeGWorld(QT::GWorldPtr& pImageGWorld);
  19. QT::ImageDescriptionHandle m_hImageDescription;
  20. QT::GWorldPtr m_pImageGWorld;
  21.     QT::ImageSequence m_outSeqID;
  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 StartStreaming();
  31. HRESULT StopStreaming();
  32. HRESULT Transform(IMediaSample* pIn, IMediaSample* pOut);
  33. HRESULT CheckInputType(const CMediaType* mtIn);
  34. HRESULT CheckTransform(const CMediaType* mtIn, const CMediaType* mtOut);
  35. HRESULT DecideBufferSize(IMemAllocator* pAllocator, ALLOCATOR_PROPERTIES* pProperties);
  36. HRESULT GetMediaType(int iPosition, CMediaType* pMediaType);
  37. };