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

bool Impala::Core::VideoJob::Manager::Prepare ( CmdOptions options  )  [inline, private]

Definition at line 148 of file Manager.h.

References Impala::FileNameBase(), Impala::FileNameExt(), Impala::Core::Database::RawDataSet::GetDatabase(), Impala::Core::Database::RawDataSet::GetFilePathVideoData(), Impala::Util::Database::GetIOBuffer(), ILOG_ERROR, ILOG_INFO, ILOG_WARN, Impala::Core::VideoSet::MakeVideoSet(), mCompactedVideoSetSize, mCurrentMask, mData, Impala::Core::VideoJob::Data::mInitialMask, mMaskFileName, mMaskPath, Impala::Core::VideoJob::Data::mProcessDef, Impala::Core::VideoJob::Data::mProcessDefFile, mReporter, Impala::Core::VideoJob::Data::mVideos, mVideoSet, Impala::Core::VideoJob::Data::mVideoSetName, Impala::Core::VideoJob::Data::mVideoSetSize, Impala::Core::Database::RawDataSet::NrFiles(), Impala::Util::IOBuffer::ReadLine(), ReportProcessDefinition(), ReportVideoSet(), Impala::Core::VideoJob::ProcessDefinition::StageCount(), UpdateMaskFile(), Impala::Core::VideoJob::Data::VideoSetSize(), Impala::Core::VideoJob::Data::WasInitiallyMaskedOut(), and WriteVideoSet().

Referenced by Start().

00149     {
00150         mVideoSet = Core::VideoSet::MakeVideoSet(mData.mVideoSetName);
00151         mData.mVideoSetSize = mVideoSet->NrFiles();
00152         ILOG_INFO("Video set contains " << mData.mVideoSetSize <<
00153                   " video file(s)");
00154         if (mData.mVideoSetSize <= 0)
00155         {
00156             ILOG_WARN("No video files to process");
00157             return false;
00158         }
00159 
00160         mData.mProcessDef = new ProcessDefinition(mData.mProcessDefFile);
00161         if (mData.mProcessDef->StageCount() < 1)
00162         {
00163             ILOG_WARN("Empty process definition");
00164             return false;
00165         }
00166 
00167         mMaskPath = mVideoSet->GetFilePathVideoData(mMaskFileName, false, true);
00168         if (mMaskPath.empty())
00169         {
00170             ILOG_INFO("Mask file '" << mMaskFileName << "' not found");
00171             // since the file was not found, set path for the file for writing
00172             mMaskPath = mVideoSet->GetFilePathVideoData(mMaskFileName, true,
00173                                                         false);
00174         }
00175         else
00176         {
00177             Util::Database* db = mVideoSet->GetDatabase();
00178             Util::IOBuffer* buffer = db->GetIOBuffer(mMaskPath, true, false, "");
00179             if (buffer)
00180             {
00181                 mCurrentMask = buffer->ReadLine();
00182                 delete buffer;
00183                 int maskLength = Min<int>(mCurrentMask.size(),
00184                                           mData.VideoSetSize());
00185                 mCurrentMask = mCurrentMask.substr(0, maskLength);
00186                 if (mCurrentMask.empty())
00187                     ILOG_INFO("Mask file '" << mMaskFileName << "' is empty");
00188             }
00189             else
00190             {
00191                 ILOG_ERROR("Failed to read mask file '" << mMaskFileName << "'");
00192                 return false;
00193             }
00194         }
00195         mData.mInitialMask = mCurrentMask;
00196 
00197         const int setSize = mData.VideoSetSize();
00198         for (int v = 0; v < setSize; v++)
00199         {
00200             if (! mData.WasInitiallyMaskedOut(v))
00201             {
00202                 VideoMeta video;
00203                 video.videoNr = v;
00204                 video.discarded = false;
00205                 mData.mVideos[v] = video;
00206             }
00207         }
00208 
00209         ILOG_INFO("Ignoring " << mData.mVideoSetSize - mData.mVideos.size() <<
00210                   " video file(s)");
00211 
00212         if (mData.mVideos.empty())
00213         {
00214             ILOG_WARN("No video files to process");
00215             return false;
00216         }
00217 
00218         if (!UpdateMaskFile(false))
00219         {
00220             ILOG_ERROR("Mask file update test failed");
00221             return false;
00222         }
00223 
00224         mReporter = new Reporter(mData, options);
00225         ReportVideoSet(mVideoSet);
00226         ReportProcessDefinition();
00227 
00228         WriteVideoSet(FileNameBase(mData.mVideoSetName) + "_bak." + 
00229                       FileNameExt(mData.mVideoSetName));
00230 
00231         mCompactedVideoSetSize = mData.mVideoSetSize; // must initially have
00232                                                       // this value
00233         return true;
00234     }

Here is the call graph for this function:


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