[gstreamermm: 71/167] restored event methods (ported to 1.0)
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gstreamermm: 71/167] restored event methods (ported to 1.0)
- Date: Tue, 3 Sep 2013 19:25:02 +0000 (UTC)
commit 0bb13c179c90c43ff03e1a7f2536ac9d8810f257
Author: Marcin Kolny at Flytronic <marcin kolny flytronic pl>
Date: Tue Jul 30 09:38:26 2013 +0200
restored event methods (ported to 1.0)
gstreamer/src/event.ccg | 119 ++++++++++++++-
gstreamer/src/event.hg | 310 ++++++++++++++++++++++++++++++++++---
gstreamer/src/segment.hg | 4 +-
tools/m4/convert_gst.m4 | 1 +
tools/m4/plugingen_gstreamermm.m4 | 2 +-
5 files changed, 409 insertions(+), 27 deletions(-)
---
diff --git a/gstreamer/src/event.ccg b/gstreamer/src/event.ccg
index b957b31..19e63cd 100644
--- a/gstreamer/src/event.ccg
+++ b/gstreamer/src/event.ccg
@@ -68,13 +68,60 @@ bool Event::is_serialized() const
return GST_EVENT_IS_SERIALIZED(gobj());
}
-Gst::TagList EventTag::parse() const
+Glib::RefPtr<Gst::EventFlushStart> EventFlushStart::create()
{
- GstTagList* gst_taglist = gst_tag_list_new_empty();
+ GstEvent* event = gst_event_new_flush_start();
+ return Glib::wrap_event_derived<EventFlushStart>(event, false);
+}
+
+Glib::RefPtr<Gst::EventFlushStop> EventFlushStop::create(bool reset_time)
+{
+ GstEvent* event = gst_event_new_flush_stop(reset_time);
+ return Glib::wrap_event_derived<EventFlushStop>(event, false);
+}
+
+Glib::RefPtr<Gst::EventEos> EventEos::create()
+{
+ GstEvent* event = gst_event_new_eos();
+ return Glib::wrap_event_derived<EventEos>(event, false);
+}
+
+Glib::RefPtr<Gst::EventNewSegment>
+ EventNewSegment::create(const GstSegment* segment)
+{
+ GstEvent* event = gst_event_new_segment(segment);
+ return Glib::wrap_event_derived<EventNewSegment>(event, false);
+}
+
+void EventNewSegment::parse(const GstSegment** segment) const
+{
+ gst_event_parse_segment(const_cast<GstEvent*>(gobj()), segment);
+}
+
+Glib::RefPtr<Gst::EventTag> EventTag::create(const Gst::TagList& taglist)
+{
+ //We create a copy because gst_event_new_tag() takes ownership:
+ GstTagList* c_taglist = gst_tag_list_copy(taglist.gobj());
+ GstEvent* event = gst_event_new_tag(c_taglist);
+ return Glib::wrap_event_derived<EventTag>(event, false);
+}
+
+Gst::TagList EventTag::parse(const Glib::ustring& name) const
+{
+ GstTagList* gst_taglist = gst_tag_list_new(name.c_str());
gst_event_parse_tag(const_cast<GstEvent*>(gobj()), &gst_taglist);
return Gst::TagList(gst_taglist);
}
+Glib::RefPtr<Gst::EventBufferSize>
+ EventBufferSize::create(Format format, gint64 minsize, gint64 maxsize,
+ bool async)
+{
+ GstEvent* event = gst_event_new_buffer_size(GstFormat(format), minsize,
+ maxsize, async);
+ return Glib::wrap_event_derived<EventBufferSize>(event, false);
+}
+
void EventBufferSize::parse(Format& format, gint64& minsize, gint64& maxsize,
bool& async) const
{
@@ -115,10 +162,18 @@ bool EventBufferSize::parse_async() const
return gst_async;
}
-void EventQos::parse(QOSType& type, double& proportion, ClockTimeDiff& diff,
+Glib::RefPtr<Gst::EventQos> EventQos::create(GstQOSType type, double proportion,
+ ClockTimeDiff diff, ClockTime timestamp)
+{
+ GstEvent* event = gst_event_new_qos(type, proportion, GstClockTimeDiff(diff),
+ GstClockTime(timestamp));
+ return Glib::wrap_event_derived<EventQos>(event, false);
+}
+
+void EventQos::parse(GstQOSType& type, double& proportion, ClockTimeDiff& diff,
ClockTime& timestamp) const
{
- gst_event_parse_qos(const_cast<GstEvent*>(gobj()), (GstQOSType*)&type, &proportion, &diff,
+ gst_event_parse_qos(const_cast<GstEvent*>(gobj()), &type, &proportion, &diff,
×tamp);
}
@@ -132,7 +187,6 @@ double EventQos::parse() const
Gst::ClockTimeDiff EventQos::parse_diff() const
{
GstClockTimeDiff gst_diff = 0;
-
gst_event_parse_qos(const_cast<GstEvent*>(gobj()), 0, 0, &gst_diff, 0);
return gst_diff;
}
@@ -144,6 +198,17 @@ Gst::ClockTime EventQos::parse_timestamp() const
return gst_timestamp;
}
+Glib::RefPtr<Gst::EventSeek> EventSeek::create(double rate, Format format,
+ SeekFlags flags, SeekType start_type, gint64 start, SeekType stop_type,
+ gint64 stop)
+{
+ GstEvent* event = gst_event_new_seek(rate, GstFormat(format),
+ GstSeekFlags(flags), GstSeekType(start_type), start,
+ GstSeekType(stop_type), stop);
+
+ return Glib::wrap_event_derived<EventSeek>(event, false);
+}
+
void EventSeek::parse(double& rate, Format& format, SeekFlags& flags,
SeekType& start_type, gint64& start, SeekType& stop_type, gint64& stop) const
{
@@ -208,6 +273,21 @@ gint64 EventSeek::parse_stop() const
return gst_stop;
}
+Glib::RefPtr<Gst::EventNavigation>
+ EventNavigation::create(Gst::Structure& structure)
+{
+ // Make copy because event takes ownership of structure:
+ GstStructure* copy = gst_structure_copy(structure.gobj());
+ GstEvent* event = gst_event_new_navigation(copy);
+ return Glib::wrap_event_derived<EventNavigation>(event, false);
+}
+
+Glib::RefPtr<Gst::EventLatency> EventLatency::create(ClockTime time)
+{
+ GstEvent* event = gst_event_new_latency(GstClockTime(time));
+ return Glib::wrap_event_derived<EventLatency>(event, false);
+}
+
ClockTime EventLatency::parse() const
{
GstClockTime gst_latency = 0;
@@ -215,6 +295,15 @@ ClockTime EventLatency::parse() const
return gst_latency;
}
+Glib::RefPtr<Gst::EventStep>
+ EventStep::create(Gst::Format format, guint64 amount, double rate,
+ bool flush, bool intermediate)
+{
+ GstEvent* event = gst_event_new_step(static_cast<GstFormat>(format),
+ amount, rate, flush, intermediate);
+ return Glib::wrap_event_derived<EventStep>(event, false);
+}
+
void EventStep::parse(Gst::Format& format, guint64& amount, double& rate,
bool& flush, bool& intermediate) const
{
@@ -265,5 +354,25 @@ bool EventStep::parse_intermediate() const
return gst_intermediate;
}
+Glib::RefPtr<Gst::EventSinkMessage>
+ EventSinkMessage::create(const Glib::ustring& name, const Glib::RefPtr<Gst::Message>& msg)
+{
+ GstEvent* event = gst_event_new_sink_message(name.c_str(), msg->gobj());
+ return Glib::wrap_event_derived<EventSinkMessage>(event, false);
+}
+
+Glib::RefPtr<Gst::Message> EventSinkMessage::parse()
+{
+ GstMessage* gst_msg = 0;
+ gst_event_parse_sink_message(gobj(), &gst_msg);
+ return Glib::wrap(gst_msg);
+}
+
+Glib::RefPtr<const Gst::Message> EventSinkMessage::parse() const
+{
+ GstMessage* gst_msg = 0;
+ gst_event_parse_sink_message(const_cast<GstEvent*>(gobj()), &gst_msg);
+ return Glib::wrap(gst_msg);
+}
} //namespace Gst
diff --git a/gstreamer/src/event.hg b/gstreamer/src/event.hg
index ce22748..dc9b6a3 100644
--- a/gstreamer/src/event.hg
+++ b/gstreamer/src/event.hg
@@ -21,18 +21,28 @@
#include <gstreamermm/miniobject.h>
#include <gstreamermm/format.h>
#include <gstreamermm/clock.h>
-
+#include <gstreamermm/segment.h>
_DEFS(gstreamermm,gst)
-namespace Gst
+namespace Glib
{
+ template<typename T>
+ Glib::RefPtr<T> wrap_event_derived(GstEvent* object, bool take_copy)
+ {
+ if(take_copy && object)
+ gst_event_ref(object);
+
+ // See the comment at the top of this file, if you want to know why the cast works.
+ return Glib::RefPtr<T>(reinterpret_cast<T*>(object));
+ }
+
+}
- _WRAP_ENUM(SeekType, GstSeekType)
- _WRAP_ENUM(SeekFlags, GstSeekFlags)
+namespace Gst
+{
_WRAP_ENUM_DOCS_ONLY(EventType, GstEventType)
-/* this enum must be wrapped manually since automatic generator (enum.pl) doesn't handle commas properly*/
enum EventType
{
EVENT_UNKNOWN = GST_EVENT_UNKNOWN,
@@ -48,6 +58,7 @@ enum EventType
EVENT_SINK_MESSAGE = GST_EVENT_SINK_MESSAGE,
EVENT_EOS = GST_EVENT_EOS,
EVENT_TOC = GST_EVENT_TOC,
+ //EVENT_CONTEXT = GST_EVENT_CONTEXT,
/* non-sticky downstream serialized */
EVENT_SEGMENT_DONE = GST_EVENT_SEGMENT_DONE,
EVENT_GAP = GST_EVENT_GAP,
@@ -146,7 +157,7 @@ public:
/** Checks if an event is writable. If not, a writable copy is made and
* returned.
- * @return A Gst::Event (possibly the same reference) that is writable.
+ * @return A Gst::Event (possibly the same reference) that is writable.
*/
Glib::RefPtr<Gst::Event> create_writable();
@@ -170,7 +181,6 @@ public:
* event was created.
*/
_MEMBER_GET(timestamp, timestamp, ClockTime, guint64)
-
};
//TODO: Modify create methods of derived Event classes to return
@@ -183,20 +193,74 @@ public:
*/
class EventFlushStart : public Event
{
+public:
+ /** Allocate a new flush start event. The flush start event can be sent
+ * upstream and downstream and travels out-of-bounds with the dataflow.
+ *
+ * It marks pads as being flushing and will make them return
+ * Gst::FLOW_WRONG_STATE when used for data flow with Gst::Pad::push(),
+ * Gst::Pad::chain(), Gst::Pad::alloc_buffer(), Gst::Pad::get_range() and
+ * Gst::Pad::pull_range(). Any event (except a Gst::EVENT_FLUSH_STOP)
+ * received on a flushing pad will return false immediately.
+ *
+ * Elements should unlock any blocking functions and exit their streaming
+ * functions as fast as possible when this event is received.
+ *
+ * This event is typically generated after a seek to flush out all queued
+ * data in the pipeline so that the new media is played as soon as possible.
+ *
+ * @return A new flush start event.
+ */
+ static Glib::RefPtr<Gst::EventFlushStart> create();
};
/** A flush stop event. See create() for more details.
*/
class EventFlushStop : public Event
{
+public:
+ /**
+ * gst_event_new_flush_stop:
+ * @reset_time: if time should be reset
+ *
+ * Allocate a new flush stop event. The flush stop event can be sent
+ * upstream and downstream and travels serialized with the dataflow.
+ * It is typically sent after sending a FLUSH_START event to make the
+ * pads accept data again.
+ *
+ * Elements can process this event synchronized with the dataflow since
+ * the preceeding FLUSH_START event stopped the dataflow.
+ *
+ * This event is typically generated to complete a seek and to resume
+ * dataflow.
+ *
+ * Returns: (transfer full): a new flush stop event.
+ */
+ static Glib::RefPtr<Gst::EventFlushStop> create(bool reset_time);
};
/** An end of stream event. See create() for more details.
*/
class EventEos : public Event
{
+public:
+ /** Create a new EOS event. The eos event can only travel downstream
+ * synchronized with the buffer flow. Elements that receive the EOS event on
+ * a pad can return Gst::FLOW_UNEXPECTED as a Gst::FlowReturn when data after
+ * the EOS event arrives.
+ *
+ * The EOS event will travel down to the sink elements in the pipeline which
+ * will then post the Gst::MESSAGE_EOS on the bus after they have finished
+ * playing any buffered data.
+ *
+ * When all sinks have posted an EOS message, an EOS message is forwarded to
+ * the application.
+ *
+ * @return The new EOS event.
+ */
+ static Glib::RefPtr<Gst::EventEos> create();
};
/** A new segment event. See create() for more details.
@@ -205,7 +269,53 @@ class EventNewSegment : public Event
{
public:
+ /** Allocate a new newsegment event with the given format/values tripplets
+ *
+ * The newsegment event marks the range of buffers to be processed. All data
+ * not within the segment range is not to be processed. This can be used
+ * intelligently by plugins to apply more efficient methods of skipping
+ * unneeded data.
+ *
+ * The position value of the segment is used in conjunction with the start
+ * value to convert the buffer timestamps into the stream time. This is
+ * usually done in sinks to report the current stream_time. position
+ * represents the stream_time of a buffer carrying a timestamp of start.
+ * position cannot be -1.
+ *
+ * start cannot be -1, stop can be -1. If there is a valid stop given, it
+ * must be greater or equal the start, including when the indicated playback
+ * rate is < 0.
+ *
+ * The applied_rate value provides information about any rate adjustment that
+ * has already been made to the timestamps and content on the buffers of the
+ * stream. (rate * applied_rate) should always equal the rate that has been
+ * requested for playback. For example, if an element has an input segment
+ * with intended playback rate of 2.0 and applied_rate of 1.0, it can adjust
+ * incoming timestamps and buffer content by half and output a newsegment
+ * event with rate of 1.0 and applied_rate of 2.0
+ *
+ * After a newsegment event, the buffer stream time is calculated with:
+ *
+ * position + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)
+ *
+ * @param update Is this segment an update to a previous one.
+ * @return A new newsegment event.
+ *
+ * Since 0.10.6
+ */
+ static Glib::RefPtr<Gst::EventNewSegment> create(const GstSegment* segment);
+ /**
+ * gst_event_parse_segment:
+ * @event: The event to parse
+ * @segment: (out) (transfer none): a pointer to a #GstSegment
+ *
+ * Parses a segment @event and stores the result in the given @segment location.
+ * @segment remains valid only until the @event is freed. Don't modify the segment
+ * and make a copy if you want to modify it or store it for later use.
+ */
+ void parse(const GstSegment** segment) const;
+ _IGNORE(gst_event_parse_segment)
};
/** A tag event.
@@ -213,6 +323,7 @@ public:
class EventTag : public Event
{
public:
+
/** Generates a metadata tag event from the given taglist.
* @param taglist Metadata list.
* @return A new Gst::Event.
@@ -220,9 +331,10 @@ public:
static Glib::RefPtr<Gst::EventTag> create(const Gst::TagList& taglist);
/** Parses a tag event and stores the results in the given taglist location.
+ * @param name Tag name.
* @return Metadata list.
*/
- Gst::TagList parse() const;
+ Gst::TagList parse(const Glib::ustring& name) const;
_IGNORE(gst_event_parse_tag)
};
@@ -231,7 +343,6 @@ public:
class EventBufferSize : public Event
{
public:
- explicit EventBufferSize(GstEvent* event);
/** Create a new buffersize event. The event is sent downstream and notifies
* elements that they should provide a buffer of the specified dimensions.
@@ -289,15 +400,73 @@ class EventQos : public Event
{
public:
-
- /** Get the proportion, diff and timestamp in the qos event. See create() for
- * more information about the different QoS values.
- *
- * @param proportion A reference to store the proportion in.
- * @param diff A reference to store the diff in.
- * @param timestamp A reference to store the timestamp in.
- */
- void parse(QOSType& type, double& proportion, ClockTimeDiff& diff, ClockTime& timestamp) const;
+ /**
+ * gst_event_new_qos:
+ * @type: the QoS type
+ * @proportion: the proportion of the qos message
+ * @diff: The time difference of the last Clock sync
+ * @timestamp: The timestamp of the buffer
+ *
+ * Allocate a new qos event with the given values.
+ * The QOS event is generated in an element that wants an upstream
+ * element to either reduce or increase its rate because of
+ * high/low CPU load or other resource usage such as network performance or
+ * throttling. Typically sinks generate these events for each buffer
+ * they receive.
+ *
+ * @type indicates the reason for the QoS event. #GST_QOS_TYPE_OVERFLOW is
+ * used when a buffer arrived in time or when the sink cannot keep up with
+ * the upstream datarate. #GST_QOS_TYPE_UNDERFLOW is when the sink is not
+ * receiving buffers fast enough and thus has to drop late buffers.
+ * #GST_QOS_TYPE_THROTTLE is used when the datarate is artificially limited
+ * by the application, for example to reduce power consumption.
+ *
+ * @proportion indicates the real-time performance of the streaming in the
+ * element that generated the QoS event (usually the sink). The value is
+ * generally computed based on more long term statistics about the streams
+ * timestamps compared to the clock.
+ * A value < 1.0 indicates that the upstream element is producing data faster
+ * than real-time. A value > 1.0 indicates that the upstream element is not
+ * producing data fast enough. 1.0 is the ideal @proportion value. The
+ * proportion value can safely be used to lower or increase the quality of
+ * the element.
+ *
+ * @diff is the difference against the clock in running time of the last
+ * buffer that caused the element to generate the QOS event. A negative value
+ * means that the buffer with @timestamp arrived in time. A positive value
+ * indicates how late the buffer with @timestamp was. When throttling is
+ * enabled, @diff will be set to the requested throttling interval.
+ *
+ * @timestamp is the timestamp of the last buffer that cause the element
+ * to generate the QOS event. It is expressed in running time and thus an ever
+ * increasing value.
+ *
+ * The upstream element can use the @diff and @timestamp values to decide
+ * whether to process more buffers. For possitive @diff, all buffers with
+ * timestamp <= @timestamp + @diff will certainly arrive late in the sink
+ * as well. A (negative) @diff value so that @timestamp + @diff would yield a
+ * result smaller than 0 is not allowed.
+ *
+ * The application can use general event probes to intercept the QoS
+ * event and implement custom application specific QoS handling.
+ *
+ * Returns: (transfer full): a new QOS event.
+ */
+ static Glib::RefPtr<Gst::EventQos> create(GstQOSType type, double proportion,
+ ClockTimeDiff diff, ClockTime timestamp);
+
+ /**
+ * gst_event_parse_qos:
+ * @event: The event to query
+ * @type: (out): A pointer to store the QoS type in
+ * @proportion: (out): A pointer to store the proportion in
+ * @diff: (out): A pointer to store the diff in
+ * @timestamp: (out): A pointer to store the timestamp in
+ *
+ * Get the type, proportion, diff and timestamp in the qos event. See
+ * gst_event_new_qos() for more information about the different QoS values.
+ */
+ void parse(GstQOSType& type, double& proportion, ClockTimeDiff& diff, ClockTime& timestamp) const;
_IGNORE(gst_event_parse_qos)
/** Get the proportion in the qos event. See create() for more information
@@ -327,6 +496,50 @@ class EventSeek : public Event
{
public:
+ /** Allocate a new seek event with the given parameters.
+ *
+ * The seek event configures playback of the pipeline between start to stop
+ * at the speed given in rate, also called a playback segment. The start and
+ * stop values are expressed in format.
+ *
+ * A rate of 1.0 means normal playback rate, 2.0 means double speed.
+ * Negatives values means backwards playback. A value of 0.0 for the rate is
+ * not allowed and should be accomplished instead by PAUSING the pipeline.
+ *
+ * A pipeline has a default playback segment configured with a start position
+ * of 0, a stop position of -1 and a rate of 1.0. The currently configured
+ * playback segment can be queried with Gst::QUERY_SEGMENT.
+ *
+ * start_type and stop_type specify how to adjust the currently configured
+ * start and stop fields in segment. Adjustments can be made relative or
+ * absolute to the last configured values. A type of Gst::SEEK_TYPE_NONE
+ * means that the position should not be updated.
+ *
+ * When the rate is positive and start has been updated, playback will start
+ * from the newly configured start position.
+ *
+ * For negative rates, playback will start from the newly configured stop
+ * position (if any). If the stop position if updated, it must be different
+ * from -1 for negative rates.
+ *
+ * It is not possible to seek relative to the current playback position, to
+ * do this, PAUSE the pipeline, query the current playback position with
+ * Gst::QUERY_POSITION and update the playback segment current position with
+ * a Gst::SEEK_TYPE_SET to the desired position.
+ *
+ * @param rate The new playback rate.
+ * @param format The format of the seek values.
+ * @param flags The optional seek flags.
+ * @param start_type The type and flags for the new start position.
+ * @param start The value of the new start position.
+ * @param stop_type The type and flags for the new stop position.
+ * @param stop The value of the new stop position.
+ * @return A new seek event.
+ */
+ static Glib::RefPtr<Gst::EventSeek> create(double rate, Format format,
+ SeekFlags flags, SeekType start_type, gint64 start, SeekType stop_type,
+ gint64 stop);
+
/** Parses a seek event and stores the results in the given result locations.
*
* @param rate Result location for the rate.
@@ -385,6 +598,13 @@ public:
class EventNavigation : public Event
{
public:
+
+ /** Create a new navigation event from the given description.
+ *
+ * @param structure Description of the event.
+ * @return A new Gst::EventNavigation.
+ */
+ static Glib::RefPtr<Gst::EventNavigation> create(Gst::Structure& structure);
};
/** A latency event. See create() for more details.
@@ -392,7 +612,6 @@ public:
class EventLatency : public Event
{
public:
- explicit EventLatency(GstEvent* event);
/** Create a new latency event. The event is sent upstream from the sinks and
* notifies elements that they should add an additional latency to the
@@ -410,7 +629,7 @@ public:
/** Get the latency in the latency event.
*
- * @return The latency.
+ * @return The latency.
*/
ClockTime parse() const;
_IGNORE(gst_event_parse_latency)
@@ -422,6 +641,31 @@ class EventStep : public Event
{
public:
+ /** Create a new step event. The purpose of the step event is to instruct a
+ * sink to skip @a amount (expressed in @a format) of media. It can be used
+ * to implement stepping through the video frame by frame or for doing fast
+ * trick modes.
+ *
+ * A rate of <= 0.0 is not allowed, pause the pipeline or reverse the
+ * playback direction of the pipeline to get the same effect.
+ *
+ * The @a flush flag will clear any pending data in the pipeline before
+ * starting the step operation.
+ *
+ * The @a intermediate flag instructs the pipeline that this step operation
+ * is part of a larger step operation.
+ *
+ * @param format The format of amount.
+ * @param amount The amount of data to step.
+ * @param rate The step rate.
+ * @param flush Flushing steps.
+ * @param intermediate Intermediate steps.
+ * @return A new Gst::Event.
+ *
+ * Since 0.10.24.
+ */
+ static Glib::RefPtr<Gst::EventStep> create(Gst::Format format,
+ guint64 amount, double rate, bool flush, bool intermediate);
/** Parse the step event.
*
@@ -467,6 +711,32 @@ class EventSinkMessage : public Event
{
public:
+ /**
+ * gst_event_new_sink_message:
+ * @name: a name for the event
+ * @msg: (transfer none): the #GstMessage to be posted
+ *
+ * Create a new sink-message event. The purpose of the sink-message event is
+ * to instruct a sink to post the message contained in the event synchronized
+ * with the stream.
+ *
+ * @name is used to store multiple sticky events on one pad.
+ *
+ * Returns: (transfer full): a new #GstEvent
+ */
+ static Glib::RefPtr<Gst::EventSinkMessage>
+ create(const Glib::ustring& name, const Glib::RefPtr<Gst::Message>& message);
+
+ /** Parse the sink-message event.
+ * @return the sink-messge's event message.
+ */
+ Glib::RefPtr<Gst::Message> parse();
+ _IGNORE(gst_event_parse_sink_message)
+
+ /** Parse the sink-message event.
+ * @return the sink-messge's event message.
+ */
+ Glib::RefPtr<const Gst::Message> parse() const;
};
} //namespace Gst
diff --git a/gstreamer/src/segment.hg b/gstreamer/src/segment.hg
index 5a5662b..262d403 100644
--- a/gstreamer/src/segment.hg
+++ b/gstreamer/src/segment.hg
@@ -19,13 +19,15 @@
#include <gstreamermm/clock.h>
#include <gstreamermm/format.h>
-#include <gstreamermm/event.h>
_DEFS(gstreamermm,gst)
namespace Gst
{
+_WRAP_ENUM(SeekFlags, GstSeekFlags)
+_WRAP_ENUM(SeekType, GstSeekType)
+
/** A class that describes the configured region of interest in a media file.
* This helper structure holds the relevant values for tracking the region of
* interest in a media file, called a segment.
diff --git a/tools/m4/convert_gst.m4 b/tools/m4/convert_gst.m4
index 2fa80d7..94a7525 100644
--- a/tools/m4/convert_gst.m4
+++ b/tools/m4/convert_gst.m4
@@ -17,6 +17,7 @@ _CONV_ENUM(Gst,ClockTime)
_CONV_ENUM(Gst,ColorBalanceType)
_CONV_ENUM(Gst,DiscovererResult)
_CONV_ENUM(Gst,EventType)
+_CONV_ENUM(Gst,EventTypeFlags)
_CONV_ENUM(Gst,FlowReturn)
_CONV_ENUM(Gst,Format)
_CONV_ENUM(Gst,IndexCertainty)
diff --git a/tools/m4/plugingen_gstreamermm.m4 b/tools/m4/plugingen_gstreamermm.m4
index f5a5238..1db3914 100644
--- a/tools/m4/plugingen_gstreamermm.m4
+++ b/tools/m4/plugingen_gstreamermm.m4
@@ -58,7 +58,6 @@ _ENUM_IS_WRAPPED(GstClockFlags)
_ENUM_IS_WRAPPED(GstClockReturn)
_ENUM_IS_WRAPPED(GstColorBalanceType)
_ENUM_IS_WRAPPED(GstElementFlags)
-_ENUM_IS_WRAPPED(GstEventType)
_ENUM_IS_WRAPPED(GstEventTypeFlags)
_ENUM_IS_WRAPPED(GstFlowReturn)
_ENUM_IS_WRAPPED(GstFormat)
@@ -76,6 +75,7 @@ _ENUM_IS_WRAPPED(GstPadFlags)
_ENUM_IS_WRAPPED(GstPadLinkReturn)
_ENUM_IS_WRAPPED(GstPadPresence)
_ENUM_IS_WRAPPED(GstPadTemplateFlags)
+_ENUM_IS_WRAPPED(GstQOSType)
_ENUM_IS_WRAPPED(GstQueryType)
_ENUM_IS_WRAPPED(GstRank)
_ENUM_IS_WRAPPED(GstSeekFlags)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]