OggMuxFilter Class Reference

#include <OggMuxFilter.h>

Inheritance diagram for OggMuxFilter:

Inheritance graph
[legend]
Collaboration diagram for OggMuxFilter:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 OggMuxFilter (void)
 OggMuxFilter (REFCLSID inFilterGUID)
virtual ~OggMuxFilter (void)
DECLARE_IUNKNOWN STDMETHODIMP NonDelegatingQueryInterface (REFIID riid, void **ppv)
ULONG STDMETHODCALLTYPE GetMiscFlags (void)
 Allows the filter to return a flag to tell the graph it's a renderer.
virtual bool acceptOggPage (OggPage *inOggPage)
 Takes an incoming page, usually from the interleaver.
STDMETHODIMP SetFileName (LPCOLESTR inFileName, const AM_MEDIA_TYPE *inMediaType)
 Sets the filename to be used to output to.
STDMETHODIMP GetCurFile (LPOLESTR *outFileName, AM_MEDIA_TYPE *outMediaType)
 Gets the output filename this filter is currently using.
virtual int GetPinCount ()
 Returns the number of pins this filter has.
virtual CBasePin * GetPin (int inPinNo)
 Returns the indexed pin or NULL.
STDMETHODIMP Run (REFERENCE_TIME tStart)
 Called when the graph starts playing.
STDMETHODIMP Pause (void)
 Called when the graph pauses.
STDMETHODIMP Stop (void)
 Called when the graph stops.
virtual STDMETHODIMP_ (LONGLONG) getProgressTime()
 Returns the time in 100 nanosecond units of the last page that was written.
virtual STDMETHODIMP_ (LONGLONG) getBytesWritten()
 Returns the number of bytes written so far.
virtual HRESULT addAnotherPin ()
virtual void NotifyComplete ()
 Implement this to be notified when "something" completes.
virtual STDMETHODIMP GetPositions (LONGLONG *pCurrent, LONGLONG *pStop)
virtual STDMETHODIMP GetCurrentPosition (LONGLONG *pCurrent)
bool SetDelegate (IMediaSeeking *inDelegate)
bool ReleaseDelegate ()
virtual STDMETHODIMP GetCapabilities (DWORD *pCapabilities)
virtual STDMETHODIMP CheckCapabilities (DWORD *pCapabilities)
virtual STDMETHODIMP IsFormatSupported (const GUID *pFormat)
virtual STDMETHODIMP QueryPreferredFormat (GUID *pFormat)
virtual STDMETHODIMP SetTimeFormat (const GUID *pFormat)
virtual STDMETHODIMP GetTimeFormat (GUID *pFormat)
virtual STDMETHODIMP GetDuration (LONGLONG *pDuration)
virtual STDMETHODIMP GetStopPosition (LONGLONG *pStop)
virtual STDMETHODIMP ConvertTimeFormat (LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat)
virtual STDMETHODIMP SetPositions (LONGLONG *pCurrent, DWORD dwCurrentFlags, LONGLONG *pStop, DWORD dwStopFlags)
virtual STDMETHODIMP GetAvailable (LONGLONG *pEarliest, LONGLONG *pLatest)
virtual STDMETHODIMP SetRate (double dRate)
virtual STDMETHODIMP GetRate (double *dRate)
virtual STDMETHODIMP GetPreroll (LONGLONG *pllPreroll)
virtual STDMETHODIMP IsUsingTimeFormat (const GUID *pFormat)

Static Public Member Functions

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

Protected Member Functions

bool SetupOutput ()
bool CloseOutput ()

Protected Attributes

wstring mFileName
vector< OggMuxInputPin * > mInputPins
OggPageInterleavermInterleaver
CCritSec * mStreamLock
fstream mOutputFile
fstream debugLog
HRESULT mHR
IMediaSeeking * mSeekDelegate
DWORD mSeekingCap

Friends

class OggMuxInputPin

Constructor & Destructor Documentation

OggMuxFilter::OggMuxFilter void   ) 
 

Definition at line 120 of file OggMuxFilter.cpp.

References debugLog, mHR, mInputPins, mInterleaver, mStreamLock, OggPageInterleaver::newStream(), OggMuxInputPin, and BasicSeekPassThrough::SetDelegate().

Referenced by CreateInstance().

Here is the call graph for this function:

OggMuxFilter::OggMuxFilter REFCLSID  inFilterGUID  ) 
 

Definition at line 146 of file OggMuxFilter.cpp.

References mStreamLock.

OggMuxFilter::~OggMuxFilter void   )  [virtual]
 

Definition at line 171 of file OggMuxFilter.cpp.

References mInputPins, and BasicSeekPassThrough::SetDelegate().

Here is the call graph for this function:


Member Function Documentation

bool OggMuxFilter::acceptOggPage OggPage inOggPage  )  [virtual]
 

Takes an incoming page, usually from the interleaver.

Implements IOggCallback.

Definition at line 223 of file OggMuxFilter.cpp.

References OggPage::createRawPageData(), mOutputFile, and OggPage::pageSize().

Here is the call graph for this function:

HRESULT OggMuxFilter::addAnotherPin  )  [virtual]
 

Reimplemented in AnxMuxFilter.

Definition at line 200 of file OggMuxFilter.cpp.

References mHR, mInputPins, mInterleaver, OggPageInterleaver::newStream(), and OggMuxInputPin.

Referenced by OggMuxInputPin::CompleteConnect(), and AnxMuxInputPin::CompleteConnect().

Here is the call graph for this function:

STDMETHODIMP BasicSeekPassThrough::CheckCapabilities DWORD *  pCapabilities  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 125 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

bool OggMuxFilter::CloseOutput  )  [protected]
 

Definition at line 236 of file OggMuxFilter.cpp.

References mOutputFile.

Referenced by Stop().

STDMETHODIMP BasicSeekPassThrough::ConvertTimeFormat LONGLONG *  pTarget,
const GUID *  pTargetFormat,
LONGLONG  Source,
const GUID *  pSourceFormat
[virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 246 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

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

Reimplemented in AnxMuxFilter.

Definition at line 55 of file OggMuxFilter.cpp.

References OggMuxFilter().

Here is the call graph for this function:

STDMETHODIMP BasicSeekPassThrough::GetAvailable LONGLONG *  pEarliest,
LONGLONG *  pLatest
[virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 285 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

STDMETHODIMP BasicSeekPassThrough::GetCapabilities DWORD *  pCapabilities  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 97 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

HRESULT OggMuxFilter::GetCurFile LPOLESTR *  outFileName,
AM_MEDIA_TYPE *  outMediaType
 

Gets the output filename this filter is currently using.

Definition at line 213 of file OggMuxFilter.cpp.

References mFileName, and outFileName.

STDMETHODIMP OggMuxFilter::GetCurrentPosition LONGLONG *  pCurrent  )  [virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 407 of file OggMuxFilter.cpp.

References debugLog, mInterleaver, and OggPageInterleaver::progressTime().

Here is the call graph for this function:

STDMETHODIMP BasicSeekPassThrough::GetDuration LONGLONG *  pDuration  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 211 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

ULONG OggMuxFilter::GetMiscFlags void   ) 
 

Allows the filter to return a flag to tell the graph it's a renderer.

Definition at line 112 of file OggMuxFilter.cpp.

References debugLog.

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

Returns the indexed pin or NULL.

Definition at line 265 of file OggMuxFilter.cpp.

References mInputPins.

Referenced by AnxPageInterleaver::letsGetFishy().

int OggMuxFilter::GetPinCount  )  [virtual]
 

Returns the number of pins this filter has.

Definition at line 261 of file OggMuxFilter.cpp.

References mInputPins.

Referenced by AnxPageInterleaver::letsGetFishy().

STDMETHODIMP OggMuxFilter::GetPositions LONGLONG *  pCurrent,
LONGLONG *  pStop
[virtual]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 399 of file OggMuxFilter.cpp.

References debugLog, BasicSeekPassThrough::GetPositions(), mInterleaver, and OggPageInterleaver::progressTime().

Here is the call graph for this function:

STDMETHODIMP BasicSeekPassThrough::GetPreroll LONGLONG *  pllPreroll  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 316 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

STDMETHODIMP BasicSeekPassThrough::GetRate double *  dRate  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 306 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

STDMETHODIMP BasicSeekPassThrough::GetStopPosition LONGLONG *  pStop  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 223 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

STDMETHODIMP BasicSeekPassThrough::GetTimeFormat GUID *  pFormat  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 201 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

STDMETHODIMP BasicSeekPassThrough::IsFormatSupported const GUID *  pFormat  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 150 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

STDMETHODIMP BasicSeekPassThrough::IsUsingTimeFormat const GUID *  pFormat  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 326 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

STDMETHODIMP OggMuxFilter::NonDelegatingQueryInterface REFIID  riid,
void **  ppv
 

Reimplemented in AnxMuxFilter.

Definition at line 69 of file OggMuxFilter.cpp.

References debugLog.

Referenced by AnxMuxFilter::NonDelegatingQueryInterface().

void OggMuxFilter::NotifyComplete  )  [virtual]
 

Implement this to be notified when "something" completes.

Implements INotifyComplete.

Definition at line 64 of file OggMuxFilter.cpp.

STDMETHODIMP OggMuxFilter::Pause void   ) 
 

Called when the graph pauses.

Definition at line 374 of file OggMuxFilter.cpp.

STDMETHODIMP BasicSeekPassThrough::QueryPreferredFormat GUID *  pFormat  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 171 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

bool BasicSeekPassThrough::ReleaseDelegate  )  [inherited]
 

Definition at line 75 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

Referenced by AbstractTransformOutputPin::BreakConnect(), AbstractTransformInputPin::BreakConnect(), OggMuxInputPin::BreakConnect(), TheoraDecodeOutputPin::BreakConnect(), TheoraDecodeInputPin::BreakConnect(), and AbstractTransformOutputPin::~AbstractTransformOutputPin().

STDMETHODIMP OggMuxFilter::Run REFERENCE_TIME  tStart  ) 
 

Called when the graph starts playing.

Definition at line 366 of file OggMuxFilter.cpp.

bool BasicSeekPassThrough::SetDelegate IMediaSeeking *  inDelegate  )  [inherited]
 

Definition at line 83 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

Referenced by AnxMuxFilter::AnxMuxFilter(), AbstractTransformOutputPin::CompleteConnect(), AbstractTransformInputPin::CompleteConnect(), OggMuxInputPin::CompleteConnect(), AnxMuxInputPin::CompleteConnect(), TheoraDecodeOutputPin::CompleteConnect(), TheoraDecodeInputPin::CompleteConnect(), NativeFLACSourcePin::NativeFLACSourcePin(), OggDemuxSourcePin::OggDemuxSourcePin(), OggMuxFilter(), NativeFLACSourcePin::~NativeFLACSourcePin(), and ~OggMuxFilter().

HRESULT OggMuxFilter::SetFileName LPCOLESTR  inFileName,
const AM_MEDIA_TYPE *  inMediaType
 

Sets the filename to be used to output to.

Definition at line 206 of file OggMuxFilter.cpp.

References mFileName, and SetupOutput().

Here is the call graph for this function:

STDMETHODIMP BasicSeekPassThrough::SetPositions LONGLONG *  pCurrent,
DWORD  dwCurrentFlags,
LONGLONG *  pStop,
DWORD  dwStopFlags
[virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 257 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

STDMETHODIMP BasicSeekPassThrough::SetRate double  dRate  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 295 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

STDMETHODIMP BasicSeekPassThrough::SetTimeFormat const GUID *  pFormat  )  [virtual, inherited]
 

Reimplemented in OggDemuxSourceFilter.

Definition at line 189 of file BasicSeekPassThrough.cpp.

References BasicSeekPassThrough::mSeekDelegate.

bool OggMuxFilter::SetupOutput  )  [protected]
 

Definition at line 232 of file OggMuxFilter.cpp.

References mFileName, and mOutputFile.

Referenced by SetFileName().

virtual OggMuxFilter::STDMETHODIMP_ LONGLONG   )  [virtual]
 

Returns the number of bytes written so far.

virtual OggMuxFilter::STDMETHODIMP_ LONGLONG   )  [virtual]
 

Returns the time in 100 nanosecond units of the last page that was written.

STDMETHODIMP OggMuxFilter::Stop void   ) 
 

Called when the graph stops.

Definition at line 388 of file OggMuxFilter.cpp.

References CloseOutput().

Here is the call graph for this function:


Friends And Related Function Documentation

friend class OggMuxInputPin [friend]
 

Definition at line 63 of file OggMuxFilter.h.

Referenced by addAnotherPin(), and OggMuxFilter().


Member Data Documentation

fstream OggMuxFilter::debugLog [protected]
 

Definition at line 147 of file OggMuxFilter.h.

Referenced by GetCurrentPosition(), GetMiscFlags(), GetPositions(), NonDelegatingQueryInterface(), and OggMuxFilter().

wstring OggMuxFilter::mFileName [protected]
 

Definition at line 139 of file OggMuxFilter.h.

Referenced by GetCurFile(), SetFileName(), and SetupOutput().

HRESULT OggMuxFilter::mHR [protected]
 

Reimplemented from BasicSeekPassThrough.

Definition at line 148 of file OggMuxFilter.h.

Referenced by addAnotherPin(), and OggMuxFilter().

vector<OggMuxInputPin*> OggMuxFilter::mInputPins [protected]
 

Definition at line 140 of file OggMuxFilter.h.

Referenced by addAnotherPin(), GetPin(), GetPinCount(), OggMuxFilter(), and ~OggMuxFilter().

OggPageInterleaver* OggMuxFilter::mInterleaver [protected]
 

Definition at line 142 of file OggMuxFilter.h.

Referenced by addAnotherPin(), GetCurrentPosition(), GetPositions(), and OggMuxFilter().

fstream OggMuxFilter::mOutputFile [protected]
 

Definition at line 146 of file OggMuxFilter.h.

Referenced by acceptOggPage(), CloseOutput(), and SetupOutput().

IMediaSeeking* BasicSeekPassThrough::mSeekDelegate [protected, inherited]
 

Definition at line 75 of file BasicSeekPassThrough.h.

Referenced by BasicSeekPassThrough::BasicSeekPassThrough(), BasicSeekPassThrough::CheckCapabilities(), BasicSeekPassThrough::ConvertTimeFormat(), BasicSeekPassThrough::GetAvailable(), BasicSeekPassThrough::GetCapabilities(), BasicSeekPassThrough::GetCurrentPosition(), BasicSeekPassThrough::GetDuration(), BasicSeekPassThrough::GetPositions(), BasicSeekPassThrough::GetPreroll(), BasicSeekPassThrough::GetRate(), BasicSeekPassThrough::GetStopPosition(), BasicSeekPassThrough::GetTimeFormat(), BasicSeekPassThrough::IsFormatSupported(), BasicSeekPassThrough::IsUsingTimeFormat(), BasicSeekPassThrough::QueryPreferredFormat(), BasicSeekPassThrough::ReleaseDelegate(), BasicSeekPassThrough::SetDelegate(), BasicSeekPassThrough::SetPositions(), BasicSeekPassThrough::SetRate(), BasicSeekPassThrough::SetTimeFormat(), and BasicSeekPassThrough::~BasicSeekPassThrough().

DWORD BasicSeekPassThrough::mSeekingCap [protected, inherited]
 

Definition at line 77 of file BasicSeekPassThrough.h.

Referenced by BasicSeekPassThrough::BasicSeekPassThrough().

CCritSec* OggMuxFilter::mStreamLock [protected]
 

Definition at line 144 of file OggMuxFilter.h.

Referenced by OggMuxInputPin::EndOfStream(), OggMuxFilter(), and OggMuxInputPin::Receive().


The documentation for this class was generated from the following files:
Generated on Tue Feb 15 15:03:50 2005 for oggdsf by  doxygen 1.3.9