diff options
author | Yoann Lopes <yoann.lopes@digia.com> | 2012-10-11 19:19:31 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-10-17 15:28:16 +0200 |
commit | abcc1077318bda86367efeefc12a16f3455fc202 (patch) | |
tree | f49f749768cac747c699091a9b2f2fe33c7482a1 /src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h | |
parent | bce5525cbbbf6f167fe05831f55218c001d042fc (diff) |
Make QGstreamerPlayerSession 'VAAPI-aware'.
At the moment the GStreamer player pipeline is not setup properly when
the VAAPI plugin is available, resulting in no video being shown.
Added 'video/x-surface' as one of the default raw formats for the
decodebin.
Don't use vaapidecode when the video sink is not compatible.
This is a preliminary patch to support VAAPI. In the current state
vaapidecode will never be used as none of our video sinks support the
video/x-surface format.
Change-Id: I39f339b483d4052dd1e29c2b0ef06343d5670224
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Diffstat (limited to 'src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h')
-rw-r--r-- | src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h index a9194d446..0b4041f58 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h @@ -66,6 +66,12 @@ class QGstreamerVideoRendererInterface; class QGstreamerVideoProbeControl; class QGstreamerAudioProbeControl; +typedef enum { + GST_AUTOPLUG_SELECT_TRY, + GST_AUTOPLUG_SELECT_EXPOSE, + GST_AUTOPLUG_SELECT_SKIP +} GstAutoplugSelectResult; + class QGstreamerPlayerSession : public QObject, public QGstreamerBusMessageFilter { @@ -182,6 +188,7 @@ private: static void insertColorSpaceElement(GstElement *element, gpointer data); static void handleElementAdded(GstBin *bin, GstElement *element, QGstreamerPlayerSession *session); static void handleStreamsChange(GstBin *bin, gpointer user_data); + static GstAutoplugSelectResult handleAutoplugSelect(GstBin *bin, GstPad *pad, GstCaps *caps, GstElementFactory *factory, QGstreamerPlayerSession *session); void processInvalidMedia(QMediaPlayer::Error errorCode, const QString& errorString); |