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

virtual void Impala::Core::VideoSet::ExportFeatures::HandleDoneFile ( VideoSet vs,
int  fileId,
Stream::RgbDataSrc src 
) [inline, virtual]

Completed given DB_FILE in a "normal" walk.

Reimplemented from Impala::Core::VideoSet::Listener.

Definition at line 52 of file ExportFeatures.h.

References Impala::Core::VideoSet::Mpeg7Doc::AddFeature(), Impala::Core::Feature::FeatureDefinition::AsString(), Impala::Core::Stream::RgbDataSrc::FrameRateDen(), Impala::Core::Stream::RgbDataSrc::FrameRateNum(), Impala::Core::Feature::FeatureDefinition::GetName(), Impala::Core::VideoSet::Segmentation::GetNrFramesVideo(), ILOG_ERROR, Impala::MakeString(), mFeatureDef, mFractions, Impala::Core::VideoSet::Mpeg7DocWrite(), mSegmentation, mWalkType, Impala::QUID_CLASS_FRAME, Impala::QuidClass(), Impala::QuidId(), and Impala::Core::Vector::VectorTem< ElemT >::Size().

00053     {
00054         if ((mSegmentation == 0))
00055         {
00056             ILOG_ERROR("Need segmentation");
00057             return;
00058         }
00059         Persistency::FeatureLocator loc(vs->GetLocator(), false, false,
00060                                         mWalkType, mFeatureDef.AsString(),
00061                                         vs->GetContainerFile(fileId));
00062         typedef Feature::FeatureTable FeatureTable;
00063         FeatureTable* table = Persistency::FeatureTableRepository().Get(loc);
00064         if (table == 0)
00065         {
00066             ILOG_ERROR("Unable to find " << mFeatureDef.AsString());
00067             return;
00068         }
00069         String fileName = vs->GetFile(fileId);
00070         String id = fileName;
00071         int nrFrames = mSegmentation->GetNrFramesVideo(fileId);
00072         int frameRateNum = (src) ? src->FrameRateNum() : 0;
00073         int frameRateDen = (src) ? src->FrameRateDen() : 0;            
00074         Mpeg7Doc mp7(id, fileName, nrFrames, mFractions, false, "", "",
00075                      frameRateNum, frameRateDen);
00076         for (int i=0 ; i<table->Size() ; i++)
00077         {
00078             Quid quid = table->Get1(i);
00079             if (QuidClass(quid) != QUID_CLASS_FRAME)
00080                 ILOG_ERROR("Quid is not a frame");
00081             int frameNr = QuidId(quid);
00082             String name = "frame_" + MakeString(frameNr);
00083             Feature::FeatureTable::VectorReal64 v = table->Get2(i);
00084             std::vector<double> vec;
00085             for (int j=0 ; j<v.Size() ; j++)
00086                 vec.push_back(v[j]);
00087             mp7.AddFeature(mFeatureDef.GetName(), name, frameNr, frameNr, vec);
00088         }
00089         delete table;
00090         Core::VideoSet::Mpeg7DocWrite(&mp7, vs, fileId);
00091     }

Here is the call graph for this function:


Generated on Thu Jan 13 09:21:50 2011 for ImpalaSrc by  doxygen 1.5.1