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

Keyframes* Impala::Samples::MonetTest::MakeKeyframesMapi ( VideoSet *  vidSet,
Connection *  conn 
)

Definition at line 135 of file mainMonetTest.cpp.

References Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Add(), Impala::Core::Database::RawDataSet::GetSetNameBase(), Impala::Core::VideoSet::Segmentation::GetShotId(), ILOG_VAR, MakeSegmentationMapi(), Impala::QuidId(), and Impala::Core::VideoSet::Keyframes::UpdateGroups().

Referenced by DoCheckKeyframes().

00136 {
00137     ILOG_VAR(Impala.Samples.MonetTest.MakeKeyframesMapi);
00138 
00139     String vidSetBase = vidSet->GetSetNameBase();
00140     String query =
00141         "select f.quid, fr.fragment_start, fr.fragment_name \
00142          from   fragment fr, file f, video_set vs, video_sets vss \
00143          where  vss.set_name = '" + vidSetBase + "' and \
00144                 vs.video_sets_id = vss.video_sets_id and \
00145                 f.file_id = vs.file_id and \
00146                 fr.media_id = f.media_id and \
00147                 fr.keyframe = true \
00148          order by f.quid, fr.fragment_start;";
00149 
00150     MapiHdl hdl = conn->QueryPartStart(query);
00151     if (hdl == 0)
00152         return 0;
00153 
00154     Quid* quid = 0;
00155     int quidSize = 0;
00156     if (!conn->QueryPartFetchULL(hdl, 0, quid, quidSize))
00157         return 0;
00158 
00159     int* start = 0;
00160     int startSize = 0;
00161     if (!conn->QueryPartFetchInt(hdl, 1, start, startSize))
00162         return 0;
00163 
00164     std::vector<String> name;
00165     if (!conn->QueryPartFetchString(hdl, 2, name))
00166         return 0;
00167 
00168     conn->QueryPartEnd(hdl);
00169 
00170     // Need segmentation for shotId
00171     Segmentation* seg = MakeSegmentationMapi(vidSet, conn);
00172     Keyframes* key = new Keyframes(vidSet, "");
00173     for (int i=0 ; i<quidSize ; i++)
00174     {
00175         int vidId = QuidId(quid[i]);
00176         int shotId = seg->GetShotId(vidId, start[i]);
00177         key->Add(vidId, shotId, start[i], name[i]);
00178     }
00179     key->UpdateGroups();
00180     delete seg;
00181 
00182     delete quid;
00183     delete start;
00184     return key;
00185 }

Here is the call graph for this function:


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