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:
|