gst_element_post_message (GST_ELEMENT (dvdemux),
gst_message_new_segment_done (GST_OBJECT_CAST (dvdemux),
dvdemux->time_segment.format, dvdemux->time_segment.position));
+ gst_dvdemux_push_event (dvdemux,
+ gst_event_new_segment_done (dvdemux->time_segment.format,
+ dvdemux->time_segment.position));
} else {
gst_dvdemux_push_event (dvdemux, gst_event_new_eos ());
}
(GST_ELEMENT_CAST (avi),
gst_message_new_segment_done (GST_OBJECT_CAST (avi),
GST_FORMAT_TIME, stop));
+ gst_avi_demux_push_event (avi,
+ gst_event_new_segment_done (GST_FORMAT_TIME, stop));
} else {
push_eos = TRUE;
}
gst_element_post_message (GST_ELEMENT_CAST (demux),
gst_message_new_segment_done (GST_OBJECT_CAST (demux),
GST_FORMAT_TIME, stop));
+ gst_flv_demux_push_src_event (demux,
+ gst_event_new_segment_done (GST_FORMAT_TIME, stop));
} else { /* Reverse playback */
GST_LOG_OBJECT (demux, "Sending segment done, at beginning of "
"segment");
gst_element_post_message (GST_ELEMENT_CAST (demux),
gst_message_new_segment_done (GST_OBJECT_CAST (demux),
GST_FORMAT_TIME, demux->segment.start));
+ gst_flv_demux_push_src_event (demux,
+ gst_event_new_segment_done (GST_FORMAT_TIME,
+ demux->segment.start));
}
} else {
/* normal playback, send EOS to all linked pads */
if (eos) {
if ((self->segment.flags & GST_SEEK_FLAG_SEGMENT)) {
GstMessage *m;
+ GstEvent *e;
GST_DEBUG_OBJECT (pad, "Sending segment done at end of segment");
- if (self->segment.rate >= 0)
+ if (self->segment.rate >= 0) {
m = gst_message_new_segment_done (GST_OBJECT_CAST (self),
GST_FORMAT_TIME, self->segment.stop);
- else
+ e = gst_event_new_segment_done (GST_FORMAT_TIME, self->segment.stop);
+ } else {
m = gst_message_new_segment_done (GST_OBJECT_CAST (self),
GST_FORMAT_TIME, self->segment.start);
+ e = gst_event_new_segment_done (GST_FORMAT_TIME, self->segment.start);
+ }
gst_element_post_message (GST_ELEMENT_CAST (self), m);
+ gst_pad_push_event (self->srcpad, e);
} else {
GST_DEBUG_OBJECT (pad, "Sending EOS at end of segment");
gst_pad_push_event (self->srcpad, gst_event_new_eos ());
gst_element_post_message (GST_ELEMENT_CAST (qtdemux),
gst_message_new_segment_done (GST_OBJECT_CAST (qtdemux),
GST_FORMAT_TIME, stop));
+ gst_qtdemux_push_event (qtdemux,
+ gst_event_new_segment_done (GST_FORMAT_TIME, stop));
} else {
/* For Reverse Playback */
GST_LOG_OBJECT (qtdemux, "Sending segment done, at start of segment");
gst_element_post_message (GST_ELEMENT_CAST (qtdemux),
gst_message_new_segment_done (GST_OBJECT_CAST (qtdemux),
GST_FORMAT_TIME, qtdemux->segment.start));
+ gst_qtdemux_push_event (qtdemux,
+ gst_event_new_segment_done (GST_FORMAT_TIME,
+ qtdemux->segment.start));
}
} else {
GST_LOG_OBJECT (qtdemux, "Sending EOS at end of segment");
gst_element_post_message (GST_ELEMENT (demux),
gst_message_new_segment_done (GST_OBJECT (demux), GST_FORMAT_TIME,
stop));
+ gst_matroska_demux_send_event (demux,
+ gst_event_new_segment_done (GST_FORMAT_TIME, stop));
} else {
push_eos = TRUE;
}
gst_element_post_message (GST_ELEMENT (parse),
gst_message_new_segment_done (GST_OBJECT (parse), GST_FORMAT_TIME,
stop));
+ gst_matroska_parse_send_event (parse,
+ gst_event_new_segment_done (GST_FORMAT_TIME, stop));
} else {
push_eos = TRUE;
}
gst_element_post_message (GST_ELEMENT_CAST (src),
gst_message_new_segment_done (GST_OBJECT_CAST (src),
src->segment.format, src->segment.position));
+ gst_rtspsrc_push_event (src,
+ gst_event_new_segment_done (src->segment.format,
+ src->segment.position));
} else {
gst_rtspsrc_push_event (src, gst_event_new_eos ());
}
gst_element_post_message (GST_ELEMENT_CAST (wav),
gst_message_new_segment_done (GST_OBJECT_CAST (wav),
wav->segment.format, stop));
+ gst_pad_push_event (wav->srcpad,
+ gst_event_new_segment_done (wav->segment.format, stop));
} else {
gst_pad_push_event (wav->srcpad, gst_event_new_eos ());
}