Arrived at a new frame in a "normal" walk.
Reimplemented from Impala::Core::VideoSet::Listener. Definition at line 105 of file ExportKeyframes.h. References Impala::Core::Stream::RgbDataSrc::DataPtr(), Impala::FileNameExt(), Impala::Core::Stream::RgbDataSrc::FrameHeight(), Impala::Core::Stream::RgbDataSrc::FrameNr(), Impala::Core::Stream::RgbDataSrc::FrameWidth(), 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 >::Get3(), Impala::Core::Database::RawDataSet::GetContainerDirOfFile(), Impala::Core::Database::RawDataSet::GetDatabase(), Impala::Core::Database::RawDataSet::GetFile(), Impala::Core::Database::RawDataSet::GetFilePathImageData(), ILOG_ERROR, mArchive, mBuf, mBufSize, mCurKey, mForcePng, mImList, mImSet, mKeyframes, mScale, mSplitArchive, Impala::Core::Geometry::NEAREST, Impala::Core::Array::Scale(), Impala::StringReplace(), Impala::Core::Array::WriteJpg(), Impala::Core::Array::WriteJpgToMemory(), Impala::Core::Array::WritePng(), and Impala::Core::Array::WritePngToMemory(). 00106 { 00107 if ((mKeyframes->Get1(mCurKey) != fileId) || 00108 (mKeyframes->Get3(mCurKey) != src->FrameNr())) 00109 { 00110 if (mKeyframes->Get1(mCurKey) != fileId) 00111 ILOG_ERROR("Wrong video: " << fileId << " instead of " 00112 << mKeyframes->Get1(mCurKey)); 00113 if (mKeyframes->Get3(mCurKey) != src->FrameNr()) 00114 ILOG_ERROR("Wrong frame: " << src->FrameNr() << " instead of " 00115 << mKeyframes->Get3(mCurKey) << " for keyId " 00116 << mCurKey); 00117 //mCurKey++; 00118 //return; 00119 } 00120 typedef Array::Array2dVec3UInt8 ArrayT; 00121 ArrayT* im = Array::ArrayCreate<ArrayT> 00122 (src->FrameWidth(), src->FrameHeight(), 0, 0, src->DataPtr(), true); 00123 ArrayT* sc = 0; 00124 if (mScale == 1.0) 00125 sc = im; 00126 else 00127 Array::Scale(sc, im, mScale, mScale, Geometry::NEAREST, true); 00128 if (mArchive || mSplitArchive) 00129 { 00130 size_t nrBytes = 0; 00131 String ext = FileNameExt(mImSet->GetFile(mCurKey)); 00132 if ((ext == "png") || (mForcePng)) 00133 Array::WritePngToMemory(sc, mBuf, mBufSize, &nrBytes); 00134 else 00135 Array::WriteJpgToMemory(sc, mBuf, mBufSize, &nrBytes); 00136 Array::Array2dScalarUInt8* data = 00137 Array::MakeFromData<Array::Array2dScalarUInt8>((UInt8*) mBuf, 00138 nrBytes, 1); 00139 mImList.push_back(data); 00140 } 00141 else 00142 { 00143 #ifndef REPOSITORY_USED // Here comes the deprecated stuff 00144 String fName = mImSet->GetFilePathImageData(mCurKey, true, false); 00145 if (mForcePng) // warning : no protection from override 00146 fName = StringReplace(fName, ".jpg", ".png"); 00147 if (fName.empty()) 00148 { 00149 ILOG_ERROR("Empty filename"); 00150 } 00151 else 00152 { 00153 if (FileNameExt(fName, true) == "jpg") 00154 Array::WriteJpg(sc, fName, mImSet->GetDatabase()); 00155 else 00156 Array::WritePng(sc, fName, mImSet->GetDatabase()); 00157 } 00158 #else // REPOSITORY_USED 00159 String container = mImSet->GetContainerDirOfFile(mCurKey); 00160 String fName = mImSet->GetFile(mCurKey); 00161 if (mForcePng) 00162 fName = StringReplace(fName, ".jpg", ".png"); 00163 Persistency::ImageLocator loc(vs->GetLocator(), container, fName); 00164 Persistency::ImageRepository().Add(loc, sc); 00165 #endif // REPOSITORY_USED 00166 } 00167 if (sc != im) 00168 delete sc; 00169 delete im; 00170 mCurKey++; 00171 }
Here is the call graph for this function:
|