-From 4f9e752e6ecd4e2058f5d4f43578e5b21b6efbf8 Mon Sep 17 00:00:00 2001
+From b16e42196969a6277e7b8902488fad1950a52d0d Mon Sep 17 00:00:00 2001
From: Yoann Lopes <yoann.lopes@digia.com>
Date: Thu, 31 Oct 2013 15:06:30 +0100
Subject: [PATCH 1/2] Initial porting effort to GStreamer 1.0.
if (m_duration != duration) {
m_duration = duration;
diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
-index 850f8c1..f4e2383 100644
+index 0197839..128ab58 100644
--- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
-@@ -724,7 +724,11 @@ qint64 CameraBinSession::duration() const
- GstFormat format = GST_FORMAT_TIME;
- gint64 duration = 0;
-
+@@ -728,7 +728,11 @@ qint64 CameraBinSession::duration() const
+ if (fileSink) {
+ GstFormat format = GST_FORMAT_TIME;
+ gint64 duration = 0;
+#if GST_CHECK_VERSION(1,0,0)
-+ if ( m_camerabin && gst_element_query_duration(m_camerabin, format, &duration))
++ bool ret = gst_element_query_duration(fileSink, format, &duration);
+#else
- if ( m_camerabin && gst_element_query_position(m_camerabin, &format, &duration))
+ bool ret = gst_element_query_position(fileSink, &format, &duration);
+#endif
- return duration / 1000000;
- else
- return 0;
-@@ -757,8 +761,13 @@ void CameraBinSession::setMetaData(const QMap<QByteArray, QVariant> &data)
+ gst_object_unref(GST_OBJECT(fileSink));
+ if (ret)
+ return duration / 1000000;
+@@ -765,8 +769,13 @@ void CameraBinSession::setMetaData(const QMap<QByteArray, QVariant> &data)
if (m_camerabin) {
GstIterator *elements = gst_bin_iterate_all_by_interface(GST_BIN(m_camerabin), GST_TYPE_TAG_SETTER);
gst_tag_setter_reset_tags(GST_TAG_SETTER(element));
QMapIterator<QByteArray, QVariant> it(data);
-@@ -819,7 +828,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message)
+@@ -827,7 +836,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message)
if (gm && GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT) {
if (m_captureMode == QCamera::CaptureStillImage &&
st = gst_message_get_structure(gm);
if (gst_structure_has_field_typed(st, "buffer", GST_TYPE_BUFFER)) {
-@@ -829,7 +842,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message)
+@@ -837,7 +850,11 @@ bool CameraBinSession::processSyncMessage(const QGstreamerMessage &message)
QImage img;
if (caps) {
GstStructure *structure = gst_caps_get_structure(caps, 0);
gint width = 0;
-@@ -1102,7 +1119,11 @@ QList< QPair<int,int> > CameraBinSession::supportedFrameRates(const QSize &frame
+@@ -1110,7 +1127,11 @@ QList< QPair<int,int> > CameraBinSession::supportedFrameRates(const QSize &frame
gst_structure_remove_all_fields(structure);
gst_structure_set_value(structure, "framerate", &rate);
}
for (uint i=0; i<gst_caps_get_size(caps); i++) {
-@@ -1222,7 +1243,11 @@ QList<QSize> CameraBinSession::supportedResolutions(QPair<int,int> rate,
+@@ -1230,7 +1251,11 @@ QList<QSize> CameraBinSession::supportedResolutions(QPair<int,int> rate,
gst_structure_set_value(structure, "width", &w);
gst_structure_set_value(structure, "height", &h);
}