Gst::EventNewSegment Class Reference

A new segment event. More...

#include <event.h>

Inheritance diagram for Gst::EventNewSegment:

Gst::Event Gst::MiniObject

List of all members.

Public Member Functions

 EventNewSegment (GstEvent* event)
void parse (bool& update, double& rate, Format& format, gint64& start, gint64& stop, gint64& position)
 Get the update flag, rate, format, start, stop and position in the newsegment event.
void parse (bool& update, double& rate, Format& format, gint64& start, gint64& stop, gint64& position, double& applied_rate)
 Get the update, rate, format, start, stop, position and applied_rate in the newsegment event.

Static Public Member Functions

static Glib::RefPtr<Gst::Eventcreate (bool update, double rate, Format format, gint64 strat, gint64 stop, gint64 position, double applied_rate=1.0)
 Allocate a new newsegment event with the given format/values tripplets.


Detailed Description

A new segment event.

See create() for more details.


Constructor& Destructor Documentation

Gst::EventNewSegment::EventNewSegment ( GstEvent *  event  )  [explicit]


Member Function Documentation

static Glib::RefPtr<Gst::Event> Gst::EventNewSegment::create ( bool  update,
double  rate,
Format  format,
gint64  strat,
gint64  stop,
gint64  position,
double  applied_rate = 1.0 
) [static]

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)

Parameters:
update Is this segment an update to a previous one.
rate A new rate for playback.
format The format of the segment values.
start The start value of the segment.
stop The stop value of the segment.
position Stream position.
applied_rate The rate factor which has already been applied.
Returns:
A new newsegment event.
Since 0.10.6

void Gst::EventNewSegment::parse ( bool &  update,
double &  rate,
Format format,
gint64 &  start,
gint64 &  stop,
gint64 &  position,
double &  applied_rate 
)

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.

Parameters:
update A pointer to the update flag of the segment.
rate A pointer to the rate of the segment.
format A pointer to the format of the newsegment values.
start A pointer to store the start value in.
stop A pointer to store the stop value in.
position A pointer to store the stream time in.
applied_rate A pointer to the applied_rate of the segment.
Since 0.10.6

void Gst::EventNewSegment::parse ( bool &  update,
double &  rate,
Format format,
gint64 &  start,
gint64 &  stop,
gint64 &  position 
)

Get the update flag, rate, format, start, stop and position in the newsegment event.

Parameters:
update A pointer to the update flag of the segment.
rate A pointer to the rate of the segment.
format A pointer to the format of the newsegment values.
start A pointer to store the start value in.
stop A pointer to store the stop value in.
position A pointer to store the stream time in.


The documentation for this class was generated from the following file:

Generated on Thu Jan 15 09:33:12 2009 for gstreamermm by  doxygen 1.5.7.1