[gstreamermm] plugins: wrap almost all base and core plugins
- From: Marcin Kolny <mkolny src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gstreamermm] plugins: wrap almost all base and core plugins
- Date: Thu, 30 Jul 2015 14:32:45 +0000 (UTC)
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]