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

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

Definition at line 277 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().

00278     {
00279         Table::AnnotationTable* frameTable = mAnnoFrame->GetTable(concept);
00280         Table::AnnotationTable* frameExtra = 0;
00281         if (mAnnoExtra)
00282             frameExtra = mAnnoExtra->GetTable(concept);
00283         int startKey = mKeyframes->GetFirstKeyframeVideo(fileId);
00284         int endKey = startKey + mKeyframes->GetNrKeyframesVideo(fileId);
00285         for (int k=startKey ; k<endKey ; k++)
00286         {
00287             if (mRkfMask && (!mKeyframes->IsRKF(k)))
00288                 continue;
00289             int frame = mKeyframes->GetFrameNr(k);
00290             int idx = mp7->FindShot(frame);
00291             if (idx != -1)
00292             {
00293                 Quid q = MakeQuidFrame(vs->GetSetId(), fileId, frame);
00294                 if (mQuidExtra && (!mQuidExtra->Contains(q)))
00295                     mQuidExtra->Add(q);
00296                 if (mp7->IsPositiveAnno(idx))
00297                 {
00298                     frameTable->AddPositive(q);
00299                     if (frameExtra)
00300                     {
00301                         frameExtra->AddPositive(q);
00302                         int len = mp7->EndFrame(idx) - mp7->StartFrame(idx);
00303                         if (len > 1)
00304                         {
00305                             AddExtra(vs, fileId, concept, mp7, k, idx);
00306                         }
00307                     }
00308                 }
00309                 else if (mp7->IsNegativeAnno(idx))
00310                 {
00311                     frameTable->AddNegative(q);
00312                     if (frameExtra)
00313                         frameExtra->AddNegative(q);
00314                 }
00315                 else
00316                 {
00317                     frameTable->AddSkip(q);
00318                     if (frameExtra)
00319                         frameExtra->AddSkip(q);
00320                 }
00321             }
00322         }
00323     }

Here is the call graph for this function:


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