equal
deleted
inserted
replaced
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 |