gst/adder/gstadder.c (gst_adder_src_event, gst_adder_collected, gst_adder_change_state): gst/adder/gstadder.h (bps, o...
Original commit message from CVS: * gst/adder/gstadder.c (gst_adder_src_event, gst_adder_collected, gst_adder_change_state): * gst/adder/gstadder.h (bps, offset, collect_event, segment, segment_pending, segment_position, segment_rate): Handle playback-rate on adder.
This commit is contained in:
parent
db624febb8
commit
736a5c082f
@ -1,3 +1,11 @@
|
|||||||
|
2007-05-08 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
|
* gst/adder/gstadder.c (gst_adder_src_event, gst_adder_collected,
|
||||||
|
gst_adder_change_state):
|
||||||
|
* gst/adder/gstadder.h (bps, offset, collect_event, segment,
|
||||||
|
segment_pending, segment_position, segment_rate):
|
||||||
|
Handle playback-rate on adder.
|
||||||
|
|
||||||
2007-05-07 Michael Smith <msmith@fluendo.com>
|
2007-05-07 Michael Smith <msmith@fluendo.com>
|
||||||
|
|
||||||
* ext/theora/gsttheoradec.h:
|
* ext/theora/gsttheoradec.h:
|
||||||
|
@ -443,9 +443,9 @@ gst_adder_src_event (GstPad * pad, GstEvent * event)
|
|||||||
GstSeekType curtype;
|
GstSeekType curtype;
|
||||||
gint64 cur;
|
gint64 cur;
|
||||||
|
|
||||||
/* parse the flushing flag */
|
/* parse the seek parameters */
|
||||||
gst_event_parse_seek (event, NULL, NULL, &flags, &curtype, &cur, NULL,
|
gst_event_parse_seek (event, &adder->segment_rate, NULL, &flags, &curtype,
|
||||||
NULL);
|
&cur, NULL, NULL);
|
||||||
|
|
||||||
/* check if we are flushing */
|
/* check if we are flushing */
|
||||||
if (flags & GST_SEEK_FLAG_FLUSH) {
|
if (flags & GST_SEEK_FLAG_FLUSH) {
|
||||||
@ -741,6 +741,7 @@ gst_adder_collected (GstCollectPads * pads, gpointer user_data)
|
|||||||
GstEvent *event;
|
GstEvent *event;
|
||||||
|
|
||||||
/* FIXME, use rate/applied_rate as set on all sinkpads.
|
/* FIXME, use rate/applied_rate as set on all sinkpads.
|
||||||
|
* - currently we just set rate as received from last seek-event
|
||||||
* We could potentially figure out the duration as well using
|
* We could potentially figure out the duration as well using
|
||||||
* the current segment positions and the stated stop positions.
|
* the current segment positions and the stated stop positions.
|
||||||
* Also we just start from stream time 0 which is rather
|
* Also we just start from stream time 0 which is rather
|
||||||
@ -752,7 +753,7 @@ gst_adder_collected (GstCollectPads * pads, gpointer user_data)
|
|||||||
* the later streams would be delayed until the stream times
|
* the later streams would be delayed until the stream times
|
||||||
* match.
|
* match.
|
||||||
*/
|
*/
|
||||||
event = gst_event_new_new_segment_full (FALSE, 1.0,
|
event = gst_event_new_new_segment_full (FALSE, adder->segment_rate,
|
||||||
1.0, GST_FORMAT_TIME, adder->timestamp, -1, adder->segment_position);
|
1.0, GST_FORMAT_TIME, adder->timestamp, -1, adder->segment_position);
|
||||||
|
|
||||||
gst_pad_push_event (adder->srcpad, event);
|
gst_pad_push_event (adder->srcpad, event);
|
||||||
@ -812,6 +813,7 @@ gst_adder_change_state (GstElement * element, GstStateChange transition)
|
|||||||
adder->offset = 0;
|
adder->offset = 0;
|
||||||
adder->segment_pending = TRUE;
|
adder->segment_pending = TRUE;
|
||||||
adder->segment_position = 0;
|
adder->segment_position = 0;
|
||||||
|
adder->segment_rate = 1.0;
|
||||||
gst_segment_init (&adder->segment, GST_FORMAT_UNDEFINED);
|
gst_segment_init (&adder->segment, GST_FORMAT_UNDEFINED);
|
||||||
gst_collect_pads_start (adder->collect);
|
gst_collect_pads_start (adder->collect);
|
||||||
break;
|
break;
|
||||||
|
@ -86,6 +86,7 @@ struct _GstAdder {
|
|||||||
GstSegment segment;
|
GstSegment segment;
|
||||||
gboolean segment_pending;
|
gboolean segment_pending;
|
||||||
guint64 segment_position;
|
guint64 segment_position;
|
||||||
|
gdouble segment_rate;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstAdderClass {
|
struct _GstAdderClass {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user