#include #include #include #include #include #include #include #include #include bool getFileList(const String &strPathFileSpec,Block &fileList); bool getFileList(const String &strPathFileSpec,Block &pathFileNames) { QuickSort sorter; Block fileList; String strPathDirectory; FindData findData; pathFileNames.remove(); strPathDirectory=strPathFileSpec; Profile::makeDirectoryName(strPathDirectory); strPathDirectory+="\\"; if(findData.findFirst(strPathFileSpec)) { fileList.insert(&FileInfo()); FileInfo &fileInfo=fileList[fileList.size()-1]; fileInfo.setFileName(strPathDirectory+findData.fileName()); fileInfo.setCreationTime(findData.creationTime()); while(findData.findNext()) { fileList.insert(&FileInfo()); FileInfo &fileInfo=fileList[fileList.size()-1]; fileInfo.setFileName(strPathDirectory+findData.fileName()); fileInfo.setCreationTime(findData.creationTime()); } } sorter.sortItems(fileList); for(int index=0;index fileList; Params params; params.setArgs(argc,argv); if(!params.contains(keyAVIFileName)||!params.contains(keyPathFileSpec)) { ::printf("USAGE: avifile avifilename= pathfilespec=\n"); ::printf(" resample= fcchandler= rate= \n"); ::printf(" scale= quality=\n"); ::printf("(ie) avifile avifilename=d:\\capture.avi pathfilespec=c:\\images\\*.jpg resample=320,200\n"); ::printf("(ie) avifile avifilename=d:\\capture.avi pathfilespec=c:\\images\\*.jpg fcchandler=cvid\n"); ::printf("scale=time scale.\n"); ::printf("rate=rate in integer format.\n"); ::printf("rate/scale=samples per second.\n"); ::printf("quality=integer (1-10000).\n"); return 1; } params.showParams(); if(!getFileList(params.getParam(keyPathFileSpec),fileList)) { ::printf("Failed to retrieve file list from %s\n",params.getParam(keyPathFileSpec).str()); return 1; } if(params.contains(keyResampleSpec)) { String strResample=params.getParam(keyResampleSpec); aviGenerator.setResample(Point(strResample.betweenString(0,',').toInt(),strResample.betweenString(',',0).toInt())); } if(params.contains(keyRate)) { aviGenerator.setRate(params.getParam(keyRate).toInt()); } if(params.contains(keyScale)) { aviGenerator.setScale(params.getParam(keyScale).toInt()); } if(params.contains(keyQuality)) { aviGenerator.setQuality(params.getParam(keyQuality).toInt()); } if(params.contains(keyFCCHandler)) { aviGenerator.createAVIFile(params.getParam(keyAVIFileName),FOURCC(params.getParam(keyFCCHandler)),fileList); } else aviGenerator.createAVIFile(params.getParam(keyAVIFileName),fileList); return 0; }