Home || Architecture || Video Search || Visual Search || Scripts || Applications || 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::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Get1(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Get2(), 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(), Impala::Core::Table::Read(), Impala::Core::Vector::VectorTem< ElemT >::Size(), and Impala::Core::Table::Table::Size().

00053     {
00054         if ((mSegmentation == 0))
00055         {
00056             ILOG_ERROR("Need segmentation");
00057             return;
00058         }
00059 #ifndef REPOSITORY_USED // Here comes the deprecated stuff
00060         String fName = vs->GetFilePathFeatureData(mWalkType, mFeatureDef,
00061                                                   fileId, false, -1, false,
00062                                                   false);
00063         if (fName.empty())
00064         {
00065             ILOG_ERROR("Unable to find " << mFeatureDef.AsString());
00066             return;
00067         }
00068         Feature::FeatureTable table(mFeatureDef);
00069         Table::Read(&table, fName, vs->GetDatabase());
00070 
00071         String fileName = vs->GetFile(fileId);
00072         String id = fileName;
00073         int nrFrames = mSegmentation->GetNrFramesVideo(fileId);
00074         Mpeg7Doc mp7(id, fileName, nrFrames, mFractions, false, "", "");
00075         for (int i=0 ; i<table.Size() ; i++)
00076         {
00077             Quid quid = table.Get1(i);
00078             if (QuidClass(quid) != QUID_CLASS_FRAME)
00079                 ILOG_ERROR("Quid is not a frame");
00080             int frameNr = QuidId(quid);
00081             String name = "frame_" + MakeString(frameNr);
00082             Feature::FeatureTable::VectorReal64 v = table.Get2(i);
00083             std::vector<double> vec;
00084             for (int j=0 ; j<v.Size() ; j++)
00085                 vec.push_back(v[j]);
00086             mp7.AddFeature(mFeatureDef.GetName(), name, frameNr, frameNr, vec);
00087         }
00088 #else // REPOSITORY_USED
00089         Persistency::FeatureLocator loc(vs->GetLocator(), false, false,
00090                                         mWalkType, mFeatureDef.AsString(),
00091                                         vs->GetContainerFile(fileId));
00092         typedef Feature::FeatureTable FeatureTable;
00093         FeatureTable* table = Persistency::FeatureTableRepository().Get(loc);
00094         if (table == 0)
00095         {
00096             ILOG_ERROR("Unable to find " << mFeatureDef.AsString());
00097             return;
00098         }
00099         String fileName = vs->GetFile(fileId);
00100         String id = fileName;
00101         int nrFrames = mSegmentation->GetNrFramesVideo(fileId);
00102         Mpeg7Doc mp7(id, fileName, nrFrames, mFractions, false, "", "");
00103         for (int i=0 ; i<table->Size() ; i++)
00104         {
00105             Quid quid = table->Get1(i);
00106             if (QuidClass(quid) != QUID_CLASS_FRAME)
00107                 ILOG_ERROR("Quid is not a frame");
00108             int frameNr = QuidId(quid);
00109             String name = "frame_" + MakeString(frameNr);
00110             Feature::FeatureTable::VectorReal64 v = table->Get2(i);
00111             std::vector<double> vec;
00112             for (int j=0 ; j<v.Size() ; j++)
00113                 vec.push_back(v[j]);
00114             mp7.AddFeature(mFeatureDef.GetName(), name, frameNr, frameNr, vec);
00115         }
00116         delete table;
00117 #endif // REPOSITORY_USED
00118         Core::VideoSet::Mpeg7DocWrite(&mp7, vs, fileId);
00119     }

Here is the call graph for this function:


Generated on Fri Mar 19 11:28:57 2010 for ImpalaSrc by  doxygen 1.5.1