Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

ffmpegurisessionbuilder.cpp Example File
ffmpeg/ffmpegurisessionbuilder.cpp

    /****************************************************************************
    **
    ** This file is part of the Qt Extended Commercial Package.
    **
    ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
    **
    ** $QT_EXTENDED_DUAL_LICENSE$
    **
    ****************************************************************************/

    #include <QUrl>
    #include <QSettings>
    #include <QMediaSessionRequest>
    #include <QDebug>

    #include "ffmpegengine.h"
    #include "ffmpegplaybinsession.h"
    #include "ffmpegurisessionbuilder.h"

    namespace ffmpeg
    {

    // {{{ UriSessionBuilderPrivate
    class UriSessionBuilderPrivate
    {
    public:
        Engine*                             engine;
        QMediaSessionBuilder::Attributes    attributes;
        QMediaDevice*                       outputDevice;
    };
    // }}}

    // {{{ UriSessionBuilder

    /*!
        \class ffmpeg::UriSessionBuilder
        \internal
    */

    UriSessionBuilder::UriSessionBuilder(Engine* engine):
        d(new UriSessionBuilderPrivate)
    {
        d->engine = engine;

        // ffmpeg does not support dynamically discovering the mime types and
        // uri schemes.  Grab them from QSettings
        QSettings   settings("Trolltech", "ffmpeg");
        settings.beginGroup("Simple");

        // Supported URI Schemes
        d->attributes.insert("uriSchemes", settings.value("UriSchemes").toStringList());

        // Supported mime types
        d->attributes.insert("mimeTypes", settings.value("MimeTypes").toStringList());
        d->outputDevice = 0;
    }

    UriSessionBuilder::~UriSessionBuilder()
    {
        delete d;
    }

    QString UriSessionBuilder::type() const
    {
        return "com.trolltech.qtopia.uri";
    }

    QMediaSessionBuilder::Attributes const& UriSessionBuilder::attributes() const
    {
        qWarning()<<d->attributes;
        return d->attributes;
    }

    QMediaServerSession* UriSessionBuilder::createSession(QMediaSessionRequest sessionRequest)
    {
        QUrl            url;
        PlaybinSession* mediaSession = 0;

        sessionRequest >> url;

        if (url.isValid())
        {
            mediaSession = new PlaybinSession(d->engine,
                                              sessionRequest.id(),
                                              url,d->outputDevice);

            if (!mediaSession->isValid())
            {
                delete mediaSession;
                mediaSession = 0;
            } else {
                QMediaServerSession* session;
                session = static_cast<QMediaServerSession*>(mediaSession);
                d->engine->registerSession(session);
            }
        }

        return mediaSession;
    }

    void UriSessionBuilder::destroySession(QMediaServerSession* mediaSession)
    {
        delete mediaSession;
    }
    // }}}

    }   // ns ffmpeg

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt qtextended4.4
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web