#include <VideoAccessStrategy.h>
Inheritance diagram for Impala::Core::Stream::Lavc::VideoAccessStrategy:
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 |
UInt8 * | RgbDataPtr () const |
VideoIndex * | ConstructIndex () |
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 VideoIndex * | ConstructIndexProtected () 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 |
PacketTable * | mPackets |
FrameTable * | mFrames |
int | mBadFrameCount |
int | mLeadingBadFrameCount |
bool | mScanDataPresent |
Private Member Functions | |
void | AddFrameToTable (bool isValid, bool isKey, CString hash, const FixedString &hashAsFixedStr) |
VideoIndex * | ConstructIndexPrivate () |
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 |
Definition at line 25 of file VideoAccessStrategy.h.