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

void Impala::Core::Stream::Lavc::VideoAccessStrategy::ProcessFrame ( bool  isValid,
bool  isKey,
int  frameNr,
bool  validating = false 
) [inline, protected]

Definition at line 397 of file VideoAccessStrategy.h.

References AddFrameToTable(), Impala::Core::Stream::Lavc::VideoAccessObject::CurrentFrameToRgb(), Impala::Core::Stream::Lavc::VideoAccessObject::CurrentHash(), CurrentHashMatchesFrame(), FrameIsKey(), FrameIsValid(), Impala::Core::Stream::Lavc::VideoAccessObject::FrameType(), HASH_SIZE, ILOG_DEBUG, ILOG_ERROR, INVALID_FRAME_HASH, MarkFrameUnstable(), and mVao.

Referenced by Impala::Core::Stream::Lavc::StrategyIgnoringNativeIndex::ProcessPacket(), and Impala::Core::Stream::Lavc::StrategyUsingNativeIndex::ScanProtected().

00398     {
00399         static const FixedString invalidAsFixedStr(
00400             HASH_SIZE, (char*) INVALID_FRAME_HASH.c_str(), true);
00401 
00402         if (validating)
00403         {
00404             if (isValid)
00405             {
00406                 if (!FrameIsValid(frameNr) || 
00407                     (isKey && !FrameIsKey(frameNr)) ||
00408                     (!isKey && FrameIsKey(frameNr)))
00409                 {
00410                     ILOG_ERROR("Unsupported instability type detected for" <<
00411                         " frame " << frameNr << " (" << FrameIsValid(frameNr) <<
00412                         "->" << isValid << ", " << FrameIsKey(frameNr) << 
00413                         "->" << isKey << ")");
00414                 }
00415                 else
00416                 {
00417                     mVao->CurrentFrameToRgb();
00418                     if (!CurrentHashMatchesFrame(frameNr))
00419                         MarkFrameUnstable(frameNr);
00420                 }
00421             }
00422             else if (FrameIsValid(frameNr))
00423                 ILOG_ERROR("Unsupported instability type detected for" <<
00424                     " frame " << frameNr << " (" << FrameIsValid(frameNr) <<
00425                         "->" << isValid << ")");
00426 
00427             ILOG_DEBUG("Re-scanned frame " << frameNr);
00428         }
00429 
00430         else 
00431         {
00432             String hash = INVALID_FRAME_HASH;
00433             if (isValid)
00434             {
00435                 mVao->CurrentFrameToRgb();
00436                 hash = mVao->CurrentHash();
00437                 FixedString hashAsFixedStr(HASH_SIZE, (char*) hash.c_str(), true);
00438                 AddFrameToTable(isValid, isKey, hash, hashAsFixedStr);
00439             }
00440             else
00441                 AddFrameToTable(false, false, INVALID_FRAME_HASH, invalidAsFixedStr);
00442 
00443             ILOG_DEBUG("Scanned frame " << frameNr << " [" << 
00444                 (isValid ? mVao->FrameType() : '?') << "] " << hash);
00445         }
00446     }

Here is the call graph for this function:


Generated on Fri Mar 19 11:18:52 2010 for ImpalaSrc by  doxygen 1.5.1