AnxStreamMapper Class Reference

#include <AnxStreamMapper.h>

Inheritance diagram for AnxStreamMapper:

Inheritance graph
[legend]
Collaboration diagram for AnxStreamMapper:

Collaboration graph
[legend]
List of all members.

Public Types

enum  eAnxDemuxState {
  SEEN_NOTHING, SEEN_ANNODEX_BOS, SEEN_AN_ANXDATA, OGG_STATE,
  INVALID_STATE = 1000
}
enum  eAnxVersions { ANX_TREAT_AS_OGG = 0, ANX_VERSION_2_0 = 2 << 16, ANX_VERSION_3_0 = 3 << 16 }
enum  eStreamState {
  STRMAP_READY, STRMAP_PARSING_BOS_PAGES, STRMAP_PARSING_HEADERS, STRMAP_DATA,
  STRMAP_FINISHED, STRMAP_ERROR
}

Public Member Functions

virtual bool acceptOggPage (OggPage *inOggPage)
bool allStreamsReady ()
 AnxStreamMapper (OggDemuxSourceFilter *inOwningFilter)
 AnxStreamMapper (void)
bool dispatchPage (OggPage *inOggPage)
OggStreamgetOggStream (unsigned long inPinNo)
OggDemuxPacketSourcePingetPinByIndex (unsigned long inIndex)
virtual bool isReady ()
unsigned long numPins ()
unsigned long numStreams ()
virtual void setAllowDispatch (bool inAllowDispatch)
unsigned long startOfData ()
eStreamState streamState ()
virtual bool toStartOfData ()
virtual ~AnxStreamMapper (void)

Protected Member Functions

bool addNewPin (OggPage *inOggPage)
unsigned long getAnxVersion (OggPage *inOggPage)
OggDemuxPacketSourcePingetMatchingPin (unsigned long inSerialNo)
bool handleAnxVersion_2_0 (OggPage *inOggPage)
bool handleAnxVersion_3_0 (OggPage *inOggPage)
bool handleFishHead (OggPage *inOggPage)
bool isAnnodexBOS (OggPage *inOggPage)
bool isAnnodexEOS (OggPage *inOggPage)
bool isAnxDataPage (OggPage *inOggPage, bool inAnxDataAreBOS)
bool isFisheadBOS (OggPage *inOggPage)
bool isFishHead (OggPage *inOggPage)

Protected Attributes

fstream debugLog
OggPacketmAnnodexHeader
unsigned long mAnnodexSerial
vector< OggPacket * > mAnxDataHeaders
unsigned long mAnxVersion
unsigned long mDataStartsAt
eAnxDemuxState mDemuxState
OggPacketmFishHeadPacket
OggDemuxSourceFiltermOwningFilter
OggDemuxPacketSourceFiltermParentFilter
CCritSec * mParentFilterLock
vector< OggDemuxPacketSourcePin * > mPins
bool mReadyForCodecs
bool mSeenAnnodexBOS
bool mSeenCMML
vector< unsigned long > mSeenStreams
bool mSendExcess
unsigned long mSkeletonSerialNo
vector< OggStream * > mStreamList
eStreamState mStreamState

Friends

class OggStream

Member Enumeration Documentation

enum AnxStreamMapper::eAnxDemuxState
 

Enumeration values:
SEEN_NOTHING 
SEEN_ANNODEX_BOS 
SEEN_AN_ANXDATA 
OGG_STATE 
INVALID_STATE 

Definition at line 53 of file AnxStreamMapper.h.

enum AnxStreamMapper::eAnxVersions
 

Enumeration values:
ANX_TREAT_AS_OGG 
ANX_VERSION_2_0 
ANX_VERSION_3_0 

Definition at line 61 of file AnxStreamMapper.h.

enum OggStreamMapper::eStreamState [inherited]
 

Enumeration values:
STRMAP_READY 
STRMAP_PARSING_BOS_PAGES 
STRMAP_PARSING_HEADERS 
STRMAP_DATA 
STRMAP_FINISHED 
STRMAP_ERROR 

Definition at line 16 of file OggStreamMapper.h.


Constructor & Destructor Documentation

AnxStreamMapper::AnxStreamMapper void   ) 
 

AnxStreamMapper::AnxStreamMapper OggDemuxSourceFilter inOwningFilter  ) 
 

Definition at line 39 of file AnxStreamMapper.cpp.

References debugLog, false, and SEEN_NOTHING.

AnxStreamMapper::~AnxStreamMapper void   )  [virtual]
 

Definition at line 54 of file AnxStreamMapper.cpp.

References debugLog.


Member Function Documentation

bool AnxStreamMapper::acceptOggPage OggPage inOggPage  )  [virtual]
 

All callers to acceptOggPage give away their pointer to this function. All methods implementing this interface are responsible for deleting this page. All callers should NULL their pointer immediately after calling to avoid reusing them.

Reimplemented from OggStreamMapper.

Definition at line 311 of file AnxStreamMapper.cpp.

References ANX_VERSION_2_0, ANX_VERSION_3_0, debugLog, getAnxVersion(), handleAnxVersion_2_0(), handleAnxVersion_3_0(), mAnxVersion, and mDemuxState.

Here is the call graph for this function:

bool OggStreamMapper::addNewPin OggPage inOggPage  )  [protected, inherited]
 

Definition at line 111 of file OggStreamMapper.cpp.

References OggPacket::clone(), OggPage::getPacket(), OggStreamMapper::handleFishHead(), OggPage::header(), OggStreamMapper::isFishHead(), OggStreamMapper::mParentFilter, OggStreamMapper::mParentFilterLock, OggStreamMapper::mPins, and OggPageHeader::StreamSerialNo().

Here is the call graph for this function:

bool OggStreamMapper::allStreamsReady  )  [inherited]
 

Definition at line 79 of file OggStreamMapper.cpp.

References OggStreamMapper::mPins.

Referenced by OggDemuxPacketSourceFilter::notifyPinConnected().

bool OggStreamMapper::dispatchPage OggPage inOggPage  )  [inherited]
 

Definition at line 61 of file OggStreamMapper.cpp.

References OggPage::header(), OggStreamMapper::mStreamList, and OggPageHeader::StreamSerialNo().

Referenced by OggStreamMapper::acceptOggPage(), and handleAnxVersion_2_0().

Here is the call graph for this function:

unsigned long AnxStreamMapper::getAnxVersion OggPage inOggPage  )  [protected]
 

Returns a 32 number indicating the version... major<<16 + minor

Definition at line 151 of file AnxStreamMapper.cpp.

References iLE_Math::charArrToUShort(), OggPage::getPacket(), isAnnodexBOS(), isFisheadBOS(), and OggPacket::packetData().

Referenced by acceptOggPage().

Here is the call graph for this function:

OggDemuxPacketSourcePin * OggStreamMapper::getMatchingPin unsigned long  inSerialNo  )  [protected, inherited]
 

Definition at line 126 of file OggStreamMapper.cpp.

References OggDemuxPacketSourcePin::getSerialNo(), and OggStreamMapper::mPins.

Here is the call graph for this function:

OggStream * OggStreamMapper::getOggStream unsigned long  inPinNo  )  [inherited]
 

Definition at line 161 of file OggStreamMapper.cpp.

References OggStreamMapper::mStreamList.

Referenced by OggDemuxSourceFilter::DeliverBeginFlush(), OggDemuxSourceFilter::DeliverEndFlush(), OggDemuxSourceFilter::DeliverEOS(), OggDemuxSourceFilter::DeliverNewSegment(), OggDemuxSourceFilter::GetPin(), OggDemuxSourceFilter::resetStream(), and OggDemuxSourceFilter::SetPositions().

OggDemuxPacketSourcePin * OggStreamMapper::getPinByIndex unsigned long  inIndex  )  [inherited]
 

Definition at line 19 of file OggStreamMapper.cpp.

References OggStreamMapper::mPins.

Referenced by OggDemuxPacketSourceFilter::DeliverBeginFlush(), OggDemuxPacketSourceFilter::DeliverEndFlush(), OggDemuxPacketSourceFilter::DeliverEOS(), OggDemuxPacketSourceFilter::DeliverNewSegment(), and OggDemuxPacketSourceFilter::GetPin().

bool AnxStreamMapper::handleAnxVersion_2_0 OggPage inOggPage  )  [protected]
 

Definition at line 165 of file AnxStreamMapper.cpp.

References OggPacket::clone(), OggStreamFactory::CreateStream(), debugLog, OggStreamMapper::dispatchPage(), OggPage::getPacket(), OggPage::header(), INVALID_STATE, isAnnodexBOS(), isAnnodexEOS(), isAnxDataPage(), mAnnodexHeader, mAnnodexSerial, mAnxDataHeaders, mDemuxState, mSeenStreams, OGG_STATE, SEEN_AN_ANXDATA, SEEN_ANNODEX_BOS, SEEN_NOTHING, and OggPageHeader::StreamSerialNo().

Referenced by acceptOggPage().

Here is the call graph for this function:

bool AnxStreamMapper::handleAnxVersion_3_0 OggPage inOggPage  )  [protected]
 

Definition at line 287 of file AnxStreamMapper.cpp.

References OggStreamMapper::acceptOggPage(), and mDemuxState.

Referenced by acceptOggPage().

Here is the call graph for this function:

bool OggStreamMapper::handleFishHead OggPage inOggPage  )  [protected, inherited]
 

Definition at line 104 of file OggStreamMapper.cpp.

References StampedOggPacket::clone(), OggPage::getStampedPacket(), OggPage::header(), OggStreamMapper::mFishHeadPacket, OggStreamMapper::mSkeletonSerialNo, and OggPageHeader::StreamSerialNo().

Referenced by OggStreamMapper::addNewPin().

Here is the call graph for this function:

bool AnxStreamMapper::isAnnodexBOS OggPage inOggPage  )  [protected]
 

Definition at line 109 of file AnxStreamMapper.cpp.

References OggPage::getPacket(), OggPage::header(), OggPageHeader::isBOS(), OggPage::numPackets(), OggPacket::packetData(), and OggPacket::packetSize().

Referenced by getAnxVersion(), and handleAnxVersion_2_0().

Here is the call graph for this function:

bool AnxStreamMapper::isAnnodexEOS OggPage inOggPage  )  [protected]
 

Definition at line 100 of file AnxStreamMapper.cpp.

References OggPage::header(), OggPageHeader::isEOS(), and OggPageHeader::StreamSerialNo().

Referenced by handleAnxVersion_2_0().

Here is the call graph for this function:

bool AnxStreamMapper::isAnxDataPage OggPage inOggPage,
bool  inAnxDataAreBOS
[protected]
 

Definition at line 130 of file AnxStreamMapper.cpp.

References OggPage::getPacket(), OggPage::header(), OggPageHeader::isBOS(), OggPage::numPackets(), OggPacket::packetData(), and OggPacket::packetSize().

Referenced by handleAnxVersion_2_0().

Here is the call graph for this function:

bool AnxStreamMapper::isFisheadBOS OggPage inOggPage  )  [protected]
 

Definition at line 120 of file AnxStreamMapper.cpp.

References OggPage::getPacket(), OggPage::header(), OggPageHeader::isBOS(), OggPage::numPackets(), and OggPacket::packetData().

Referenced by getAnxVersion().

Here is the call graph for this function:

bool OggStreamMapper::isFishHead OggPage inOggPage  )  [protected, inherited]
 

Definition at line 90 of file OggStreamMapper.cpp.

References OggPage::getStampedPacket(), and OggPacket::packetData().

Referenced by OggStreamMapper::addNewPin().

Here is the call graph for this function:

bool AnxStreamMapper::isReady  )  [virtual]
 

Reimplemented from OggStreamMapper.

Definition at line 59 of file AnxStreamMapper.cpp.

References debugLog, OggStreamMapper::isReady(), mAnxVersion, and mSeenStreams.

Referenced by toStartOfData().

Here is the call graph for this function:

unsigned long OggStreamMapper::numPins  )  [inline, inherited]
 

Definition at line 35 of file OggStreamMapper.h.

References OggStreamMapper::mPins.

Referenced by OggDemuxPacketSourceFilter::DeliverBeginFlush(), OggDemuxPacketSourceFilter::DeliverEndFlush(), OggDemuxPacketSourceFilter::DeliverEOS(), OggDemuxPacketSourceFilter::DeliverNewSegment(), and OggDemuxPacketSourceFilter::GetPinCount().

unsigned long OggStreamMapper::numStreams  )  [inherited]
 

Definition at line 157 of file OggStreamMapper.cpp.

References OggStreamMapper::mStreamList.

Referenced by OggDemuxSourceFilter::DeliverBeginFlush(), OggDemuxSourceFilter::DeliverEndFlush(), OggDemuxSourceFilter::DeliverEOS(), OggDemuxSourceFilter::DeliverNewSegment(), OggDemuxSourceFilter::GetPin(), OggDemuxSourceFilter::GetPinCount(), OggDemuxSourceFilter::resetStream(), and OggDemuxSourceFilter::SetPositions().

void OggStreamMapper::setAllowDispatch bool  inAllowDispatch  )  [virtual, inherited]
 

Definition at line 141 of file OggStreamMapper.cpp.

References OggStreamMapper::mStreamList, and OggStream::setAllowDispatch().

Referenced by OggDemuxSourceFilter::SetUpPins().

Here is the call graph for this function:

unsigned long OggStreamMapper::startOfData  )  [inherited]
 

Definition at line 91 of file OggStreamMapper.cpp.

Referenced by OggDemuxSourceFilter::resetStream(), and OggDemuxSourceFilter::SetPositions().

eStreamState OggStreamMapper::streamState  )  [inherited]
 

bool AnxStreamMapper::toStartOfData  )  [virtual]
 

Reimplemented from OggStreamMapper.

Definition at line 406 of file AnxStreamMapper.cpp.

References debugLog, isReady(), mAnxVersion, and OggStreamMapper::toStartOfData().

Here is the call graph for this function:


Friends And Related Function Documentation

friend class OggStream [friend, inherited]
 

Definition at line 46 of file OggStreamMapper.h.


Member Data Documentation

fstream AnxStreamMapper::debugLog [protected]
 

Definition at line 95 of file AnxStreamMapper.h.

Referenced by acceptOggPage(), AnxStreamMapper(), handleAnxVersion_2_0(), isReady(), toStartOfData(), and ~AnxStreamMapper().

OggPacket* AnxStreamMapper::mAnnodexHeader [protected]
 

Definition at line 90 of file AnxStreamMapper.h.

Referenced by handleAnxVersion_2_0().

unsigned long AnxStreamMapper::mAnnodexSerial [protected]
 

Definition at line 89 of file AnxStreamMapper.h.

Referenced by handleAnxVersion_2_0().

vector<OggPacket*> AnxStreamMapper::mAnxDataHeaders [protected]
 

Definition at line 91 of file AnxStreamMapper.h.

Referenced by handleAnxVersion_2_0().

unsigned long AnxStreamMapper::mAnxVersion [protected]
 

Definition at line 92 of file AnxStreamMapper.h.

Referenced by acceptOggPage(), isReady(), and toStartOfData().

unsigned long OggStreamMapper::mDataStartsAt [protected, inherited]
 

Definition at line 64 of file OggStreamMapper.h.

eAnxDemuxState AnxStreamMapper::mDemuxState [protected]
 

Definition at line 93 of file AnxStreamMapper.h.

Referenced by acceptOggPage(), handleAnxVersion_2_0(), and handleAnxVersion_3_0().

OggPacket* OggStreamMapper::mFishHeadPacket [protected, inherited]
 

Definition at line 44 of file OggStreamMapper.h.

Referenced by OggStreamMapper::handleFishHead().

OggDemuxSourceFilter* OggStreamMapper::mOwningFilter [protected, inherited]
 

Definition at line 68 of file OggStreamMapper.h.

Referenced by OggStreamMapper::acceptOggPage().

OggDemuxPacketSourceFilter* OggStreamMapper::mParentFilter [protected, inherited]
 

Definition at line 41 of file OggStreamMapper.h.

Referenced by OggStreamMapper::addNewPin().

CCritSec* OggStreamMapper::mParentFilterLock [protected, inherited]
 

Definition at line 42 of file OggStreamMapper.h.

Referenced by OggStreamMapper::addNewPin().

vector<OggDemuxPacketSourcePin*> OggStreamMapper::mPins [protected, inherited]
 

Definition at line 40 of file OggStreamMapper.h.

Referenced by OggStreamMapper::addNewPin(), OggStreamMapper::allStreamsReady(), OggStreamMapper::getMatchingPin(), OggStreamMapper::getPinByIndex(), and OggStreamMapper::numPins().

bool AnxStreamMapper::mReadyForCodecs [protected]
 

Definition at line 87 of file AnxStreamMapper.h.

bool AnxStreamMapper::mSeenAnnodexBOS [protected]
 

Definition at line 86 of file AnxStreamMapper.h.

bool AnxStreamMapper::mSeenCMML [protected]
 

Definition at line 88 of file AnxStreamMapper.h.

vector<unsigned long> AnxStreamMapper::mSeenStreams [protected]
 

Definition at line 85 of file AnxStreamMapper.h.

Referenced by handleAnxVersion_2_0(), and isReady().

bool OggStreamMapper::mSendExcess [protected, inherited]
 

Definition at line 65 of file OggStreamMapper.h.

unsigned long OggStreamMapper::mSkeletonSerialNo [protected, inherited]
 

Definition at line 45 of file OggStreamMapper.h.

Referenced by OggStreamMapper::handleFishHead().

vector<OggStream*> OggStreamMapper::mStreamList [protected, inherited]
 

Definition at line 66 of file OggStreamMapper.h.

Referenced by OggStreamMapper::acceptOggPage(), OggStreamMapper::dispatchPage(), OggStreamMapper::getOggStream(), OggStreamMapper::isReady(), OggStreamMapper::numStreams(), OggStreamMapper::setAllowDispatch(), OggStreamMapper::toStartOfData(), and OggStreamMapper::~OggStreamMapper().

eStreamState OggStreamMapper::mStreamState [protected, inherited]
 

Definition at line 39 of file OggStreamMapper.h.


The documentation for this class was generated from the following files:
Generated on Thu Feb 16 23:58:47 2006 for oggdsf by  doxygen 1.3.9