qtmobility/plugins/multimedia/gstreamer/qgstreamervideooverlay.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
    40 ****************************************************************************/
    40 ****************************************************************************/
    41 
    41 
    42 #include "qgstreamervideooverlay.h"
    42 #include "qgstreamervideooverlay.h"
    43 #include "qvideosurfacegstsink.h"
    43 #include "qvideosurfacegstsink.h"
    44 
    44 
    45 #include <QtMultimedia/qvideosurfaceformat.h>
    45 #include <qvideosurfaceformat.h>
    46 
    46 
    47 #include "qx11videosurface.h"
    47 #include "qx11videosurface.h"
       
    48 
       
    49 #ifndef QT_NO_XVIDEO
    48 
    50 
    49 QGstreamerVideoOverlay::QGstreamerVideoOverlay(QObject *parent)
    51 QGstreamerVideoOverlay::QGstreamerVideoOverlay(QObject *parent)
    50     : QVideoWindowControl(parent)
    52     : QVideoWindowControl(parent)
    51     , m_surface(new QX11VideoSurface)
    53     , m_surface(new QX11VideoSurface)
    52     , m_videoSink(reinterpret_cast<GstElement*>(QVideoSurfaceGstSink::createSink(m_surface)))
    54     , m_videoSink(reinterpret_cast<GstElement*>(QVideoSurfaceGstSink::createSink(m_surface)))
   193     QRect formatViewport = m_surface->surfaceFormat().viewport();
   195     QRect formatViewport = m_surface->surfaceFormat().viewport();
   194 
   196 
   195     switch (m_aspectRatioMode) {
   197     switch (m_aspectRatioMode) {
   196     case Qt::KeepAspectRatio:
   198     case Qt::KeepAspectRatio:
   197         {
   199         {
   198             QSize size = formatViewport.size();
   200             QSize size = m_surface->surfaceFormat().sizeHint();
   199             size.scale(m_displayRect.size(), Qt::KeepAspectRatio);
   201             size.scale(m_displayRect.size(), Qt::KeepAspectRatio);
   200 
   202 
   201             QRect rect(QPoint(0, 0), size);
   203             QRect rect(QPoint(0, 0), size);
   202             rect.moveCenter(m_displayRect.center());
   204             rect.moveCenter(m_displayRect.center());
   203 
   205 
   210         m_surface->setViewport(formatViewport);
   212         m_surface->setViewport(formatViewport);
   211         break;
   213         break;
   212     case Qt::KeepAspectRatioByExpanding:
   214     case Qt::KeepAspectRatioByExpanding:
   213         {
   215         {
   214             QSize size = m_displayRect.size();
   216             QSize size = m_displayRect.size();
   215             size.scale(formatViewport.size(), Qt::KeepAspectRatio);
   217             size.scale(m_surface->surfaceFormat().sizeHint(), Qt::KeepAspectRatio);
   216 
   218 
   217             QRect viewport(QPoint(0, 0), size);
   219             QRect viewport(QPoint(0, 0), size);
   218             viewport.moveCenter(formatViewport.center());
   220             viewport.moveCenter(formatViewport.center());
   219 
       
   220             m_surface->setDisplayRect(m_displayRect);
   221             m_surface->setDisplayRect(m_displayRect);
   221             m_surface->setViewport(viewport);
   222             m_surface->setViewport(viewport);
   222         }
   223         }
   223         break;
   224         break;
   224     };
   225     };
   225 }
   226 }
       
   227 
       
   228 #endif //QT_NO_XVIDEO