![]() |
Wismas
1.1
BTS SN-IR La Salle Avignon 2017
|
#include <video.h>
Connecteurs publics | |
void | acquerir (int duree=0) |
void | arreter () |
void | progresser () |
void | demarre () |
void | arrete (int) |
void | readyRead () |
Signaux | |
void | fini () |
void | progress (int) |
Fonctions membres publiques | |
Video (QObject *parent=0, QString url="", QString chemin="", QString fichier="enregistrement", QString extension="mjpg") | |
Video (QObject *parent=0, QString nom="", QString url="", QString chemin="", QString fichier="enregistrement", QString extension="mjpg") | |
~Video () | |
void | setNom (QString nom) |
void | setUrl (QString url) |
QString | getFichier () const |
void | setFichier (QString chemin, QString fichier, QString extension, QString duree) |
Attributs privés | |
QString | programme |
QStringList | arguments |
QProcess * | processus |
QString | nom |
QString | url |
QString | chemin |
QString | fichier |
QString | extension |
QString | fichierVideo |
QString | output |
QTimer * | timer |
int | duree |
bool | record |
int | progression |
Video::Video | ( | QObject * | parent = 0 , |
QString | url = "" , |
||
QString | chemin = "" , |
||
QString | fichier = "enregistrement" , |
||
QString | extension = "mjpg" |
||
) |
Video::Video | ( | QObject * | parent = 0 , |
QString | nom = "" , |
||
QString | url = "" , |
||
QString | chemin = "" , |
||
QString | fichier = "enregistrement" , |
||
QString | extension = "mjpg" |
||
) |
Références arrete(), demarre(), processus, progresser(), et timer.
: QObject(parent), programme("cvlc"), arguments(""), processus(NULL), nom(nom), url(url), chemin(chemin), fichier(fichier), extension(extension), fichierVideo(""), timer(NULL), duree(0), record(false), progression(0) { //setFichier(chemin, fichier, extension); processus = new QProcess(this); /* Crée le processus */ //processus->setProcessChannelMode(QProcess::MergedChannels); timer = new QTimer(this); /* crée le timer */ /* signal/slots */ connect(timer, SIGNAL(timeout()), this, SLOT(progresser())); connect(processus, SIGNAL(started()), this, SLOT(demarre())); connect(processus, SIGNAL(finished(int)), this, SLOT(arrete(int))); //connect(processus, SIGNAL(readyRead()), this, SLOT(readyRead())); }
Video::~Video | ( | ) |
{ }
void Video::acquerir | ( | int | duree = 0 | ) | [slot] |
Acquisition vidéo
Références arguments, chemin, duree, extension, fichier, nom, processus, programme, progression, record, setFichier(), et timer.
Référencé par Camera::enregistrer().
{ if(duree != 0) { setFichier(chemin, fichier, extension, QString::number((duree/1000)-1)); this->duree = duree; this->progression = 0; this->record = true; timer->start(duree/100); processus->start(programme, arguments); /* Démarre le processus avec le programme cvlc en arrière plan */ qDebug() << Q_FUNC_INFO << nom << programme << arguments; } }
void Video::arrete | ( | int | etat | ) | [slot] |
void Video::arreter | ( | ) | [slot] |
void Video::demarre | ( | ) | [slot] |
void Video::fini | ( | ) | [signal] |
Référencé par arrete().
QString Video::getFichier | ( | ) | const |
Obtenir fichier vidéo
Références fichierVideo.
Référencé par Camera::enregistrer(), et Camera::terminer().
{ return fichierVideo; }
void Video::progress | ( | int | ) | [signal] |
Référencé par progresser().
void Video::progresser | ( | ) | [slot] |
Calcule l'avancement de la progression en fonction de la durée, arrêt de la progression si égal à la durée
Références arreter(), duree, progress(), et progression.
Référencé par Video().
{ if(progression == duree) { arreter(); } else { progression += (duree/100); //qDebug() << Q_FUNC_INFO << "progression " << progression << "duree" << duree << "pourcentage" << (((double)progression/(double)duree)*100.); emit progress(((double)progression/(double)duree)*100.); } }
void Video::readyRead | ( | ) | [slot] |
void Video::setFichier | ( | QString | chemin, |
QString | fichier, | ||
QString | extension, | ||
QString | duree | ||
) |
Défini le fichier vidéo
Références arguments, chemin, duree, extension, fichier, fichierVideo, et url.
Référencé par acquerir().
{ if(chemin.length() == 0) this->chemin = qApp->applicationDirPath(); else this->chemin = chemin; if(fichier.length() == 0) this->fichier = "enregistrement"; else this->fichier = fichier; if(extension.length() == 0) this->extension = "mjpg"; else this->extension = extension; QDateTime maintenant = QDateTime::currentDateTime(); QString format="yyyy-MM-dd_hh:mm:ss"; /* Horodate */ /* pour le format mjpg */ //fichierVideo = "file/ts:" + this->chemin + "/" + this->fichier + "_" + maintenant.toString(format) + "." + this->extension; /* pour le format mp4 */ fichierVideo = this->chemin + this->fichier + "_" + maintenant.toString(format) + "." + this->extension; QString option; // pour la commande clvc //qDebug() << Q_FUNC_INFO << nom << QString::fromUtf8("%1").arg(fichierVideo); arguments.clear(); /* pour le format mjpg */ //arguments << this->url << "--sout" << fichierVideo; /* pour le format mp4 */ option += QString::fromLocal8Bit("--sout=#transcode{vcodec=mp4v,acodec=none}:std{mux=mp4,dst=\"") + fichierVideo + QString::fromLocal8Bit("\",access=file}"); arguments << this->url << option << ("--run-time="+duree) /*<< ("--stop-time="+duree)*/; //qDebug() << Q_FUNC_INFO << arguments; }
void Video::setNom | ( | QString | nom | ) |
void Video::setUrl | ( | QString | url | ) |
Défini l'Url
Références arguments, fichierVideo, et url.
QStringList Video::arguments [private] |
Référencé par acquerir(), arreter(), demarre(), setFichier(), et setUrl().
QString Video::chemin [private] |
Référencé par acquerir(), et setFichier().
int Video::duree [private] |
Référencé par acquerir(), progresser(), et setFichier().
QString Video::extension [private] |
Référencé par acquerir(), et setFichier().
QString Video::fichier [private] |
Référencé par acquerir(), et setFichier().
QString Video::fichierVideo [private] |
Référencé par getFichier(), setFichier(), et setUrl().
QString Video::nom [private] |
Référencé par acquerir(), arreter(), et demarre().
QString Video::output [private] |
Référencé par readyRead().
QProcess* Video::processus [private] |
Référencé par acquerir(), arreter(), readyRead(), et Video().
QString Video::programme [private] |
Référencé par acquerir(), arreter(), et demarre().
int Video::progression [private] |
Référencé par acquerir(), et progresser().
bool Video::record [private] |
Référencé par acquerir(), et arreter().
QTimer* Video::timer [private] |
Référencé par acquerir(), arreter(), et Video().
QString Video::url [private] |
Référencé par setFichier(), et setUrl().