Definition at line 386 of file StrategyIgnoringNativeIndex.h. References Impala::Core::Stream::Lavc::VideoAccessStrategy::CurrentFrameMatchesFrame(), Impala::Core::Stream::Lavc::VideoAccessStrategy::CurrentFrameToRgb(), Impala::Core::Stream::Lavc::VideoAccessStrategy::DecodeNextValidFrame(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Get2(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Get3(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Get4(), ILOG_DEBUG, ILOG_ERROR, Impala::Core::Stream::Lavc::VideoAccessStrategy::Jump(), Impala::Core::Stream::Lavc::VideoAccessStrategy::mFrames, Impala::Core::Stream::Lavc::VideoAccessStrategy::mPackets, and Impala::Core::Table::Table::Size(). Referenced by FindSeekPosition(). 00387 { 00388 PacketTrace trace(10); 00389 static const bool MUST_BE_KEY = true; 00390 if (!Jump(seekPos, AVSEEK_FLAG_BYTE, MUST_BE_KEY, 2, &trace)) 00391 return false; 00392 00393 CurrentFrameToRgb(); 00394 if (!CurrentFrameMatchesFrame(frameNr, &trace)) 00395 return false; 00396 00397 UInt64 postReadPos = mPackets->Get4(mFrames->Get2(frameNr)); 00398 UInt64 lastPostReadPosOfTrace = trace.Get3(trace.Size() - 1); 00399 if (lastPostReadPosOfTrace <= postReadPos) 00400 return true; 00401 00402 for (int f = frameNr + 1; f < mFrames->Size(); f++) 00403 { 00404 if (!DecodeNextValidFrame(false, &trace)) 00405 { 00406 ILOG_ERROR("Unexpected: could not find/decode frame " << f); 00407 return false; 00408 } 00409 00410 CurrentFrameToRgb(); 00411 if (!CurrentFrameMatchesFrame(f, &trace)) 00412 { 00413 ILOG_DEBUG(seekPos << " is not a valid seek target for " << 00414 "frame " << frameNr << ", following from a mismatch for " << 00415 "frame " << f); 00416 return false; 00417 } 00418 00419 postReadPos = mPackets->Get4(mFrames->Get2(f)); 00420 lastPostReadPosOfTrace = trace.Get3(trace.Size() - 1); 00421 if (lastPostReadPosOfTrace <= postReadPos) 00422 break; 00423 } 00424 return true; 00425 }
Here is the call graph for this function:
|