TheoraDecodeFilter Class Reference

#include <TheoraDecodeFilter.h>

Collaboration diagram for TheoraDecodeFilter:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual HRESULT CheckInputType (const CMediaType *inMediaType)
virtual HRESULT CheckTransform (const CMediaType *inInputMediaType, const CMediaType *inOutputMediaType)
virtual HRESULT DecideBufferSize (IMemAllocator *inAllocator, ALLOCATOR_PROPERTIES *inPropertyRequest)
virtual HRESULT GetMediaType (int inPosition, CMediaType *outOutputMediaType)
virtual CBasePin * GetPin (int inPinNo)
sTheoraFormatBlockgetTheoraFormatBlock ()
virtual HRESULT NewSegment (REFERENCE_TIME inStart, REFERENCE_TIME inEnd, double inRate)
virtual HRESULT Receive (IMediaSample *inSample)
virtual HRESULT SetMediaType (PIN_DIRECTION inDirection, const CMediaType *inMediaType)
void setTheoraFormat (BYTE *inFormatBlock)
 TheoraDecodeFilter (void)
virtual HRESULT Transform (IMediaSample *inInputSample, IMediaSample *outOutputSample)
virtual ~TheoraDecodeFilter (void)

Static Public Member Functions

CUnknown *WINAPI CreateInstance (LPUNKNOWN pUnk, HRESULT *pHr)

Protected Member Functions

void deleteBufferedPacketsAfter (unsigned long inPacketIndex)
void FillMediaType (CMediaType *outMediaType, unsigned long inSampleSize)
bool FillVideoInfoHeader (VIDEOINFOHEADER *inFormatBuffer)
virtual void ResetFrameCount ()
bool SetSampleParams (IMediaSample *outMediaSample, unsigned long inDataSize, REFERENCE_TIME *inStartTime, REFERENCE_TIME *inEndTime, BOOL inIsSync)
HRESULT TheoraDecoded (yuv_buffer *inYUVBuffer, IMediaSample *outSample, bool inIsKeyFrame, REFERENCE_TIME inStart, REFERENCE_TIME inEnd)

Protected Attributes

fstream debugLog
bool mBegun
vector< StampedOggPacket * > mBufferedPackets
unsigned long mFrameCount
__int64 mFrameDuration
unsigned long mFrameSize
unsigned long mHeight
__int64 mLastSeenStartGranPos
double mPlaybackRate
__int64 mSeekTimeBase
REFERENCE_TIME mSegEnd
REFERENCE_TIME mSegStart
TheoraDecodermTheoraDecoder
sTheoraFormatBlockmTheoraFormatInfo
unsigned long mWidth
unsigned long mXOffset
unsigned long mYOffset

Static Protected Attributes

const unsigned long THEORA_IDENT_HEADER_SIZE = 42

Friends

class TheoraDecodeInputPin

Constructor & Destructor Documentation

TheoraDecodeFilter::TheoraDecodeFilter void   ) 
 

Definition at line 56 of file TheoraDecodeFilter.cpp.

References debugLog, false, TheoraDecoder::initCodec(), and mTheoraDecoder.

Referenced by CreateInstance().

Here is the call graph for this function:

TheoraDecodeFilter::~TheoraDecodeFilter void   )  [virtual]
 

Definition at line 82 of file TheoraDecodeFilter.cpp.

References debugLog, mTheoraDecoder, and mTheoraFormatInfo.


Member Function Documentation

HRESULT TheoraDecodeFilter::CheckInputType const CMediaType *  inMediaType  )  [virtual]
 

Definition at line 141 of file TheoraDecodeFilter.cpp.

Referenced by CheckTransform(), and SetMediaType().

HRESULT TheoraDecodeFilter::CheckTransform const CMediaType *  inInputMediaType,
const CMediaType *  inOutputMediaType
[virtual]
 

Definition at line 160 of file TheoraDecodeFilter.cpp.

References CheckInputType(), mHeight, and mWidth.

Here is the call graph for this function:

CUnknown *WINAPI TheoraDecodeFilter::CreateInstance LPUNKNOWN  pUnk,
HRESULT *  pHr
[static]
 

Definition at line 92 of file TheoraDecodeFilter.cpp.

References TheoraDecodeFilter().

Here is the call graph for this function:

HRESULT TheoraDecodeFilter::DecideBufferSize IMemAllocator *  inAllocator,
ALLOCATOR_PROPERTIES *  inPropertyRequest
[virtual]
 

Definition at line 178 of file TheoraDecodeFilter.cpp.

void TheoraDecodeFilter::deleteBufferedPacketsAfter unsigned long  inPacketIndex  )  [protected]
 

Definition at line 488 of file TheoraDecodeFilter.cpp.

References mBufferedPackets.

Referenced by Receive().

void TheoraDecodeFilter::FillMediaType CMediaType *  outMediaType,
unsigned long  inSampleSize
[protected]
 

Definition at line 101 of file TheoraDecodeFilter.cpp.

References FALSE.

Referenced by GetMediaType().

bool TheoraDecodeFilter::FillVideoInfoHeader VIDEOINFOHEADER *  inFormatBuffer  )  [protected]
 

Definition at line 109 of file TheoraDecodeFilter.cpp.

References sTheoraFormatBlock::frameRateDenominator, sTheoraFormatBlock::frameRateNumerator, mTheoraFormatInfo, sTheoraFormatBlock::pictureHeight, sTheoraFormatBlock::pictureWidth, and sTheoraFormatBlock::targetBitrate.

Referenced by GetMediaType().

HRESULT TheoraDecodeFilter::GetMediaType int  inPosition,
CMediaType *  outOutputMediaType
[virtual]
 

Definition at line 312 of file TheoraDecodeFilter.cpp.

References FillMediaType(), and FillVideoInfoHeader().

Here is the call graph for this function:

CBasePin * TheoraDecodeFilter::GetPin int  inPinNo  )  [virtual]
 

Definition at line 869 of file TheoraDecodeFilter.cpp.

References TheoraDecodeInputPin.

sTheoraFormatBlock * TheoraDecodeFilter::getTheoraFormatBlock  ) 
 

Definition at line 821 of file TheoraDecodeFilter.cpp.

Referenced by TheoraDecodeInputPin::convertGranuleToTime(), and TheoraDecodeInputPin::mustSeekBefore().

HRESULT TheoraDecodeFilter::NewSegment REFERENCE_TIME  inStart,
REFERENCE_TIME  inEnd,
double  inRate
[virtual]
 

Definition at line 338 of file TheoraDecodeFilter.cpp.

References debugLog, mPlaybackRate, mSegEnd, mSegStart, and ResetFrameCount().

Here is the call graph for this function:

HRESULT TheoraDecodeFilter::Receive IMediaSample *  inSample  )  [virtual]
 

Definition at line 349 of file TheoraDecodeFilter.cpp.

References TheoraDecodeInputPin::convertGranuleToTime(), debugLog, TheoraDecoder::decodeTheora(), deleteBufferedPacketsAfter(), IOggOutputPin::getGlobalBaseTime(), TheoraDecodeInputPin::getOutputPinInterface(), TheoraDecodeInputPin::getSentStreamOffset(), TheoraDecoder::isKeyFrame(), mBufferedPackets, mSegStart, mTheoraDecoder, IOggOutputPin::notifyStreamBaseTime(), TheoraDecodeInputPin::setSentStreamOffset(), and TheoraDecoded().

Here is the call graph for this function:

void TheoraDecodeFilter::ResetFrameCount  )  [protected, virtual]
 

Definition at line 331 of file TheoraDecodeFilter.cpp.

References mFrameCount.

Referenced by NewSegment().

HRESULT TheoraDecodeFilter::SetMediaType PIN_DIRECTION  inDirection,
const CMediaType *  inMediaType
[virtual]
 

Definition at line 767 of file TheoraDecodeFilter.cpp.

References CheckInputType(), sTheoraFormatBlock::frameRateDenominator, sTheoraFormatBlock::frameRateNumerator, mFrameCount, mFrameDuration, mFrameSize, mHeight, mTheoraFormatInfo, mWidth, mXOffset, mYOffset, setTheoraFormat(), and sTheoraFormatBlock::xOffset.

Here is the call graph for this function:

bool TheoraDecodeFilter::SetSampleParams IMediaSample *  outMediaSample,
unsigned long  inDataSize,
REFERENCE_TIME *  inStartTime,
REFERENCE_TIME *  inEndTime,
BOOL  inIsSync
[protected]
 

Definition at line 805 of file TheoraDecodeFilter.cpp.

References FALSE.

Referenced by TheoraDecoded().

void TheoraDecodeFilter::setTheoraFormat BYTE *  inFormatBlock  ) 
 

Definition at line 825 of file TheoraDecodeFilter.cpp.

References sTheoraFormatBlock::aspectDenominator, sTheoraFormatBlock::aspectNumerator, iBE_Math::charArrToULong(), iBE_Math::charArrToUShort(), sTheoraFormatBlock::colourSpace, sTheoraFormatBlock::frameRateDenominator, sTheoraFormatBlock::frameRateNumerator, sTheoraFormatBlock::maxKeyframeInterval, mTheoraFormatInfo, sTheoraFormatBlock::outerFrameHeight, sTheoraFormatBlock::outerFrameWidth, sTheoraFormatBlock::pictureHeight, sTheoraFormatBlock::pictureWidth, sTheoraFormatBlock::targetBitrate, sTheoraFormatBlock::targetQuality, sTheoraFormatBlock::theoraVersion, sTheoraFormatBlock::xOffset, and sTheoraFormatBlock::yOffset.

Referenced by SetMediaType().

Here is the call graph for this function:

HRESULT TheoraDecodeFilter::TheoraDecoded yuv_buffer inYUVBuffer,
IMediaSample *  outSample,
bool  inIsKeyFrame,
REFERENCE_TIME  inStart,
REFERENCE_TIME  inEnd
[protected]
 

Definition at line 646 of file TheoraDecodeFilter.cpp.

References mFrameSize, mHeight, mWidth, mXOffset, SetSampleParams(), yuv_buffer::u, yuv_buffer::uv_stride, yuv_buffer::v, yuv_buffer::y, yuv_buffer::y_height, and yuv_buffer::y_stride.

Referenced by Receive().

Here is the call graph for this function:

HRESULT TheoraDecodeFilter::Transform IMediaSample *  inInputSample,
IMediaSample *  outOutputSample
[virtual]
 

Definition at line 496 of file TheoraDecodeFilter.cpp.

References debugLog.


Friends And Related Function Documentation

friend class TheoraDecodeInputPin [friend]
 

Definition at line 52 of file TheoraDecodeFilter.h.

Referenced by GetPin().


Member Data Documentation

fstream TheoraDecodeFilter::debugLog [protected]
 

Definition at line 107 of file TheoraDecodeFilter.h.

Referenced by NewSegment(), Receive(), TheoraDecodeFilter(), Transform(), and ~TheoraDecodeFilter().

bool TheoraDecodeFilter::mBegun [protected]
 

Definition at line 92 of file TheoraDecodeFilter.h.

vector<StampedOggPacket*> TheoraDecodeFilter::mBufferedPackets [protected]
 

Definition at line 95 of file TheoraDecodeFilter.h.

Referenced by deleteBufferedPacketsAfter(), and Receive().

unsigned long TheoraDecodeFilter::mFrameCount [protected]
 

Definition at line 88 of file TheoraDecodeFilter.h.

Referenced by ResetFrameCount(), and SetMediaType().

__int64 TheoraDecodeFilter::mFrameDuration [protected]
 

Definition at line 91 of file TheoraDecodeFilter.h.

Referenced by SetMediaType().

unsigned long TheoraDecodeFilter::mFrameSize [protected]
 

Definition at line 87 of file TheoraDecodeFilter.h.

Referenced by SetMediaType(), and TheoraDecoded().

unsigned long TheoraDecodeFilter::mHeight [protected]
 

Definition at line 85 of file TheoraDecodeFilter.h.

Referenced by CheckTransform(), SetMediaType(), and TheoraDecoded().

__int64 TheoraDecodeFilter::mLastSeenStartGranPos [protected]
 

Definition at line 104 of file TheoraDecodeFilter.h.

double TheoraDecodeFilter::mPlaybackRate [protected]
 

Definition at line 101 of file TheoraDecodeFilter.h.

Referenced by NewSegment().

__int64 TheoraDecodeFilter::mSeekTimeBase [protected]
 

Definition at line 103 of file TheoraDecodeFilter.h.

REFERENCE_TIME TheoraDecodeFilter::mSegEnd [protected]
 

Definition at line 100 of file TheoraDecodeFilter.h.

Referenced by NewSegment().

REFERENCE_TIME TheoraDecodeFilter::mSegStart [protected]
 

Definition at line 99 of file TheoraDecodeFilter.h.

Referenced by NewSegment(), and Receive().

TheoraDecoder* TheoraDecodeFilter::mTheoraDecoder [protected]
 

Definition at line 93 of file TheoraDecodeFilter.h.

Referenced by Receive(), TheoraDecodeInputPin::showHeaderPacket(), TheoraDecodeFilter(), and ~TheoraDecodeFilter().

sTheoraFormatBlock* TheoraDecodeFilter::mTheoraFormatInfo [protected]
 

Definition at line 106 of file TheoraDecodeFilter.h.

Referenced by FillVideoInfoHeader(), TheoraDecodeInputPin::GetAllocatorRequirements(), SetMediaType(), setTheoraFormat(), and ~TheoraDecodeFilter().

unsigned long TheoraDecodeFilter::mWidth [protected]
 

Definition at line 86 of file TheoraDecodeFilter.h.

Referenced by CheckTransform(), SetMediaType(), and TheoraDecoded().

unsigned long TheoraDecodeFilter::mXOffset [protected]
 

Definition at line 90 of file TheoraDecodeFilter.h.

Referenced by SetMediaType(), and TheoraDecoded().

unsigned long TheoraDecodeFilter::mYOffset [protected]
 

Definition at line 89 of file TheoraDecodeFilter.h.

Referenced by SetMediaType().

const unsigned long TheoraDecodeFilter::THEORA_IDENT_HEADER_SIZE = 42 [static, protected]
 

Definition at line 78 of file TheoraDecodeFilter.h.


The documentation for this class was generated from the following files:
Generated on Fri Feb 17 00:02:36 2006 for oggdsf by  doxygen 1.3.9