OggRawAudioExtractorInputPin.h

Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "oggrawaudioextractordllstuff.h"
00004 #include "IOggDecoder.h"
00005 
00006 class OggRawAudioExtractorFilter;
00007 
00008 class OggRawAudioExtractorInputPin
00009         :       public CTransformInputPin
00010         ,       public IOggDecoder
00011 {
00012 public:
00013         DECLARE_IUNKNOWN
00014         STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
00015 
00016         OggRawAudioExtractorInputPin(OggRawAudioExtractorFilter* inParent, HRESULT* outHR);
00017         virtual ~OggRawAudioExtractorInputPin(void);
00018 
00019         virtual STDMETHODIMP GetAllocatorRequirements(ALLOCATOR_PROPERTIES *outRequestedProps);
00020         virtual HRESULT SetMediaType(const CMediaType* inMediaType);
00021         virtual HRESULT CheckMediaType(const CMediaType *inMediaType);
00022 
00023         
00024 
00025         //IOggDecoder Interface
00026         virtual LOOG_INT64 convertGranuleToTime(LOOG_INT64 inGranule);
00027         virtual LOOG_INT64 mustSeekBefore(LOOG_INT64 inGranule);
00028         virtual IOggDecoder::eAcceptHeaderResult showHeaderPacket(OggPacket* inCodecHeaderPacket);
00029         virtual string getCodecShortName();
00030         virtual string getCodecIdentString();
00031 
00032 
00033         sOggRawAudioFormatBlock getFormatBlock()                {return mFormatBlock;   }
00034 protected:
00035         enum eOggRawAudioSetupState {
00036                 VSS_SEEN_NOTHING,
00037                 VSS_SEEN_BOS,
00038                 VSS_SEEN_COMMENT,
00039                 VSS_ALL_HEADERS_SEEN,
00040                 VSS_ERROR
00041         };
00042 
00043         eOggRawAudioSetupState mSetupState;
00044         bool handleHeaderPacket(OggPacket* inHeaderPack);
00045 
00046         sOggRawAudioFormatBlock mFormatBlock; 
00047 
00048 
00049         static const unsigned long OGG_RAW_AUDIO_IDENT_HEADER_SIZE = 28;
00050         static const unsigned long OGG_RAW_AUDIO_NUM_BUFFERS = 50;
00051 
00052 
00053         enum eRawAudioFormat {
00054                 FMT_S8,
00055                 FMT_U8,
00056                 FMT_S16_LE,
00057                 FMT_S16_BE,
00058                 FMT_S24_LE,
00059                 FMT_S24_BE,
00060                 FMT_S32_LE,
00061                 FMT_S32_BE,
00062 
00063                 FMT_ULAW                =       0x10,
00064                 FMT_ALAW,
00065 
00066                 FMT_FLT32_LE    =       0x20,
00067                 FMT_FLT32_BE,
00068                 FMT_FLT64_LE,
00069                 FMT_FLT64_BE,
00070 
00071                 
00072         };
00073 
00074 
00075 };

Generated on Thu Feb 16 23:48:08 2006 for oggdsf by  doxygen 1.3.9