22 #include <QImageWriter>
23 #include <QImageReader>
24 #include <QProgressDialog>
27 #include "layersound.h"
28 #include "pencildef.h"
30 #define MIN(a,b) ((a)>(b)?(b):(a))
33 qint16 safeSum ( qint16 a, qint16 b)
35 if (((
int)a + (
int)b) > 32767)
37 if (((
int)a + (
int)b) < -32768)
44 qDebug() <<
"Initialize linux: <nothing, for now>";
49 foreach (QString format, formats)
50 {qDebug() <<
"QImageReader capability: " << format;}
53 formats = QImageWriter::supportedImageFormats();
54 foreach (QString format, formats)
55 {qDebug() <<
"QImageWriter capability: " << format;}
58 void Editor::importMovie (QString filePath,
int fps)
62 QSettings settings( PENCIL2D, PENCIL2D );
64 qDebug() <<
"-------IMPORT VIDEO------" << filePath;
67 QDir::temp().mkdir(
"pencil");
68 QString tempPath = QDir::temp().absolutePath()+
"/pencil/";
70 QProgressDialog progress(
"Importing movie...",
"Abort", 0, 100, NULL);
71 progress.setWindowModality(Qt::WindowModal);
73 progress.setValue(10);
75 qDebug() <<
"ffmpeg -i \"" << filePath <<
"\" -r " << QString::number(fps) <<
" -f image2 \"" << tempPath <<
"tmp_import%4d.png\"";
76 ffmpeg.start(
"ffmpeg -i \"" + filePath +
"\" -r " + QString::number(fps) +
" -f image2 \"" + tempPath +
"tmp_import%4d.png\"");
77 progress.setValue(20);
78 if (ffmpeg.waitForStarted() ==
true)
80 if (ffmpeg.waitForFinished() ==
true)
82 QByteArray sErr = ffmpeg.readAllStandardError();
84 {qDebug() <<
"ERROR: Could not execute FFmpeg.";}
87 qDebug() <<
"stderr: " + ffmpeg.readAllStandardOutput();
88 qDebug() <<
"stdout: " << sErr;
92 {qDebug() <<
"ERROR: FFmpeg did not finish executing.";}
95 {qDebug() <<
"Please install FFMPEG: sudo apt-get install ffmpeg";}
96 progress.setValue(50);
98 int nFiles = dir1.entryList().count();
100 QString frameNumberString = QString::number(i);
101 while( frameNumberString.length() < 4) frameNumberString.prepend(
"0");
102 while (QFile::exists(tempPath+
"tmp_import"+frameNumberString+
".png"))
104 progress.setValue(50+i*50/nFiles);
105 if(i>1) scrubForward();
106 importImage(tempPath+
"tmp_import"+frameNumberString+
".png");
108 frameNumberString = QString::number(i);
109 while( frameNumberString.length() < 4) frameNumberString.prepend(
"0");
111 progress.setValue(100);
114 QStringList filtername(
"*.*");
115 QStringList entries = dir.entryList(filtername,QDir::Files,QDir::Type);
116 for(
int i=0; i<entries.size(); i++)
117 dir.remove(entries[i]);