home *** CD-ROM | disk | FTP | other *** search
/ The Net: Ultimate Internet Guide / WWLCD1.ISO / mac / SiteBldr / AMOVIE / SDK / _SETUP / COMMON.Z / ezrgb24.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-29  |  2.4 KB  |  94 lines

  1. //==========================================================================;
  2. //
  3. //  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  4. //  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  5. //  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  6. //  PURPOSE.
  7. //
  8. //  Copyright (c) 1992 - 1996  Microsoft Corporation.  All Rights Reserved.
  9. //
  10. //--------------------------------------------------------------------------;
  11. //
  12. // EZrgb24
  13. //
  14. // CTransformFilter derived. Performs image processing FX on the supplied video image.
  15.  
  16.  
  17.  
  18. //
  19. // CEZrgb24
  20. //
  21. class CEZrgb24 : public CTransformFilter,
  22.           public IIPEffect,
  23.           public ISpecifyPropertyPages,
  24.           public CPersistStream {
  25.  
  26. public:
  27.  
  28.     //
  29.     // --- COM Stuff ---
  30.     //
  31.  
  32.     static CUnknown *CreateInstance(LPUNKNOWN punk, HRESULT *phr);
  33.  
  34.     // Reveals IEZrgb24 & ISpecifyPropertyPages
  35.     STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void ** ppv);
  36.  
  37.     // CPersistStream stuff
  38.     HRESULT ScribbleToStream(IStream *pStream);
  39.     HRESULT ReadFromStream(IStream *pStream);
  40.  
  41.  
  42.     DECLARE_IUNKNOWN;
  43.  
  44.  
  45.     //
  46.     // --- CTransformFilter Overrides --
  47.     //
  48.  
  49.     HRESULT Transform(IMediaSample *pIn, IMediaSample *pOut);
  50.     HRESULT CheckInputType(const CMediaType *mtIn);
  51.     HRESULT CheckTransform(const CMediaType *mtIn, const CMediaType *mtOut);
  52.     HRESULT DecideBufferSize(IMemAllocator *pAlloc,
  53.                  ALLOCATOR_PROPERTIES *pProperties);
  54.     HRESULT GetMediaType(int iPosition, CMediaType *pMediaType);
  55.  
  56.  
  57.     //
  58.     // --- IEZrgb24 ---
  59.     //
  60.  
  61.     STDMETHODIMP get_IPEffect(int *IPEffect, REFTIME *StartTime, REFTIME *Length);
  62.     STDMETHODIMP put_IPEffect(int IPEffect, REFTIME StartTime, REFTIME Length);
  63.  
  64.  
  65.     //
  66.     // --- ISpecifyPropertyPages ---
  67.     //
  68.  
  69.     STDMETHODIMP GetPages(CAUUID *pPages);
  70.  
  71.     // CPersistStream override
  72.     STDMETHODIMP GetClassID(CLSID *pClsid);
  73.  
  74.     LPAMOVIESETUP_FILTER GetSetupData();
  75.  
  76. private:
  77.  
  78.     CEZrgb24(TCHAR *tszName, LPUNKNOWN punk, HRESULT *phr);
  79.  
  80.     BOOL CanPerformEZrgb24(const CMediaType *pMediaType) const;
  81.  
  82.     HRESULT Copy(IMediaSample *pSource, IMediaSample *pDest) const;
  83.     HRESULT Transform(IMediaSample *pMediaSample);
  84.  
  85.     CCritSec    m_EZrgb24Lock;
  86.  
  87.     int         m_effect;
  88.     CRefTime    m_effectStartTime;
  89.     CRefTime    m_effectTime;
  90.  
  91.     const long m_lBufferRequest;        // the number of buffers to request on the output allocator
  92.  
  93. };
  94.