Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

Impala::Core::Stream::Lavc::VideoAccessStrategy Class Reference

Subclasses of this base class define specific strategies for accessing video's of different format, codec and other qualities. More...

#include <VideoAccessStrategy.h>

Inheritance diagram for Impala::Core::Stream::Lavc::VideoAccessStrategy:

Inheritance graph
[legend]
Collaboration diagram for Impala::Core::Stream::Lavc::VideoAccessStrategy:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 VideoAccessStrategy (const Lavc::VideoAccessObject *const vao)
virtual ~VideoAccessStrategy ()
bool Scan ()
 Scans the video for meta-data like bad frames and frame accuracy.
const VideoAccessObject *const VideoAccessObj () const
virtual bool ResetVideoSrc () const
bool VideoIsValid () const
virtual int NrOfFrames () const
int LeadingBadFrames () const
bool FrameIsValid (int frameNr) const
char FrameType () const
UInt8RgbDataPtr () const
VideoIndexConstructIndex ()
 Caller assumes responsibility for the returned object.
virtual void CleanUp ()
virtual int DecodeNextFrame (bool *isValidFrame, bool *isKeyFrame, PacketTrace *pktTrace) const
 Reads packets until a video frame can be decoded from such packet.
int CurrentFrameToRgb () const
String FrameHash (int frameNr) const
bool JumpToFramePosition (const UInt64 &target) const
bool FrameIsStable (int frameNr) const
virtual bool FrameCanBeRead (int frameNr) const =0

Static Public Attributes

static const int HASH_SIZE = 32
static const String INVALID_FRAME_HASH
static const String UNSTABLE_FRAME_HASH

Protected Types

typedef Table::TableTem< Column::ColumnTem<
Int32 >, Column::ColumnTem<
Int32 >, Column::ColumnTem<
Int32 >, Column::ColumnTem<
UInt64 > > 
PacketTable
typedef Column::FixedStringColumn::ColElemType FixedString
typedef Table::TableTem< Column::ColumnTem<
Int32 >, Column::ColumnTem<
Int32 >, Column::ColumnTem<
Int32 >, Column::ColumnTem<
Int32 >, Column::FixedStringColumn
FrameTable

Protected Member Functions

virtual int GetJumpFlags () const=0
virtual bool ScanProtected ()=0
virtual VideoIndexConstructIndexProtected () const=0
virtual bool Jump (const UInt64 &target, int flags, bool mustBeKey=false, int flush=0, PacketTrace *trace=0) const
 Jumps to the specified target and attempts reading the first next (valid) frame; if requested, reading frames will continue until the first next (valid) *key* frame; 'target' is defined by 'flags', which consists of libavformat flags AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE and AVSEEK_FLAG_ANY ( see ffmpeg/avformat.h ).
virtual bool DecodeNextValidFrame (bool lookForKeyFrame, PacketTrace *pktTrace=0) const
void ProcessFrame (bool isValid, bool isKey, int frameNr, bool validating=false)
bool FrameIsKey (int frameNr) const
bool CurrentFrameMatchesFrame (int frameNr, const PacketTrace *trace=0) const
bool CurrentHashMatchesFrame (int frameNr) const
virtual bool NextFrameMatchesFrame (int frameNr, const VideoIndex &videoIndex) const =0
bool ScanDataPresent ()
virtual void MarkFrameUnstable (int frameNr)
void WriteScanData (CString fileName)
void ReadScanData (CString fileName)
void SetNrOfFrames (int count)

Protected Attributes

const VideoAccessObject *const mVao
PacketTablemPackets
FrameTablemFrames
int mBadFrameCount
int mLeadingBadFrameCount
bool mScanDataPresent

Private Member Functions

void AddFrameToTable (bool isValid, bool isKey, CString hash, const FixedString &hashAsFixedStr)
VideoIndexConstructIndexPrivate ()
bool IndexValid (const VideoIndex &idx) const
bool IndexValidTraversingBackwards (const VideoIndex &idx) const
bool IndexValidTraversingForwards (const VideoIndex &idx) const
bool JumpValidForFrame (int frameNr, const VideoIndex &videoIndex) const
 Attempt a jump to the specified frame using the specified index, and evaluate whether the jump was successfull (i.e.
bool PacketTraceMatchesFrame (const PacketTrace &trace, int frameNr) const
 Checks the packet table to see whether the specified trace matches the packet context for the specified frame.

Private Attributes

bool mVideoIsValid
int mNrOfFrames
int mFailingKeyFrameNr
 ILOG_VAR_DECL

Detailed Description

Subclasses of this base class define specific strategies for accessing video's of different format, codec and other qualities.

Definition at line 25 of file VideoAccessStrategy.h.


The documentation for this class was generated from the following file:
Generated on Fri Mar 19 11:18:43 2010 for ImpalaSrc by  doxygen 1.5.1