Wismas  1.1
BTS SN-IR La Salle Avignon 2017
Connecteurs publics | Signaux | Fonctions membres publiques | Attributs privés
Référence de la classe Video

#include <video.h>

Liste de tous les membres

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

Documentation des constructeurs et destructeur

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()));
}
             {
}

Documentation des fonctions membres

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]

Références fini().

Référencé par Video().

                           {
    Q_UNUSED(etat)
    emit fini();
}
void Video::arreter ( ) [slot]

Arrête l'enregistrement

Références arguments, nom, processus, programme, record, et timer.

Référencé par Camera::arreter(), et progresser().

                    { 
    if(record == true)
    {
        if(timer->isActive())
            timer->stop();
        processus->kill();
        record = false;
        qDebug() << Q_FUNC_INFO << nom << programme << arguments;
    }
}
void Video::demarre ( ) [slot]

Références arguments, nom, et programme.

Référencé par Video().

{
    qDebug() << Q_FUNC_INFO << nom << programme << arguments;
}
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]

Références output, et processus.

{
    output += processus->readAll();
    qDebug() << Q_FUNC_INFO << output;
}
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.

                              { 
    this->url = url; /* Déclare la variable url */
    arguments.clear(); /* Efface les arguments */
    arguments << this->url << "--sout" << fichierVideo;
}

Documentation des données membres

QStringList Video::arguments [private]
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().


La documentation de cette classe a été générée à partir des fichiers suivants :
 Tout Classes Fichiers Fonctions Variables Définitions de type Macros