mirror of
https://github.com/lostjared/Acid.Cam.v2.Qt.git
synced 2025-12-18 12:50:07 +01:00
updated added option of using mov/avi on Linux/OSX
This commit is contained in:
@@ -293,7 +293,7 @@ void AC_MainWindow::Log(const QString &s) {
|
||||
log_text->setTextCursor(tmpCursor);
|
||||
}
|
||||
|
||||
bool AC_MainWindow::startCamera(int res, int dev, const QString &outdir, bool record) {
|
||||
bool AC_MainWindow::startCamera(int res, int dev, const QString &outdir, bool record, int type) {
|
||||
programMode = MODE_CAMERA;
|
||||
progress_bar->hide();
|
||||
controls_showvideo->setEnabled(false);
|
||||
@@ -333,7 +333,7 @@ bool AC_MainWindow::startCamera(int res, int dev, const QString &outdir, bool re
|
||||
m = localtime(&t);
|
||||
QString ext;
|
||||
#if defined(__APPLE__) || defined(__linux__)
|
||||
ext = ".mov";
|
||||
ext = (type == 0) ? ".mov" : ".avi";
|
||||
#else
|
||||
ext = ".avi";
|
||||
#endif
|
||||
@@ -362,6 +362,8 @@ bool AC_MainWindow::startCamera(int res, int dev, const QString &outdir, bool re
|
||||
QMessageBox::information(this, tr("Info"), tr("Could not set resolution reverting to default .."));
|
||||
res_w = ores_w;
|
||||
res_h = ores_h;
|
||||
capture_camera.set(CV_CAP_PROP_FRAME_WIDTH, res_w);
|
||||
capture_camera.set(CV_CAP_PROP_FRAME_HEIGHT, res_h);
|
||||
}
|
||||
|
||||
QString res_str;
|
||||
@@ -371,8 +373,7 @@ bool AC_MainWindow::startCamera(int res, int dev, const QString &outdir, bool re
|
||||
if(recording) {
|
||||
video_file_name = output_name;
|
||||
#if defined(__linux__) || defined(__APPLE__)
|
||||
writer = cv::VideoWriter(output_name.toStdString(), CV_FOURCC('M', 'P', '4', 'V')
|
||||
/*CV_FOURCC('X','V','I','D')*/, video_fps, cv::Size(res_w, res_h), true);
|
||||
writer = cv::VideoWriter(output_name.toStdString(), (type == 0) ? CV_FOURCC('M', 'P', '4', 'V') : CV_FOURCC('X','V','I','D'), video_fps, cv::Size(res_w, res_h), true);
|
||||
#else
|
||||
writer = cv::VideoWriter(output_name.toStdString(), -1, video_fps, cv::Size(res_w, res_h), true);
|
||||
#endif
|
||||
@@ -394,7 +395,7 @@ bool AC_MainWindow::startCamera(int res, int dev, const QString &outdir, bool re
|
||||
return true;
|
||||
}
|
||||
|
||||
bool AC_MainWindow::startVideo(const QString &filename, const QString &outdir, bool record) {
|
||||
bool AC_MainWindow::startVideo(const QString &filename, const QString &outdir, bool record, int type) {
|
||||
programMode = MODE_VIDEO;
|
||||
controls_stop->setEnabled(true);
|
||||
controls_pause->setEnabled(true);
|
||||
@@ -439,7 +440,7 @@ bool AC_MainWindow::startVideo(const QString &filename, const QString &outdir, b
|
||||
|
||||
QString ext;
|
||||
#if defined(__APPLE__) || defined(__linux__)
|
||||
ext = ".mov";
|
||||
ext = (type == 0) ? ".mov" : ".avi";
|
||||
#else
|
||||
ext = ".avi";
|
||||
#endif
|
||||
@@ -452,7 +453,7 @@ bool AC_MainWindow::startVideo(const QString &filename, const QString &outdir, b
|
||||
if(recording) {
|
||||
video_file_name = output_name;
|
||||
#if defined(__linux__) || defined(__APPLE__)
|
||||
writer = cv::VideoWriter(output_name.toStdString(), /*CV_FOURCC('X','V','I','D')*/ CV_FOURCC('M', 'P', '4', 'V'), video_fps, cv::Size(res_w, res_h), true);
|
||||
writer = cv::VideoWriter(output_name.toStdString(), (type == 0) ? CV_FOURCC('M', 'P', '4', 'V') : CV_FOURCC('X','V','I','D'), video_fps, cv::Size(res_w, res_h), true);
|
||||
#else
|
||||
writer = cv::VideoWriter(output_name.toStdString(), -1, video_fps, cv::Size(res_w, res_h), true);
|
||||
#endif
|
||||
|
||||
@@ -14,8 +14,8 @@ public:
|
||||
AC_MainWindow(QWidget *parent = 0);
|
||||
~AC_MainWindow();
|
||||
void Log(const QString &s);
|
||||
bool startCamera(int res, int dev, const QString &outdir, bool record);
|
||||
bool startVideo(const QString &filename, const QString &outdir, bool record);
|
||||
bool startCamera(int res, int dev, const QString &outdir, bool record, int type);
|
||||
bool startVideo(const QString &filename, const QString &outdir, bool record, int type);
|
||||
QListWidget *filters, *custom_filters;
|
||||
QPushButton *btn_add, *btn_remove, *btn_moveup, *btn_movedown;
|
||||
QTextEdit *log_text;
|
||||
|
||||
@@ -34,11 +34,19 @@ void CaptureCamera::createControls() {
|
||||
output_dir->setGeometry(110, 65, 175, 20);
|
||||
output_dir->setReadOnly(true);
|
||||
chk_record = new QCheckBox(tr("Record"), this);
|
||||
chk_record->setGeometry(10, 95, 100, 20);
|
||||
chk_record->setGeometry(10, 95, 70, 20);
|
||||
btn_start = new QPushButton(tr("Start"), this);
|
||||
btn_start->setGeometry(185, 95, 100, 20);
|
||||
connect(btn_start, SIGNAL(clicked()), this, SLOT(btn_Start()));
|
||||
connect(btn_select, SIGNAL(clicked()), this, SLOT(btn_Select()));
|
||||
|
||||
#if defined(__APPLE__) || defined(__linux__)
|
||||
video_type = new QComboBox(this);
|
||||
video_type->setGeometry(80, 90, 90, 25);
|
||||
video_type->addItem("MOV");
|
||||
video_type->addItem("AVI");
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void CaptureCamera::setParent(AC_MainWindow *p) {
|
||||
@@ -55,8 +63,16 @@ void CaptureCamera::btn_Select() {
|
||||
}
|
||||
|
||||
void CaptureCamera::btn_Start() {
|
||||
|
||||
int vtype;
|
||||
#if defined(__APPLE__) || defined(__linux__)
|
||||
vtype = video_type->currentIndex();
|
||||
#else
|
||||
vtype = 1;
|
||||
#endif
|
||||
|
||||
if(output_dir->text().length() > 0) {
|
||||
if(win_parent->startCamera(combo_res->currentIndex(), combo_device->currentIndex(), output_dir->text(), chk_record->isChecked())) {
|
||||
if(win_parent->startCamera(combo_res->currentIndex(), combo_device->currentIndex(), output_dir->text(), chk_record->isChecked(), vtype)) {
|
||||
hide();
|
||||
|
||||
} else {
|
||||
@@ -89,7 +105,14 @@ void CaptureVideo::createControls() {
|
||||
btn_start = new QPushButton(tr("Start"), this);
|
||||
btn_start->setGeometry(10, 60, 100, 20);
|
||||
chk_record = new QCheckBox(tr("Record"), this);
|
||||
chk_record->setGeometry(110, 60, 100, 20);
|
||||
chk_record->setGeometry(110, 60, 80, 20);
|
||||
|
||||
#if defined(__APPLE__) || defined(__linux__)
|
||||
video_type = new QComboBox(this);
|
||||
video_type->setGeometry(180, 55, 120, 25);
|
||||
video_type->addItem("MOV");
|
||||
video_type->addItem("AVI");
|
||||
#endif
|
||||
|
||||
connect(btn_setedit, SIGNAL(clicked()), this, SLOT(btn_SetSourceFile()));
|
||||
connect(btn_setout, SIGNAL(clicked()), this, SLOT(btn_SetOutputDir()));
|
||||
@@ -122,7 +145,14 @@ void CaptureVideo::btn_Start() {
|
||||
return;
|
||||
}
|
||||
|
||||
if(win_parent->startVideo(edit_src->text(), edit_outdir->text(), chk_record->isChecked())) {
|
||||
int num;
|
||||
#if defined(__APPLE__) || defined(__linux__)
|
||||
num = video_type->currentIndex();
|
||||
#else
|
||||
num = 1;
|
||||
#endif
|
||||
|
||||
if(win_parent->startVideo(edit_src->text(), edit_outdir->text(), chk_record->isChecked(), num)) {
|
||||
hide();
|
||||
} else {
|
||||
QMessageBox::information(this, tr("Could not open file"), tr("Could not open video file, an error has occured"));
|
||||
|
||||
@@ -16,8 +16,7 @@ public:
|
||||
QLineEdit *output_dir;
|
||||
QCheckBox *chk_record;
|
||||
QPushButton *btn_start, *btn_select;
|
||||
|
||||
|
||||
QComboBox *video_type;
|
||||
public slots:
|
||||
void btn_Select();
|
||||
void btn_Start();
|
||||
@@ -36,6 +35,8 @@ public:
|
||||
QLineEdit *edit_src, *edit_outdir;
|
||||
QPushButton *btn_setedit, *btn_setout, *btn_start;
|
||||
QCheckBox *chk_record;
|
||||
QComboBox *video_type;
|
||||
|
||||
public slots:
|
||||
void btn_SetSourceFile();
|
||||
void btn_SetOutputDir();
|
||||
|
||||
Reference in New Issue
Block a user