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

void Impala::Core::VideoSet::IndexAnnotation::DoKeyframes ( VideoSet vs,
int  fileId,
int  concept,
Mpeg7Doc mp7 
) [inline, private]

Definition at line 248 of file IndexAnnotation.h.

References Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Add(), AddExtra(), Impala::Core::Table::AnnotationTable::AddNegative(), Impala::Core::Table::AnnotationTable::AddPositive(), Impala::Core::Table::AnnotationTable::AddSkip(), Impala::Core::Table::QuidTable::Contains(), Impala::Core::VideoSet::Mpeg7Doc::EndFrame(), Impala::Core::VideoSet::Mpeg7Doc::FindShot(), Impala::Core::VideoSet::Keyframes::GetFirstKeyframeVideo(), Impala::Core::VideoSet::Keyframes::GetFrameNr(), Impala::Core::VideoSet::Keyframes::GetNrKeyframesVideo(), Impala::Core::Table::AnnotationTableSet::GetTable(), Impala::Core::VideoSet::Mpeg7Doc::IsNegativeAnno(), Impala::Core::VideoSet::Mpeg7Doc::IsPositiveAnno(), Impala::Core::VideoSet::Keyframes::IsRKF(), Impala::MakeQuidFrame(), mAnnoExtra, mAnnoFrame, mKeyframes, mQuidExtra, mRkfMask, and Impala::Core::VideoSet::Mpeg7Doc::StartFrame().

Referenced by HandleNewFile().

00249     {
00250         Table::AnnotationTable* frameTable = mAnnoFrame->GetTable(concept);
00251         Table::AnnotationTable* frameExtra = 0;
00252         if (mAnnoExtra)
00253             frameExtra = mAnnoExtra->GetTable(concept);
00254         int startKey = mKeyframes->GetFirstKeyframeVideo(fileId);
00255         int endKey = startKey + mKeyframes->GetNrKeyframesVideo(fileId);
00256         for (int k=startKey ; k<endKey ; k++)
00257         {
00258             if (mRkfMask && (!mKeyframes->IsRKF(k)))
00259                 continue;
00260             int frame = mKeyframes->GetFrameNr(k);
00261             int idx = mp7->FindShot(frame);
00262             if (idx != -1)
00263             {
00264                 Quid q = MakeQuidFrame(vs->GetSetId(), fileId, frame);
00265                 if (mQuidExtra && (!mQuidExtra->Contains(q)))
00266                     mQuidExtra->Add(q);
00267                 if (mp7->IsPositiveAnno(idx))
00268                 {
00269                     frameTable->AddPositive(q);
00270                     if (frameExtra)
00271                     {
00272                         frameExtra->AddPositive(q);
00273                         int len = mp7->EndFrame(idx) - mp7->StartFrame(idx);
00274                         if (len > 1)
00275                         {
00276                             AddExtra(vs, fileId, concept, mp7, k, idx);
00277                         }
00278                     }
00279                 }
00280                 else if (mp7->IsNegativeAnno(idx))
00281                 {
00282                     frameTable->AddNegative(q);
00283                     if (frameExtra)
00284                         frameExtra->AddNegative(q);
00285                 }
00286                 else
00287                 {
00288                     frameTable->AddSkip(q);
00289                     if (frameExtra)
00290                         frameExtra->AddSkip(q);
00291                 }
00292             }
00293         }
00294     }

Here is the call graph for this function:


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