mx::MxPEGParser Class Reference
[MxPEG Core]

Versatile MxPEG parser. More...

#include <MxPEGParser.h>

Inheritance diagram for mx::MxPEGParser:

mxmObject mx::IComponent mx::IMxPEGParser mx::IInterface mx::IProcessesStream mx::ISendsUndecodedMxPEGFrames mx::IErrorState mx::IInterface mx::IInterface mx::IInterface List of all members.

Public Types

enum  DecoderState {
  AwaitMarker, StartOfImage, RecordStartOfImage, APP0,
  Comment, M1IMG, MxF, QuantizationTable,
  HuffmanTable, DefineRestartInterval, BitMap, StartOfFrame,
  StartOfScan, Scan, Audio, ReadPayloadAndReturn,
  NoGoodState
}

Public Member Functions

mxm::smart< mxmStringListenumerateInterfaces ()
 (Re)implemented.
mxm::smart< mxmStringListenumerateCapabilities (const mxmString &interface)
 (Re)implemented.
void setStreamSource (IStreamSource *stream_source)
 (Re)implemented.
void setUndecodedMxPEGFrameReceiver (IUndecodedMxPEGFrameReceiver *frame_receiver)
 (Re)implemented.
int processStreamBytes (int num)
 (Re)implemented.
bool sourceStillUp ()
 (Re)implemented.
bool errorState ()
 (Re)implemented.
void setErrorState ()
 (Re)implemented.

Static Public Member Functions

static IComponentInvokernewInvoker ()
 Generates an invoker singleton for the MxPEGParser component.

Private Member Functions

void feedBytes (unsigned char *buffer, int num)
 Internally used to pump raw MxPEG stream data into the parsr's state machine.
bool awaitMarker (unsigned char *marker_type)
 Private helper method.
bool readMarkerPayload (void)
 Private helper method.
bool doScan (void)
 Private helper method.
void activate ()
 Helper.

Static Private Member Functions

static mxm::smart< mxmStringList_enumerateInterfaces ()
 These static methods provide interface and capability ids for registration with the framework (for both the component and its invoker).
static mxm::smart< mxmStringList_enumerateCapabilities (const mxmString &interface)

Private Attributes

IStreamSourceSource
IUndecodedMxPEGFrameReceiverFrameReceiver
bool Active
DecoderState State
unsigned char * CurrentBytePtr
int BytesLeft
int AwaitMarkerStage
int ReadMarkerStage
unsigned char ReadMarkerFirstLenByte
int MarkerPayloadSize
int MarkerBytesNeeded
int ScanStage
unsigned char * MarkerPayload
mxmUndecodedMxPEGFrameDescriptor FrameDescriptor
int Width
int Height
unsigned char * PrefetchBuffer
int PrefetchBuffSize
int PrefetchedBytes
bool Fresh
mxmLocalEndian LocalEndian
bool ErrorEncountered

Classes

class  Invoker

Detailed Description

Versatile MxPEG parser.

Follows the conventional framewise approach.

Author:
[khe] Kai Hergenroether


Member Function Documentation

bool mx::MxPEGParser::awaitMarker unsigned char *  marker_type  )  [private]
 

Private helper method.

Eats BytesLeft==0

Result:

  • false : no marker yet, all bytes consumed
  • true : marker found, BytesLeft and CurrentBytePtr modified accordingly (bytes may be consumed), AwaitMarkerStage == 0

bool mx::MxPEGParser::doScan void   )  [private]
 

Private helper method.

Analogous behavior as waitMarker().

bool mx::MxPEGParser::readMarkerPayload void   )  [private]
 

Private helper method.

If method returns true, the payload is recognized to be completely present and the MarkerPayload pointer is set accordingly.

Analogous behavior as waitMarker().


The documentation for this class was generated from the following files:
Generated on Fri Jun 29 17:21:07 2007 for MxPEG SDK by  doxygen 1.4.6