[gstreamermm: 42/167] removed some bad-building methods from event, probably it should be repaired in the future



commit e6f27dd48414461cc3176eb01695331f4647ae8a
Author: Marcin Kolny at Flytronic <marcin kolny flytronic pl>
Date:   Fri Jul 26 10:52:46 2013 +0200

    removed some bad-building methods from event, probably it should be repaired in the future

 gstreamer/src/event.ccg  |  226 +-----------------------------
 gstreamer/src/event.hg   |  342 +---------------------------------------------
 gstreamer/src/segment.hg |    3 +
 tools/m4/convert_gst.m4  |    2 +
 4 files changed, 15 insertions(+), 558 deletions(-)
---
diff --git a/gstreamer/src/event.ccg b/gstreamer/src/event.ccg
index 8f63e96..b957b31 100644
--- a/gstreamer/src/event.ccg
+++ b/gstreamer/src/event.ccg
@@ -68,139 +68,13 @@ bool Event::is_serialized() const
   return GST_EVENT_IS_SERIALIZED(gobj());
 }
 
-EventFlushStart::EventFlushStart(GstEvent* castitem) :
-Event(castitem)
-{}
-
-Glib::RefPtr<Gst::EventFlushStart> EventFlushStart::create()
-{
-  GstEvent* event = gst_event_new_flush_start();
-  return Glib::wrap(event, false);
-}
-
-EventFlushStop::EventFlushStop(GstEvent* castitem) :
-Event(castitem)
-{}
-
-Glib::RefPtr<Gst::EventFlushStop> EventFlushStop::create()
-{
-  GstEvent* event = gst_event_new_flush_stop();
-  return Glib::wrap(event, false);
-}
-
-EventEos::EventEos(GstEvent* castitem) :
-Event(castitem)
-{}
-
-Glib::RefPtr<Gst::EventEos> EventEos::create()
-{
-  GstEvent* event = gst_event_new_eos();
-  return Glib::wrap(event, false);
-}
-
-EventNewSegment::EventNewSegment(GstEvent* castitem) :
-Event(castitem)
-{}
-
-Glib::RefPtr<Gst::EventNewSegment>
-  EventNewSegment::create(bool update, double rate, Format format,
-  gint64 start, gint64 stop, gint64 position, double applied_rate)
-{
-  GstEvent* event = gst_event_new_new_segment_full(update, rate, applied_rate,
-    GstFormat(format), start, stop, position);
-  return Glib::wrap(event, false);
-}
-
-void EventNewSegment::parse(bool& update, double& rate, Format& format,
-  gint64& start, gint64& stop, gint64& position) const
-{
-  gboolean gst_update = FALSE;
-  gst_event_parse_new_segment(const_cast<GstEvent*>(gobj()), &gst_update,
-    &rate, (GstFormat*)&format, &start, &stop, &position);
-  update = gst_update;
-}
-
-void EventNewSegment::parse(bool& update, double& rate, Format& format,
-  gint64& start, gint64& stop, gint64& position, double& applied_rate) const
-{
-  gboolean gst_update = FALSE;
-  gst_event_parse_new_segment_full(const_cast<GstEvent*>(gobj()), &gst_update,
-    &rate, &applied_rate, (GstFormat*)&format, &start, &stop, &position);
-  update = gst_update;
-}
-
-gint64 EventNewSegment::parse() const
-{
-  gint64 gst_position = 0;
-  gst_event_parse_new_segment_full(const_cast<GstEvent*>(gobj()), 0, 0, 0, 0,
-    0, 0, &gst_position);
-  return gst_position;
-}
-
-bool EventNewSegment::parse_update() const
-{
-  gboolean gst_update = FALSE;
-  gst_event_parse_new_segment_full(const_cast<GstEvent*>(gobj()), &gst_update,
-    0, 0, 0, 0, 0, 0);
-  return gst_update;
-}
-
-double EventNewSegment::parse_rate() const
-{
-  double gst_rate = 0;
-  gst_event_parse_new_segment_full(const_cast<GstEvent*>(gobj()), 0, &gst_rate,
-    0, 0, 0, 0, 0);
-  return gst_rate;
-}
-
-Gst::Format EventNewSegment::parse_format() const
-{
-  GstFormat gst_format = GST_FORMAT_UNDEFINED;
-  gst_event_parse_new_segment_full(const_cast<GstEvent*>(gobj()), 0, 0, 0,
-    &gst_format, 0, 0, 0);
-  return static_cast<Gst::Format>(gst_format);
-}
-
-double EventNewSegment::parse_applied_rate() const
-{
-  double gst_applied_rate = 0;
-  gst_event_parse_new_segment_full(const_cast<GstEvent*>(gobj()), 0, 0,
-    &gst_applied_rate, 0, 0, 0, 0);
-  return gst_applied_rate;
-}
-
-EventTag::EventTag(GstEvent* castitem) :
-Event(castitem)
-{}
-
-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, false);
-}
-
 Gst::TagList EventTag::parse() const
 {
-  GstTagList* gst_taglist = gst_tag_list_new();
+  GstTagList* gst_taglist = gst_tag_list_new_empty();
   gst_event_parse_tag(const_cast<GstEvent*>(gobj()), &gst_taglist);
   return Gst::TagList(gst_taglist);
 }
 
-EventBufferSize::EventBufferSize(GstEvent* castitem) :
-Event(castitem)
-{}
-
-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, false);
-}
-
 void EventBufferSize::parse(Format& format, gint64& minsize, gint64& maxsize,
   bool& async) const
 {
@@ -241,61 +115,35 @@ bool EventBufferSize::parse_async() const
   return gst_async;
 }
 
-EventQos::EventQos(GstEvent* castitem) :
-Event(castitem)
-{}
-
-Glib::RefPtr<Gst::EventQos> EventQos::create(double proportion,
-  ClockTimeDiff diff, ClockTime timestamp)
-{
-  GstEvent* event = gst_event_new_qos(proportion, GstClockTimeDiff(diff),
-    GstClockTime(timestamp));
-  return Glib::wrap(event, false);
-}
-
-void EventQos::parse(double& proportion, ClockTimeDiff& diff,
+void EventQos::parse(QOSType& type, double& proportion, ClockTimeDiff& diff,
   ClockTime& timestamp) const
 {
-  gst_event_parse_qos(const_cast<GstEvent*>(gobj()), &proportion, &diff,
+  gst_event_parse_qos(const_cast<GstEvent*>(gobj()), (GstQOSType*)&type, &proportion, &diff,
     &timestamp);
 }
 
 double EventQos::parse() const
 {
   double gst_proportion = 0;
-  gst_event_parse_qos(const_cast<GstEvent*>(gobj()), &gst_proportion, 0, 0);
+  gst_event_parse_qos(const_cast<GstEvent*>(gobj()), 0, &gst_proportion, 0, 0);
   return gst_proportion;
 }
 
 Gst::ClockTimeDiff EventQos::parse_diff() const
 {
   GstClockTimeDiff gst_diff = 0;
-  gst_event_parse_qos(const_cast<GstEvent*>(gobj()), 0, &gst_diff, 0);
+
+  gst_event_parse_qos(const_cast<GstEvent*>(gobj()), 0, 0, &gst_diff, 0);
   return gst_diff;
 }
 
 Gst::ClockTime EventQos::parse_timestamp() const
 {
   GstClockTime gst_timestamp = 0;
-  gst_event_parse_qos(const_cast<GstEvent*>(gobj()), 0, 0, &gst_timestamp);
+  gst_event_parse_qos(const_cast<GstEvent*>(gobj()), 0, 0, 0, &gst_timestamp);
   return gst_timestamp;
 }
 
-EventSeek::EventSeek(GstEvent* castitem) :
-Event(castitem)
-{}
-
-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, false);
-}
-
 void EventSeek::parse(double& rate, Format& format, SeekFlags& flags,
   SeekType& start_type, gint64& start, SeekType& stop_type, gint64& stop) const
 {
@@ -360,29 +208,6 @@ gint64 EventSeek::parse_stop() const
   return gst_stop;
 }
 
-EventNavigation::EventNavigation(GstEvent* castitem) :
-Event(castitem)
-{}
-
-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, false);
-}
-
-EventLatency::EventLatency(GstEvent* castitem) :
-Event(castitem)
-{}
-
-Glib::RefPtr<Gst::EventLatency> EventLatency::create(ClockTime time)
-{
-  GstEvent* event = gst_event_new_latency(GstClockTime(time));
-  return Glib::wrap(event, false);
-}
-
 ClockTime EventLatency::parse() const
 {
   GstClockTime gst_latency = 0;
@@ -390,19 +215,6 @@ ClockTime EventLatency::parse() const
   return gst_latency;
 }
 
-EventStep::EventStep(GstEvent* castitem) :
-Event(castitem)
-{}
-
-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, false);
-}
-
 void EventStep::parse(Gst::Format& format, guint64& amount, double& rate,
   bool& flush, bool& intermediate) const
 {
@@ -453,29 +265,5 @@ bool EventStep::parse_intermediate() const
   return gst_intermediate;
 }
 
-EventSinkMessage::EventSinkMessage(GstEvent* castitem) :
-Event(castitem)
-{}
-
-Glib::RefPtr<Gst::EventSinkMessage>
-  EventSinkMessage::create(const Glib::RefPtr<Gst::Message>& msg)
-{
-  GstEvent* event = gst_event_new_sink_message(msg->gobj());
-  return Glib::wrap(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 2ce21b3..a17cfb7 100644
--- a/gstreamer/src/event.hg
+++ b/gstreamer/src/event.hg
@@ -21,6 +21,7 @@
 #include <gstreamermm/miniobject.h>
 #include <gstreamermm/format.h>
 #include <gstreamermm/clock.h>
+#include <gstreamermm/segment.h>
 
 _DEFS(gstreamermm,gst)
 
@@ -65,8 +66,7 @@ enum EventType
 };
 
 _WRAP_ENUM(EventTypeFlags, GstEventTypeFlags)
-_WRAP_ENUM(SeekType, GstSeekType)
-_WRAP_ENUM(SeekFlags, GstSeekFlags)
+_WRAP_ENUM(QOSType, GstQOSType)
 
 class Message;
 class Structure;
@@ -168,9 +168,6 @@ public:
    */
   _MEMBER_GET(timestamp, timestamp, ClockTime, guint64)
 
-  /** The source Gst::Object that generated this event.
-   */
-  _MEMBER_GET_GOBJECT(source, src, Gst::Object, GstObject*)
 };
 
 //TODO: Modify create methods of derived Event classes to return
@@ -183,74 +180,20 @@ public:
  */
 class EventFlushStart : public Event
 {
-public:
-  explicit EventFlushStart(GstEvent* event);
-
-  /** 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:
-  explicit EventFlushStop(GstEvent* event);
 
-  /** Allocate a new flush stop event. The flush stop event can be sent
-   * upstream and downstream and travels out-of-bounds with the dataflow. It is
-   * typically sent after sending a Gst::EventFlushStart event to make the pads
-   * accept data again.
-   *
-   * Elements can process this event synchronized with the dataflow since the
-   * preceeding Gst::EventFlushStart event stopped the dataflow.
-   *
-   * This event is typically generated to complete a seek and to resume
-   * dataflow.
-   *
-   * @return A new flush stop event.
-   */
-  static Glib::RefPtr<Gst::EventFlushStop> create();
 };
 
 /** An end of stream event. See create() for more details.
  */
 class EventEos : public Event
 {
-public:
-  explicit EventEos(GstEvent* event);
 
-  /** 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.
@@ -258,145 +201,8 @@ public:
 class EventNewSegment : public Event
 {
 public:
-  explicit EventNewSegment(GstEvent* event);
-
-  /** 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.
-   * @param rate A new rate for playback.
-   * @param format The format of the segment values.
-   * @param start The start value of the segment.
-   * @param stop The stop value of the segment.
-   * @param position Stream position.
-   * @param applied_rate The rate factor which has already been applied.
-   * @return A new newsegment event.
-   *
-   * Since 0.10.6
-   */
-  static Glib::RefPtr<Gst::EventNewSegment> create(bool update, double rate,
-    Format format, gint64 strat, gint64 stop, gint64 position,
-    double applied_rate = 1.0);
-
-  /** Get the update flag, rate, format, start, stop and position in the
-   * newsegment event.
-   *
-   * @param update A reference to store the update flag of the segment.
-   * @param rate A reference to store the rate of the segment.
-   * @param format A reference to store the format of the newsegment values.
-   * @param start A reference to store the start value in.
-   * @param stop A reference to store the stop value in.
-   * @param position A reference to store the stream time in.
-   */
-  void parse(bool& update, double& rate, Format& format, gint64& start,
-    gint64& stop, gint64& position) const;
-  _IGNORE(gst_event_parse_new_segment)
-
-  /** Get the update, rate, format, start, stop, position and applied_rate in
-   * the newsegment event. See create() for a full description of the
-   * newsegment event.
-   *
-   * @param update A reference to store the update flag of the segment.
-   * @param rate A reference to store the rate of the segment.
-   * @param format A reference to store the format of the newsegment values.
-   * @param start A reference to store the start value in.
-   * @param stop A reference to store the stop value in.
-   * @param position A reference to store the stream time in.
-   * @param applied_rate A reference to store the applied_rate of the segment.
-   *
-   * Since 0.10.6.
-   */
-  void parse(bool& update, double& rate, Format& format, gint64& start,
-    gint64& stop, gint64& position, double& applied_rate) const;
-  _IGNORE(gst_event_parse_new_segment_full)
-
-  /** Get the position in the newsegment event. See create() for a full
-   * description of the newsegment event.
-   * @return The position.
-   *
-   * Since 0.10.6.
-   */
-  gint64 parse() const;
-
-  /** Get the update in the newsegment event. See create() for a full
-   * description of the newsegment event.
-   *
-   * @return The update.
-   *
-   * Since 0.10.6.
-   */
-  bool parse_update() const;
-
-  /** Get the rate in the newsegment event. See create() for a full description
-   * of the newsegment event.
-   *
-   * @return The rate.
-   *
-   * Since 0.10.6.
-   */
-  double parse_rate() const;
-
-  /** Get the format in the newsegment event. See create() for a full
-   * description of the newsegment event.
-   *
-   * @return The format.
-   *
-   * Since 0.10.6.
-   */
-  Format parse_format() const;
 
-  /** Get the start in the newsegment event. See create() for a full
-   * description of the newsegment event.
-   *
-   * @return The start.
-   *
-   * Since 0.10.6.
-   */
-  gint64 parse_start() const;
-
-  /** Get the stop in the newsegment event. See create() for a full description
-   * of the newsegment event.
-   *
-   * @return The stop.
-   *
-   * Since 0.10.6.
-   */
-  gint64 parse_stop() const;
 
-  /** Get the applied_rate in the newsegment event. See create() for a full
-   * description of the newsegment event.
-   *
-   * @return The applied rate.
-   *
-   * Since 0.10.6.
-   */
-  double parse_applied_rate() const;
 };
 
 /** A tag event.
@@ -404,8 +210,6 @@ public:
 class EventTag : public Event
 {
 public:
-  explicit EventTag(GstEvent* event);
-
   /** Generates a metadata tag event from the given taglist.
    * @param taglist Metadata list.
    * @return A new Gst::Event.
@@ -481,47 +285,7 @@ public:
 class EventQos : public Event
 {
 public:
-  explicit EventQos(GstEvent* event);
 
-  /** 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. Typically sinks generate these events for
-   * each buffer they receive.
-   *
-   * 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.
-   *
-   * 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.
-   *
-   * The application can use general event probes to intercept the QoS event
-   * and implement custom application specific QoS handling.
-   *
-   * @param proportion The proportion of the qos message.
-   * @param diff The time difference of the last clock sync.
-   * @param timestamp The timestamp of the buffer.
-   * @return A new QOS event.
-   */
-  static Glib::RefPtr<Gst::EventQos> create(double proportion,
-    ClockTimeDiff diff, ClockTime timestamp);
 
   /** Get the proportion, diff and timestamp in the qos event. See create() for
    * more information about the different QoS values.
@@ -530,7 +294,7 @@ public:
    * @param diff A reference to store the diff in.
    * @param timestamp A reference to store the timestamp in.
    */
-  void parse(double& proportion, ClockTimeDiff& diff, ClockTime& timestamp) const;
+  void parse(QOSType& 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
@@ -559,51 +323,6 @@ public:
 class EventSeek : public Event
 {
 public:
-  explicit EventSeek(GstEvent* event);
-
-  /** 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.
    *
@@ -663,14 +382,6 @@ public:
 class EventNavigation : public Event
 {
 public:
-  explicit EventNavigation(GstEvent* event);
-
-  /** 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.
@@ -707,33 +418,7 @@ public:
 class EventStep : public Event
 {
 public:
-  explicit EventStep(GstEvent* event);
 
-  /** 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.
    *
@@ -778,28 +463,7 @@ public:
 class EventSinkMessage : public Event
 {
 public:
-  explicit EventSinkMessage(GstEvent* event);
 
-  /** 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.
-   *
-   * @param msg The message to be posted.
-   * @return A new Gst::EventSinkMessage.
-   */
-  static Glib::RefPtr<Gst::EventSinkMessage>
-    create(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 5719bcc..8cb47bd 100644
--- a/gstreamer/src/segment.hg
+++ b/gstreamer/src/segment.hg
@@ -26,6 +26,9 @@ _DEFS(gstreamermm,gst)
 namespace Gst
 {
 
+  _WRAP_ENUM(SeekType, GstSeekType)
+  _WRAP_ENUM(SeekFlags, GstSeekFlags)
+
 /** 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 5ce0caa..92e47bc 100644
--- a/tools/m4/convert_gst.m4
+++ b/tools/m4/convert_gst.m4
@@ -35,6 +35,7 @@ _CONV_ENUM(Gst,PadLinkCheck)
 _CONV_ENUM(Gst,PadLinkReturn)
 _CONV_ENUM(Gst,PadPresence)
 _CONV_ENUM(Gst,PluginDependencyFlags)
+_CONV_ENUM(Gst,QOSType)
 _CONV_ENUM(Gst,QueryType)
 _CONV_ENUM(Gst,Rank)
 _CONV_ENUM(Gst,SeekFlags)
@@ -116,6 +117,7 @@ _CONVERSION(`const Glib::RefPtr<Gst::ElementFactory>&',`GstElementFactory*', `Gl
 
 dnl Event
 _CONVERSION(`const Glib::RefPtr<Gst::Event>&',`GstEvent*', `Glib::unwrap($3)')
+_CONVERSION(`GstEvent*',`const Glib::RefPtr<Gst::Event>&', `Glib::wrap($3)')
 
 dnl Index
 _CONVERSION(`GstIndex*',`Glib::RefPtr<Gst::Index>',`Glib::wrap($3)')


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