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

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

Definition at line 565 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().

00566     {
00567         if ((mQuids == 0) || (mQuids->Size() == 0))
00568         {
00569             ILOG_ERROR("DoWalkQuids: no quids loaded");
00570             return;
00571         }
00572         if (startFile >= mVideoSet->NrFiles())
00573         {
00574             ILOG_ERROR("DoWalkQuids: startFile out of range");
00575             return;
00576         }
00577         if (numberFiles == -1)
00578             numberFiles = mVideoSet->NrFiles();
00579         if (startFile + numberFiles >= mVideoSet->NrFiles())
00580             numberFiles = mVideoSet->NrFiles() - startFile;
00581 
00582         for (size_t l=0 ; l<mListeners.size() ; l++)
00583         {
00584             mListeners[l]->HandleNewWalk(mVideoSet);
00585             mListeners[l]->HandleNewWalk(mVideoSet, mQuidWalkName);
00586             if (mSegmentation)
00587                 mListeners[l]->HandleNewWalk(mVideoSet, mSegmentation);
00588         }
00589         ILOG_DEBUG("fileId range = " << startFile << " - "
00590                    << startFile+numberFiles);
00591         for (int fileId=startFile ; fileId<startFile+numberFiles ; fileId++)
00592         {
00593             ILOG_DEBUG("fileId = " << fileId);
00594             ILOG_NDC_PUSH("video " << fileId);
00595             int numberQuids = mConfig.numberQuids;
00596             int startQ = mQuids->GetFirstQuidObject(fileId);
00597             int numberQ = mQuids->GetNrQuidsObject(fileId);
00598             if (numberQ == 0)
00599                 continue;
00600 
00601             int lastQ = startQ + numberQ;
00602             ILOG_INFO("quids are " << startQ << " - " << lastQ << " (nr = "
00603                       << numberQ << ")");
00604             if (mConfig.startQuid < numberQ)
00605                 startQ += mConfig.startQuid;
00606             if (numberQuids == -1)
00607                 numberQuids = numberQ;
00608             bool done = false;
00609             int qIdx = startQ;
00610             ILOG_DEBUG("processing " << startQ << " - " << lastQ << " (max "
00611                       << numberQuids << ")");
00612             Stream::RgbDataSrc* src = 0;
00613             if (!mConfig.virtualWalk)
00614                 src = mVideoSet->GetVideo(fileId);
00615             for (size_t l=0 ; l<mListeners.size() ; l++)
00616                 mListeners[l]->HandleNewFile(mVideoSet, fileId, src);
00617             while (!done)
00618             {
00619                 ILOG_DEBUG("quidIdx " << qIdx);
00620                 Quid quid = mQuids->Get1(qIdx);
00621                 if (src)
00622                 {
00623                     int frameNr = QuidId(quid);
00624                     ILOG_DEBUG("GotoFrame " << frameNr);
00625                     src->GotoFrame(frameNr);
00626                     ILOG_DEBUG("src at " << src->FrameNr());
00627                 }
00628                 for (size_t l=0 ; l<mListeners.size() ; l++)
00629                     mListeners[l]->HandleNewFrame(mVideoSet, fileId, src);
00630                 if (--numberQuids <= 0)
00631                     done = true;
00632                 if (++qIdx >= lastQ)
00633                     done = true;
00634             }
00635             for (size_t l=0 ; l<mListeners.size() ; l++)
00636                 mListeners[l]->HandleDoneFile(mVideoSet, fileId, src);
00637             if (src)
00638                 delete src;
00639             ILOG_NDC_POP;
00640         }
00641 
00642         for (size_t l=0 ; l<mListeners.size() ; l++)
00643             mListeners[l]->HandleDoneWalk(mVideoSet);
00644     }

Here is the call graph for this function:


Generated on Fri Mar 19 11:33:43 2010 for ImpalaSrc by  doxygen 1.5.1