[gstreamermm] plugins: wrap almost all base and core plugins



commit 772e0c4e4db9adf61fd96ab1e0946e49ab15ddac
Author: Marcin Kolny <marcin kolny flytronic pl>
Date:   Thu Jul 30 11:53:09 2015 +0200

    plugins: wrap almost all base and core plugins
    
        * .gitignore: add autogenerated files to ignore list
        * configure.ac: update plugins list, increase required gstreamer
          version.
        * gstreamer/src/encodingprofile.{ccg|hg}: wrap GstEncodingProfile
          structure.
        * gstreamer/src/enums.{ccg|hg}: add some enums shared with multiple
          plugins.
        * gstreamer/src/filelist.am: add new files to a build.
        * gstreamer/src/gst_enums.defs:
        * gstreamer/src/gst_enums.defs.patch: handwrite some enums.
        * tools/extra_defs_gen/generate_plugin_gmmproc_file.cc: minor.
        * tools/m4/convert_gst.m4:
        * tools/plugingen_gstreamermm.m4: add some enum conversions.

 .gitignore                                         |   38 +++++--
 configure.ac                                       |   20 +++-
 gstreamer/src/encodingprofile.ccg                  |   20 ++++
 gstreamer/src/encodingprofile.hg                   |   57 +++++++++
 gstreamer/src/enums.ccg                            |   18 +++
 gstreamer/src/enums.hg                             |   27 +++++
 gstreamer/src/filelist.am                          |    1 +
 gstreamer/src/gst_enums.defs                       |  120 +++++++++++++++++++-
 gstreamer/src/gst_enums.defs.patch                 |   63 +++++++----
 .../extra_defs_gen/generate_plugin_gmmproc_file.cc |    4 +-
 tools/m4/convert_gst.m4                            |    9 ++
 tools/m4/plugingen_gstreamermm.m4                  |   10 ++-
 12 files changed, 353 insertions(+), 34 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 1d7a5e8..5df7680 100644
--- a/.gitignore
+++ b/.gitignore
@@ -89,16 +89,24 @@ gstreamer/gstreamermm/colorbalance.cc
 gstreamer/gstreamermm/colorbalance.h
 gstreamer/gstreamermm/colorbalancechannel.cc
 gstreamer/gstreamermm/colorbalancechannel.h
+gstreamer/gstreamermm/concat.cc
+gstreamer/gstreamermm/concat.h
 gstreamer/gstreamermm/context.cc
 gstreamer/gstreamermm/context.h
 gstreamer/gstreamermm/discoverer.cc
 gstreamer/gstreamermm/discoverer.h
 gstreamer/gstreamermm/discovererinfo.cc
 gstreamer/gstreamermm/discovererinfo.h
+gstreamer/gstreamermm/downloadbuffer.cc
+gstreamer/gstreamermm/downloadbuffer.h
 gstreamer/gstreamermm/element.cc
 gstreamer/gstreamermm/element.h
 gstreamer/gstreamermm/elementfactory.cc
 gstreamer/gstreamermm/elementfactory.h
+gstreamer/gstreamermm/encodebin.cc
+gstreamer/gstreamermm/encodebin.h
+gstreamer/gstreamermm/encodingprofile.cc
+gstreamer/gstreamermm/encodingprofile.h
 gstreamer/gstreamermm/enums.cc
 gstreamer/gstreamermm/enums.h
 gstreamer/gstreamermm/error.cc
@@ -150,6 +158,8 @@ gstreamer/gstreamermm/parse.cc
 gstreamer/gstreamermm/parse.h
 gstreamer/gstreamermm/pipeline.cc
 gstreamer/gstreamermm/pipeline.h
+gstreamer/gstreamermm/playsink.cc
+gstreamer/gstreamermm/playsink.h
 gstreamer/gstreamermm/plugin.cc
 gstreamer/gstreamermm/plugin.h
 gstreamer/gstreamermm/pluginfeature.cc
@@ -168,6 +178,12 @@ gstreamer/gstreamermm/sample.cc
 gstreamer/gstreamermm/sample.h
 gstreamer/gstreamermm/segment.cc
 gstreamer/gstreamermm/segment.h
+gstreamer/gstreamermm/socketsrc.cc
+gstreamer/gstreamermm/socketsrc.h
+gstreamer/gstreamermm/streamiddemux.cc
+gstreamer/gstreamermm/streamiddemux.h
+gstreamer/gstreamermm/streamsynchronizer.cc
+gstreamer/gstreamermm/streamsynchronizer.h
 gstreamer/gstreamermm/streamvolume.cc
 gstreamer/gstreamermm/streamvolume.h
 gstreamer/gstreamermm/structure.cc
@@ -247,8 +263,6 @@ gstreamer/gstreamermm/clockoverlay.cc
 gstreamer/gstreamermm/clockoverlay.h
 gstreamer/gstreamermm/decodebin.cc
 gstreamer/gstreamermm/decodebin.h
-gstreamer/gstreamermm/decodebin2.cc
-gstreamer/gstreamermm/decodebin2.h
 gstreamer/gstreamermm/fakesink.cc
 gstreamer/gstreamermm/fakesink.h
 gstreamer/gstreamermm/fakesrc.cc
@@ -295,8 +309,6 @@ gstreamer/gstreamermm/outputselector.cc
 gstreamer/gstreamermm/outputselector.h
 gstreamer/gstreamermm/playbin.cc
 gstreamer/gstreamermm/playbin.h
-gstreamer/gstreamermm/playbin2.cc
-gstreamer/gstreamermm/playbin2.h
 gstreamer/gstreamermm/queue.cc
 gstreamer/gstreamermm/queue.h
 gstreamer/gstreamermm/queue2.cc
@@ -390,10 +402,14 @@ gstreamer/src/cdparanoiasrc.ccg
 gstreamer/src/cdparanoiasrc.hg
 gstreamer/src/clockoverlay.ccg
 gstreamer/src/clockoverlay.hg
+gstreamer/src/concat.ccg
+gstreamer/src/concat.hg
 gstreamer/src/decodebin.ccg
 gstreamer/src/decodebin.hg
-gstreamer/src/decodebin2.ccg
-gstreamer/src/decodebin2.hg
+gstreamer/src/downloadbuffer.ccg
+gstreamer/src/downloadbuffer.hg
+gstreamer/src/encodebin.ccg
+gstreamer/src/encodebin.hg
 gstreamer/src/fakesink.ccg
 gstreamer/src/fakesink.hg
 gstreamer/src/fakesrc.ccg
@@ -440,12 +456,18 @@ gstreamer/src/oggmux.ccg
 gstreamer/src/oggmux.hg
 gstreamer/src/playbin.ccg
 gstreamer/src/playbin.hg
-gstreamer/src/playbin2.ccg
-gstreamer/src/playbin2.hg
+gstreamer/src/playsink.ccg
+gstreamer/src/playsink.hg
 gstreamer/src/queue.ccg
 gstreamer/src/queue.hg
 gstreamer/src/queue2.ccg
 gstreamer/src/queue2.hg
+gstreamer/src/socketsrc.ccg
+gstreamer/src/socketsrc.hg
+gstreamer/src/streamiddemux.ccg
+gstreamer/src/streamiddemux.hg
+gstreamer/src/streamsynchronizer.ccg
+gstreamer/src/streamsynchronizer.hg
 gstreamer/src/subtitleoverlay.ccg
 gstreamer/src/subtitleoverlay.hg
 gstreamer/src/tcpclientsink.ccg
diff --git a/configure.ac b/configure.ac
index 53d7bdd..9e6a3ae 100644
--- a/configure.ac
+++ b/configure.ac
@@ -13,9 +13,9 @@
 ## You should have received a copy of the GNU Lesser General Public License
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-m4_define([GSTMM_VERSION], [1.4.3])
+m4_define([GSTMM_VERSION], [1.5.2])
 
-AC_INIT([gstreamermm], [1.4.3],
+AC_INIT([gstreamermm], [1.5.2],
         [http://bugzilla.gnome.org/enter_bug.cgi?product=gstreamermm],
         [gstreamermm], [http://www.gtkmm.org/])
 AC_PREREQ([2.59])
@@ -111,6 +111,8 @@ MM_ARG_WITH_TAGFILE_DOC([pangomm-1.4.tag], [pangomm-1.4])
 # in lowercase with a .hg extension).
 AC_SUBST([GSTREAMERMM_CORE_PLUGIN_DEFS], ["\
 capsfilter|capsfilter|CapsFilter \
+concat|concat|Concat \
+downloadbuffer|downloadbuffer|DownloadBuffer \
 fakesink|fakesink|FakeSink \
 fakesrc|fakesrc|FakeSrc \
 fdsink|fdsink|FdSink \
@@ -122,13 +124,14 @@ identity|identity|Identity \
 inputselector|input-selector|InputSelector \
 multiqueue|multiqueue|MultiQueue \
 outputselector|output-selector|OutputSelector \
+streamiddemux|streamiddemux|StreamidDemux \
 queue|queue|Queue \
 queue2|queue2|Queue2 \
 tee|tee|Tee \
 typefindelement|typefind|TypeFindElement \
 valve|valve|Valve
 "])
-
+#audioresample|audioresample|AudioResample 
 AC_SUBST([GSTREAMERMM_BASE_PLUGIN_DEFS], ["\
 adder|adder|Adder \
 alsasink|alsasink|AlsaSink \
@@ -141,14 +144,24 @@ audiotestsrc|audiotestsrc|AudioTestSrc \
 cdparanoiasrc|cdparanoiasrc|CdParanoiaSrc \
 clockoverlay|clockoverlay|ClockOverlay \
 decodebin|decodebin|DecodeBin \
+encodebin|encodebin|EncodeBin \
 giosink|giosink|GioSink \
 giosrc|giosrc|GioSrc \
 giostreamsink|giostreamsink|GioStreamSink \
 giostreamsrc|giostreamsrc|GioStreamSrc \
+multifdsink|multifdsink|MultiFdSink \
+multisocketsink|multisocketsink|MultiSocketSink \
 oggdemux|oggdemux|OggDemux \
 oggmux|oggmux|OggMux \
 playbin|playbin|PlayBin \
+playsink|playsink|PlaySink \
+socketsrc|socketsrc|SocketSrc \
+streamsynchronizer|streamsynchronizer|StreamSynchronizer \
 subtitleoverlay|subtitleoverlay|SubtitleOverlay \
+tcpclientsink|tcpclientsink|TCPClientSink \
+tcpclientsrc|tcpclientsrc|TCPClientSrc \
+tcpserversink|tcpserversink|TCPServerSink \
+tcpserversrc|tcpserversrc|TCPServerSrc \
 textoverlay|textoverlay|TextOverlay \
 textrender|textrender|TextRender \
 theoradec|theoradec|TheoraDec \
@@ -156,6 +169,7 @@ theoraenc|theoraenc|TheoraEnc \
 theoraparse|theoraparse|TheoraParse \
 timeoverlay|timeoverlay|TimeOverlay \
 uridecodebin|uridecodebin|UriDecodeBin \
+videoconvert|videoconvert|VideoConvert \
 videorate|videorate|VideoRate \
 videoscale|videoscale|VideoScale \
 videotestsrc|videotestsrc|VideoTestSrc \
diff --git a/gstreamer/src/encodingprofile.ccg b/gstreamer/src/encodingprofile.ccg
new file mode 100644
index 0000000..b5aca84
--- /dev/null
+++ b/gstreamer/src/encodingprofile.ccg
@@ -0,0 +1,20 @@
+/* gstreamermm - a C++ wrapper for gstreamer
+ *
+ * Copyright 2008 The gstreamermm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include <gst/pbutils/encoding-profile.h>
+_PINCLUDE(gstreamermm/private/object_p.h)
\ No newline at end of file
diff --git a/gstreamer/src/encodingprofile.hg b/gstreamer/src/encodingprofile.hg
new file mode 100644
index 0000000..3452228
--- /dev/null
+++ b/gstreamer/src/encodingprofile.hg
@@ -0,0 +1,57 @@
+/* gstreamermm - a C++ wrapper for gstreamer
+ *
+ * Copyright 2008 The gstreamermm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
+#include <gst/gst.h>
+#include <gstreamermm/object.h>
+#include <gstreamermm/caps.h>
+
+_DEFS(gstreamermm,gst)
+
+namespace Gst
+{
+class EncodingProfile : public Gst::Object
+{
+  _CLASS_GOBJECT(EncodingProfile, GstEncodingProfile, GST_ENCODING_PROFILE, Gst::Object, GstObject)
+
+public:
+  _WRAP_METHOD(Glib::ustring get_name() const, gst_encoding_profile_get_name)
+  _WRAP_METHOD(Glib::ustring get_description() const, gst_encoding_profile_get_description)
+  _WRAP_METHOD(Glib::RefPtr<Gst::Caps> get_format(), gst_encoding_profile_get_format)
+  _WRAP_METHOD(Glib::RefPtr<const Gst::Caps> get_format() const, gst_encoding_profile_get_format)
+  _WRAP_METHOD(Glib::ustring get_preset() const, gst_encoding_profile_get_preset)
+  _WRAP_METHOD(Glib::ustring get_preset_name() const, gst_encoding_profile_get_preset_name)
+  _WRAP_METHOD(guint get_presence() const, gst_encoding_profile_get_presence)
+  _WRAP_METHOD(Glib::RefPtr<Gst::Caps> get_restriction(), gst_encoding_profile_get_restriction)
+  _WRAP_METHOD(Glib::RefPtr<const Gst::Caps> get_restriction() const, gst_encoding_profile_get_restriction, 
constversion)
+  _WRAP_METHOD(Glib::ustring get_file_extension() const, gst_encoding_profile_get_file_extension)
+  _WRAP_METHOD(void set_name(const Glib::ustring& name), gst_encoding_profile_set_name)
+  _WRAP_METHOD(void set_description(const Glib::ustring& name), gst_encoding_profile_set_description)
+  _WRAP_METHOD(void set_enabled(bool enabled), gst_encoding_profile_set_enabled)
+  _WRAP_METHOD(void set_format(const Glib::RefPtr<Gst::Caps>& format), gst_encoding_profile_set_format)
+  _WRAP_METHOD(void set_preset(const Glib::ustring& preset), gst_encoding_profile_set_preset)
+  _WRAP_METHOD(void set_preset_name(const Glib::ustring& preset_name), gst_encoding_profile_set_preset_name)
+  _WRAP_METHOD(void set_restriction(const Glib::RefPtr<Gst::Caps>& restriction), 
gst_encoding_profile_set_restriction)
+  _WRAP_METHOD(void set_presence(guint presence), gst_encoding_profile_set_presence)
+  _WRAP_METHOD(bool is_equal(const Glib::RefPtr<Gst::EncodingProfile>& profile2) const, 
gst_encoding_profile_is_equal)
+  _WRAP_METHOD(bool is_enabled() const, gst_encoding_profile_is_enabled)
+  _WRAP_METHOD(Glib::RefPtr<Gst::Caps> get_input_caps() const, gst_encoding_profile_get_input_caps)
+  _WRAP_METHOD(Glib::ustring get_type_nick() const, gst_encoding_profile_get_type_nick)
+};
+
+} // namespace Gst
diff --git a/gstreamer/src/enums.ccg b/gstreamer/src/enums.ccg
index ab60ed1..bae0c73 100644
--- a/gstreamer/src/enums.ccg
+++ b/gstreamer/src/enums.ccg
@@ -29,4 +29,22 @@ static GType gst_autoplug_select_result_get_type()
   return type;
 }
 
+static GType gst_multi_handle_sink_client_status_get_type()
+{
+  static GType const type = g_type_from_name("GstMultiHandleSinkClientStatus");
+  return type;
+}
+
+static GType gst_multi_handle_sink_sync_method_get_type()
+{
+  static GType const type = g_type_from_name("GstMultiHandleSinkSyncMethod");
+  return type;
+}
+
+static GType gst_play_flags_get_type()
+{
+  static GType const type = g_type_from_name("GstPlayFlags");
+  return type;
+}
+
 }
diff --git a/gstreamer/src/enums.hg b/gstreamer/src/enums.hg
index 782dd3c..79fe85e 100644
--- a/gstreamer/src/enums.hg
+++ b/gstreamer/src/enums.hg
@@ -31,6 +31,27 @@ enum GstAutoplugSelectResult
   GST_AUTOPLUG_SELECT_SKIP
 };
 
+enum GstMultiHandleSinkClientStatus
+{
+  GST_CLIENT_STATUS_OK,
+  GST_CLIENT_STATUS_CLOSED,
+  GST_CLIENT_STATUS_REMOVED,
+  GST_CLIENT_STATUS_SLOW,
+  GST_CLIENT_STATUS_ERROR,
+  GST_CLIENT_STATUS_DUPLICATE,
+  GST_CLIENT_STATUS_FLUSHING
+};
+
+enum GstMultiHandleSinkSyncMethod
+{
+  GST_SYNC_METHOD_LATEST,
+  GST_SYNC_METHOD_NEXT_KEYFRAME,
+  GST_SYNC_METHOD_LATEST_KEYFRAME,
+  GST_SYNC_METHOD_BURST,
+  GST_SYNC_METHOD_BURST_KEYFRAME,
+  GST_SYNC_METHOD_BURST_WITH_KEYFRAME
+};
+
 namespace Gst
 {
 
@@ -40,4 +61,10 @@ _WRAP_ENUM(State, GstState)
 // they are shared by more than one plug-in:
 _WRAP_ENUM(AutoplugSelectResult, GstAutoplugSelectResult)
 
+_WRAP_ENUM(MultiHandleSinkClientStatus, GstMultiHandleSinkClientStatus)
+
+_WRAP_ENUM(MultiHandleSinkSyncMethod, GstMultiHandleSinkSyncMethod)
+
+_WRAP_ENUM(PlayFlags, GstPlayFlags)
+
 } //namespace Gst
diff --git a/gstreamer/src/filelist.am b/gstreamer/src/filelist.am
index 06b6a37..f40a9cf 100644
--- a/gstreamer/src/filelist.am
+++ b/gstreamer/src/filelist.am
@@ -53,6 +53,7 @@ files_hg  =                     \
         discovererinfo.hg       \
         elementfactory.hg       \
         element.hg              \
+        encodingprofile.hg      \
         enums.hg                \
         error.hg                \
         event.hg                \
diff --git a/gstreamer/src/gst_enums.defs b/gstreamer/src/gst_enums.defs
index 2db51cd..7e5ca8f 100644
--- a/gstreamer/src/gst_enums.defs
+++ b/gstreamer/src/gst_enums.defs
@@ -6674,7 +6674,87 @@
   )
 )
 
-;; Handwritten for MultiFdSink plugin (values taken from output of
+;; Handwritten for EncodeBin plugin (values taken from file 
+;; gst-plugins-base/gst/encoding/gstencodebin.c, enum used for 'flags' property)
+(define-enum-extended EncodeBinFlags
+  (in-module "Gst")
+  (c-name "GstEncodeBinFlags")
+  (values
+    '("no-audio-conversion" "GST_ENCODEBIN_FLAG_NO_AUDIO_CONVERSION" "1<<0")
+    '("no-video-conversion" "GST_ENCODEBIN_FLAG_NO_VIDEO_CONVERSION" "1<<1")
+  )
+)
+
+;; Handwritten for MultiSocketSink plugin (values taken from file 
+;; gst-plugins-base/gst/tcp/gstmultihandlesink.c, enum used for 'client-removed' signal)
+(define-enum-extended MultiHandleSinkClientStatus
+  (in-module "Gst")
+  (c-name "GstMultiHandleSinkClientStatus")
+  (values
+    '("ok" "GST_CLIENT_STATUS_OK" "0")
+    '("closed" "GST_CLIENT_STATUS_CLOSED" "1")
+    '("removed" "GST_CLIENT_STATUS_REMOVED" "2")
+    '("slow" "GST_CLIENT_STATUS_SLOW" "3")
+    '("error" "GST_CLIENT_STATUS_ERROR" "4")
+    '("duplicate" "GST_CLIENT_STATUS_DUPLICATE" "5")
+    '("flushing" "GST_CLIENT_STATUS_FLUSHING" "6")
+  )
+)
+
+;; Handwritten for PlaySink plugin (values taken from file 
+;; gst-plugins-base/gst/playback/gstplaysink.c, enum used for 'send-event-mode' property)
+(define-enum-extended PlaySinkSendEventMode
+  (in-module "Gst")
+  (c-name "GstPlaySinkSendEventMode")
+  (values
+    '("default" "MODE_DEFAULT" "0")
+    '("first" "MODE_FIRST" "1")
+  )
+)
+
+;; Handwritten for the filesink plug-in (Gst::FileSink).
+(define-enum-extended FileSinkBufferMode
+  (in-module "Gst")
+  (c-name "GstFileSinkBufferMode")
+  (values
+    '("default" "GST_FILE_SINK_BUFFER_MODE_DEFAULT" "-1")
+    '("full" "GST_FILE_SINK_BUFFER_MODE_FULL" "0")
+    '("line" "GST_FILE_SINK_BUFFER_MODE_LINE" "1")
+    '("unbuffered" "GST_FILE_SINK_BUFFER_MODE_UNBUFFERED" "2")
+  )
+)
+
+;; Handwritten for CdParanoiaSrc plugin (values taken from output of
+;; `gst-inspect cdparanoiasrc' -- "paranoia-mode" property information)
+(define-enum-extended CdParanoiaMode
+  (in-module "Gst")
+  (c-name "GstCdParanoiaMode")
+  (values
+    '("disable" "GST_PARANOIA_MODE_DISABLE" "1<<0")
+    '("fragment" "GST_PARANOIA_MODE_FRAGMENT" "1<<1")
+    '("overlap" "GST_PARANOIA_MODE_OVERLAP" "1<<2")
+    '("scratch" "GST_PARANOIA_MODE_SCRATCH" "1<<3")
+    '("repair" "GST_PARANOIA_MODE_REPAIR" "1<<4")
+    '("full" "GST_PARANOIA_MODE_FULL" "0xff")
+  )
+)
+
+;; Handwritten for MultiSocketSink plugin (values taken from output of
+;; `gst-inspect multisocketsink' -- "sync-method" property information)
+(define-enum-extended MultiHandleSinkSyncMethod
+  (in-module "Gst")
+  (c-name "GstMultiHandleSinkSyncMethod")
+  (values
+    '("latest" "GST_SYNC_METHOD_LATEST" "0")
+    '("next-keyframe" "GST_SYNC_METHOD_NEXT_KEYFRAME" "1")
+    '("latest-keyframe" "GST_SYNC_METHOD_LATEST_KEYFRAME" "2")
+    '("burst" "GST_SYNC_METHOD_BURST" "3")
+    '("burst-keyframe" "GST_SYNC_METHOD_BURST_KEYFRAME" "4")
+    '("burst-with-keyframe" "GST_SYNC_METHOD_BURST_WITH_KEYFRAME" "5")
+  )
+)
+
+;; Handwritten for OutputSelector plugin (values taken from output of
 ;; `gst-inspect output-selector' -- "pad-negotiation-mode" property information)
 (define-enum-extended OutputSelectorPadNegotiationMode
   (in-module "Gst")
@@ -6685,3 +6765,41 @@
     '("active" "GST_OUTPUT_SELECTOR_PAD_NEGOTIATION_MODE_ACTIVE" "2")
   )
 )
+
+;; Handwritten for EncodeBin plugin (values taken from file 
+;; gst-plugins-base/gst/encoding/gstencodebin.c, enum used for 'flags' property)
+(define-enum-extended EncodeBinFlags
+  (in-module "Gst")
+  (c-name "GstEncodeBinFlags")
+  (values
+    '("no-audio-conversion" "GST_ENCODEBIN_FLAG_NO_AUDIO_CONVERSION" "1<<0")
+    '("no-video-conversion" "GST_ENCODEBIN_FLAG_NO_VIDEO_CONVERSION" "1<<1")
+  )
+)
+
+;; Handwritten for MultiSocketSink plugin (values taken from file 
+;; gst-plugins-base/gst/tcp/gstmultihandlesink.c, enum used for 'client-removed' signal)
+(define-enum-extended MultiHandleSinkClientStatus
+  (in-module "Gst")
+  (c-name "GstMultiHandleSinkClientStatus")
+  (values
+    '("ok" "GST_CLIENT_STATUS_OK" "0")
+    '("closed" "GST_CLIENT_STATUS_CLOSED" "1")
+    '("removed" "GST_CLIENT_STATUS_REMOVED" "2")
+    '("slow" "GST_CLIENT_STATUS_SLOW" "3")
+    '("error" "GST_CLIENT_STATUS_ERROR" "4")
+    '("duplicate" "GST_CLIENT_STATUS_DUPLICATE" "5")
+    '("flushing" "GST_CLIENT_STATUS_FLUSHING" "6")
+  )
+)
+
+;; Handwritten for PlaySink plugin (values taken from file 
+;; gst-plugins-base/gst/playback/gstplaysink.c, enum used for 'send-event-mode' property)
+(define-enum-extended PlaySinkSendEventMode
+  (in-module "Gst")
+  (c-name "GstPlaySinkSendEventMode")
+  (values
+    '("default" "MODE_DEFAULT" "0")
+    '("first" "MODE_FIRST" "1")
+  )
+)
diff --git a/gstreamer/src/gst_enums.defs.patch b/gstreamer/src/gst_enums.defs.patch
index 864a029..914144f 100644
--- a/gstreamer/src/gst_enums.defs.patch
+++ b/gstreamer/src/gst_enums.defs.patch
@@ -1,11 +1,8 @@
 --- a/gstreamer/src/gst_enums.defs
 +++ b/gstreamer/src/gst_enums.defs
-@@ -2750,10 +2750,11 @@
- ;;   GST_QUEUE_LEAK_DOWNSTREAM     = 2
- ;; };
+@@ -2752,8 +2752,9 @@
  
--(define-enum-extended 
-+(define-enum-extended QueueLeaky
+ (define-enum-extended QueueLeaky
    (in-module "Gst")
 -  (c-name "")
 +  (c-name "GstQueueLeaky")
@@ -14,23 +11,11 @@
      '("upstream" "GST_QUEUE_LEAK_UPSTREAM" "1")
      '("downstream" "GST_QUEUE_LEAK_DOWNSTREAM" "2")
    )
-@@ -6574,9 +6575,9 @@
-   (in-module "Gst")
-   (c-name "GstTextRenderLineAlign")
-   (values
--    '("left" "GST_TEXT_RENDER_LINE_ALIGN_LEFT" "PANGO_ALIGN_LEFT")
--    '("center" "GST_TEXT_RENDER_LINE_ALIGN_CENTER" "PANGO_ALIGN_CENTER")
--    '("right" "GST_TEXT_RENDER_LINE_ALIGN_RIGHT" "PANGO_ALIGN_RIGHT")
-+    '("left" "GST_TEXT_RENDER_LINE_ALIGN_LEFT" "0")
-+    '("center" "GST_TEXT_RENDER_LINE_ALIGN_CENTER" "1")
-+    '("right" "GST_TEXT_RENDER_LINE_ALIGN_RIGHT" "2")
-   )
- )
- 
-@@ -6619,3 +6620,56 @@
+@@ -6618,3 +6619,95 @@
+     '("second-pass" "MULTIPASS_MODE_SECOND_PASS" "2")
    )
  )
- 
++
 +;; Handwritten for the filesink plug-in (Gst::FileSink).
 +(define-enum-extended FileSinkBufferMode
 +  (in-module "Gst")
@@ -84,3 +69,41 @@
 +    '("active" "GST_OUTPUT_SELECTOR_PAD_NEGOTIATION_MODE_ACTIVE" "2")
 +  )
 +)
++
++;; Handwritten for EncodeBin plugin (values taken from file 
++;; gst-plugins-base/gst/encoding/gstencodebin.c, enum used for 'flags' property)
++(define-enum-extended EncodeBinFlags
++  (in-module "Gst")
++  (c-name "GstEncodeBinFlags")
++  (values
++    '("no-audio-conversion" "GST_ENCODEBIN_FLAG_NO_AUDIO_CONVERSION" "1<<0")
++    '("no-video-conversion" "GST_ENCODEBIN_FLAG_NO_VIDEO_CONVERSION" "1<<1")
++  )
++)
++
++;; Handwritten for MultiSocketSink plugin (values taken from file 
++;; gst-plugins-base/gst/tcp/gstmultihandlesink.c, enum used for 'client-removed' signal)
++(define-enum-extended MultiHandleSinkClientStatus
++  (in-module "Gst")
++  (c-name "GstMultiHandleSinkClientStatus")
++  (values
++    '("ok" "GST_CLIENT_STATUS_OK" "0")
++    '("closed" "GST_CLIENT_STATUS_CLOSED" "1")
++    '("removed" "GST_CLIENT_STATUS_REMOVED" "2")
++    '("slow" "GST_CLIENT_STATUS_SLOW" "3")
++    '("error" "GST_CLIENT_STATUS_ERROR" "4")
++    '("duplicate" "GST_CLIENT_STATUS_DUPLICATE" "5")
++    '("flushing" "GST_CLIENT_STATUS_FLUSHING" "6")
++  )
++)
++
++;; Handwritten for PlaySink plugin (values taken from file 
++;; gst-plugins-base/gst/playback/gstplaysink.c, enum used for 'send-event-mode' property)
++(define-enum-extended PlaySinkSendEventMode
++  (in-module "Gst")
++  (c-name "GstPlaySinkSendEventMode")
++  (values
++    '("default" "MODE_DEFAULT" "0")
++    '("first" "MODE_FIRST" "1")
++  )
++)
diff --git a/tools/extra_defs_gen/generate_plugin_gmmproc_file.cc 
b/tools/extra_defs_gen/generate_plugin_gmmproc_file.cc
index 8319565..4b220ff 100644
--- a/tools/extra_defs_gen/generate_plugin_gmmproc_file.cc
+++ b/tools/extra_defs_gen/generate_plugin_gmmproc_file.cc
@@ -381,7 +381,9 @@ static std::string get_signal_wrap_statements(std::string& includeMacroCalls,
         if(g_type_is_a(returnGType, G_TYPE_BOXED))
         {
           // Unwrapping conversion:
-          std::string access_operator = (returnGType != G_TYPE_VALUE_ARRAY && returnGType != 
GST_TYPE_TAG_LIST) ? "->" : ".";
+          std::string access_operator = (returnGType != G_TYPE_VALUE_ARRAY &&
+                                         returnGType != GST_TYPE_TAG_LIST &&
+                                         returnGType != GST_TYPE_STRUCTURE) ? "->" : ".";
           // For GValueArray and TagList, RefPtr is not generated, and we need to use '.' operator.
           convertMacros += "#m4 _CONVERSION(_LQ()" + returnCTypeTranslation +
             "_RQ(), ``" + returnCType + "'', ``($3)" + access_operator + "gobj_copy()'')\n";
diff --git a/tools/m4/convert_gst.m4 b/tools/m4/convert_gst.m4
index 15109dc..e66e5f1 100644
--- a/tools/m4/convert_gst.m4
+++ b/tools/m4/convert_gst.m4
@@ -31,6 +31,8 @@ _CONV_ENUM(Gst,MemoryFlags)
 _CONV_ENUM(Gst,MessageType)
 _CONV_ENUM(Gst,MixerFlags)
 _CONV_ENUM(Gst,MixerType)
+_CONV_ENUM(Gst,MultiHandleSinkClientStatus)
+_CONV_ENUM(Gst,MultiHandleSinkSyncMethod)
 _CONV_ENUM(Gst,NavigationCommand)
 _CONV_ENUM(Gst,PadDirection)
 _CONV_ENUM(Gst,PadLinkCheck)
@@ -38,6 +40,7 @@ _CONV_ENUM(Gst,PadLinkReturn)
 _CONV_ENUM(Gst,PadMode)
 _CONV_ENUM(Gst,PadPresence)
 _CONV_ENUM(Gst,PadProbeType)
+_CONV_ENUM(Gst,PlayFlags)
 _CONV_ENUM(Gst,PluginDependencyFlags)
 _CONV_ENUM(Gst,ProgressType)
 _CONV_ENUM(Gst,QOSType)
@@ -156,6 +159,9 @@ _CONVERSION(`GstElementFactory*',`Glib::RefPtr<Gst::ElementFactory>',`Glib::wrap
 _CONVERSION(`GstElementFactory*',`Glib::RefPtr<const Gst::ElementFactory>',`Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gst::ElementFactory>&',`GstElementFactory*', `Glib::unwrap($3)')
 
+dnl EncodingProfile
+_CONVERSION(`const Glib::RefPtr<Gst::EncodingProfile>&', `GstEncodingProfile*', `Glib::unwrap($3)')
+
 dnl Event
 _CONVERSION(`const Glib::RefPtr<Gst::Event>&',`GstEvent*', `Glib::unwrap($3)')
 _CONVERSION(`GstEvent*',`const Glib::RefPtr<Gst::Event>&', `Glib::wrap($3)')
@@ -357,10 +363,13 @@ _CONVERSION(`const Glib::StringArrayHandle&',`const gchar**',`const_cast<const c
 _CONVERSION(`const Glib::ValueArray&',`GValueArray*',`const_cast<GValueArray*>($3.gobj())')
 
 dnl String Conversions
+
 _CONVERSION(`const std::string&',`const guchar*',`($2)($3.c_str())')
 _CONVERSION(`gchar*',`const Glib::ustring&',__GCHARP_TO_USTRING)
+_CONVERSION(`gchararray',`const Glib::ustring&',__GCHARP_TO_USTRING)
 _CONVERSION(`const gchar*',`const Glib::ustring&',__GCHARP_TO_USTRING)
 _CONVERSION(`Glib::ustring&',`const guchar*', ($2)($3.c_str()))
+_CONVERSION(`const Glib::ustring&',`gchararray', $3.c_str())
 
 dnl libxml++ Conversions
 _CONVERSION(`xmlpp::Node*',`xmlNodePtr',`$3->cobj()')
diff --git a/tools/m4/plugingen_gstreamermm.m4 b/tools/m4/plugingen_gstreamermm.m4
index f93052f..1fedbb5 100644
--- a/tools/m4/plugingen_gstreamermm.m4
+++ b/tools/m4/plugingen_gstreamermm.m4
@@ -6,7 +6,10 @@ dnl plugingen_base.m4 file for documentation.
 dnl Enums
 _TRANSLATION(`GstFlowReturn',`Gst::FlowReturn',`Gst::FlowReturn',,`<gstreamermm/pad.h>')
 _TRANSLATION(`GstFormat',`Gst::Format',`Gst::Format',,`<gstreamermm/format.h>')
+_TRANSLATION(`GstPlayFlags',`Gst::PlayFlags',`Gst::PlayFlags',,`<gstreamermm/enums.h>')
 _TRANSLATION(`GstTCPProtocol',`Gst::TCPProtocol',`Gst::TCPProtocol',,`<gstreamermm/enums.h>')
+_TRANSLATION(`GstMultiHandleSinkClientStatus',`Gst::MultiHandleSinkClientStatus',`Gst::MultiHandleSinkClientStatus',,`<gstreamermm/enums.h>')
+_TRANSLATION(`GstMultiHandleSinkSyncMethod',`Gst::MultiHandleSinkSyncMethod',`Gst::MultiHandleSinkSyncMethod',,`<gstreamermm/enums.h>')
 
_TRANSLATION(`GstAutoplugSelectResult',`Gst::AutoplugSelectResult',`Gst::AutoplugSelectResult',,`<gstreamermm/enums.h>')
 _TRANSLATION(`GstFlowReturn',`Gst::FlowReturn',`Gst::FlowReturn',,`<gstreamermm/pad.h>')
 
_TRANSLATION(`GstVideoMultiviewFramePacking',`Gst::VideoMultiviewFramePacking',`Gst::VideoMultiviewFramePacking',,`<gstreamermm/videoinfo.h>')
@@ -20,7 +23,7 @@ _TRANSLATION(`GSocket*',`Gio::Socket',`const Glib::RefPtr<Gio::Socket>&',`Glib::
 
 dnl glibmm
 _TRANSLATION(`GValueArray*',`Glib::ValueArray',`const 
Glib::ValueArray&',`Glib::ValueArray',`<glibmm/valuearray.h>')
-_TRANSLATION(`GObject*',`Glib::Object',`const Glib::Object&',`Glib::Object',`<glibmm/object.h>')
+_TRANSLATION(`GObject*',`Glib::Object',`const 
Glib::RefPtr<Glib::Object>&',`Glib::Object',`<glibmm/object.h>')
 
 dnl gstreamermm
 _TRANSLATION(`GstBuffer*',`Gst::Buffer',`const 
Glib::RefPtr<Gst::Buffer>&',`Glib::RefPtr<Gst::Buffer>',`<gstreamermm/buffer.h>')
@@ -28,6 +31,7 @@ _TRANSLATION(`GstCaps*',`Gst::Caps',`const Glib::RefPtr<Gst::Caps>&',`Glib::RefP
 _TRANSLATION(`GstChildProxy*',`Gst::ChildProxy',`const 
Glib::RefPtr<Gst::ChildProxy>&',`Glib::RefPtr<Gst::ChildProxy>',`<gstreamermm/childproxy.h>')
 _TRANSLATION(`GstElement*',`Gst::Element',`const 
Glib::RefPtr<Gst::Element>&',`Glib::RefPtr<Gst::Element>',`<gstreamermm/element.h>')
 _TRANSLATION(`GstElementFactory*',`Gst::ElementFactory',`const 
Glib::RefPtr<Gst::ElementFactory>&',`Glib::RefPtr<Gst::ElementFactory>',`<gstreamermm/elementfactory.h>')
+_TRANSLATION(`GstEncodingProfile*',`Gst::EncodingProfile',`const 
Glib::RefPtr<Gst::EncodingProfile>&',`Glib::RefPtr<Gst::EncodingProfile>',`<gstreamermm/encodingprofile.h>')
 _TRANSLATION(`GstFraction',`Gst::Fraction',`const Gst::Fraction&',`Gst::Fraction',`<gstreamermm/value.h>')
 _TRANSLATION(`GstPad*',`Gst::Pad',`const 
Glib::RefPtr<Gst::Pad>&',`Glib::RefPtr<Gst::Pad>',`<gstreamermm/pad.h>')
 _TRANSLATION(`GstQuery*',`Gst::Query',`const 
Glib::RefPtr<Gst::Query>&',`Glib::RefPtr<Gst::Query>',`<gstreamermm/query.h>')
@@ -88,6 +92,8 @@ _ENUM_IS_WRAPPED(GstMessageType)
 _ENUM_IS_WRAPPED(GstMiniObjectFlags)
 _ENUM_IS_WRAPPED(GstMixerFlags)
 _ENUM_IS_WRAPPED(GstMixerType)
+_ENUM_IS_WRAPPED(GstMultiHandleSinkClientStatus)
+_ENUM_IS_WRAPPED(GstMultiHandleSinkSyncMethod)
 _ENUM_IS_WRAPPED(GstNavigationCommand)
 _ENUM_IS_WRAPPED(GstPadDirection)
 _ENUM_IS_WRAPPED(GstPadFlags)
@@ -97,6 +103,7 @@ _ENUM_IS_WRAPPED(GstPadMode)
 _ENUM_IS_WRAPPED(GstPadPresence)
 _ENUM_IS_WRAPPED(GstPadTemplateFlags)
 _ENUM_IS_WRAPPED(GstPadProbeType)
+_ENUM_IS_WRAPPED(GstPlayFlags)
 _ENUM_IS_WRAPPED(GstPluginDependencyFlags)
 _ENUM_IS_WRAPPED(GstProgressType)
 _ENUM_IS_WRAPPED(GstQOSType)
@@ -130,3 +137,4 @@ _ENUM_IS_WRAPPED(GstVideoMultiviewFlags)
 _ENUM_IS_WRAPPED(GstVideoMultiviewFramePacking)
 _ENUM_IS_WRAPPED(GstVideoMultiviewMode)
 _ENUM_IS_WRAPPED(GstVideoPackFlags)
+


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]