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

void Impala::Core::VideoSet::Walker::DoWalkQuids ( int  startFile,
int  numberFiles 
) [inline]

Definition at line 498 of file Walker.h.

References Impala::Core::Stream::RgbDataSrc::FrameNr(), Impala::Core::Stream::RgbDataSrc::GotoFrame(), ILOG_DEBUG, ILOG_ERROR, ILOG_INFO, ILOG_NDC_POP, ILOG_NDC_PUSH, and Impala::QuidId().

Referenced by Impala::Application::VidSet::mainVidSet().

00499     {
00500         if ((mQuids == 0) || (mQuids->Size() == 0))
00501         {
00502             ILOG_ERROR("DoWalkQuids: no quids loaded");
00503             return;
00504         }
00505         if (startFile >= mVideoSet->NrFiles())
00506         {
00507             ILOG_ERROR("DoWalkQuids: startFile out of range");
00508             return;
00509         }
00510         if (numberFiles == -1)
00511             numberFiles = mVideoSet->NrFiles();
00512         if (startFile + numberFiles >= mVideoSet->NrFiles())
00513             numberFiles = mVideoSet->NrFiles() - startFile;
00514 
00515         for (size_t l=0 ; l<mListeners.size() ; l++)
00516         {
00517             mListeners[l]->HandleNewWalk(mVideoSet);
00518             mListeners[l]->HandleNewWalk(mVideoSet, mQuidWalkName);
00519             if (mSegmentation)
00520                 mListeners[l]->HandleNewWalk(mVideoSet, mSegmentation);
00521         }
00522         ILOG_DEBUG("fileId range = " << startFile << " - "
00523                    << startFile+numberFiles);
00524         for (int fileId=startFile ; fileId<startFile+numberFiles ; fileId++)
00525         {
00526             ILOG_DEBUG("fileId = " << fileId);
00527             ILOG_NDC_PUSH("video " << fileId);
00528             int numberQuids = mConfig.numberQuids;
00529             int startQ = mQuids->GetFirstQuidObject(fileId);
00530             int numberQ = mQuids->GetNrQuidsObject(fileId);
00531             if (numberQ == 0)
00532                 continue;
00533 
00534             int lastQ = startQ + numberQ;
00535             ILOG_INFO("quids are " << startQ << " - " << lastQ << " (nr = "
00536                       << numberQ << ")");
00537             if (mConfig.startQuid < numberQ)
00538                 startQ += mConfig.startQuid;
00539             if (numberQuids == -1)
00540                 numberQuids = numberQ;
00541             bool done = false;
00542             int qIdx = startQ;
00543             ILOG_DEBUG("processing " << startQ << " - " << lastQ << " (max "
00544                       << numberQuids << ")");
00545             Stream::RgbDataSrc* src = 0;
00546             if (!mConfig.virtualWalk)
00547                 src = mVideoSet->GetVideo(fileId);
00548             for (size_t l=0 ; l<mListeners.size() ; l++)
00549                 mListeners[l]->HandleNewFile(mVideoSet, fileId, src);
00550             while (!done)
00551             {
00552                 ILOG_DEBUG("quidIdx " << qIdx);
00553                 Quid quid = mQuids->Get1(qIdx);
00554                 if (src)
00555                 {
00556                     int frameNr = QuidId(quid);
00557                     ILOG_DEBUG("GotoFrame " << frameNr);
00558                     src->GotoFrame(frameNr);
00559                     ILOG_DEBUG("src at " << src->FrameNr());
00560                 }
00561                 for (size_t l=0 ; l<mListeners.size() ; l++)
00562                     mListeners[l]->HandleNewFrame(mVideoSet, fileId, src);
00563                 if (--numberQuids <= 0)
00564                     done = true;
00565                 if (++qIdx >= lastQ)
00566                     done = true;
00567             }
00568             for (size_t l=0 ; l<mListeners.size() ; l++)
00569                 mListeners[l]->HandleDoneFile(mVideoSet, fileId, src);
00570             if (src)
00571                 delete src;
00572             ILOG_NDC_POP;
00573         }
00574 
00575         for (size_t l=0 ; l<mListeners.size() ; l++)
00576             mListeners[l]->HandleDoneWalk(mVideoSet);
00577     }

Here is the call graph for this function:


Generated on Thu Jan 13 09:22:20 2011 for ImpalaSrc by  doxygen 1.5.1