+2005-07-27 Wim Taymans <wim@fluendo.com>
+
+ * ext/amrnb/amrnbparse.c: (gst_amrnbparse_event),
+ (gst_amrnbparse_loop):
+ * ext/dv/gstdvdec.c: (gst_dvdec_handle_sink_event),
+ (gst_dvdec_handle_src_event), (gst_dvdec_decode_frame):
+ * ext/mad/gstid3tag.c: (gst_id3_tag_src_event),
+ (gst_id3_tag_sink_event), (gst_id3_tag_chain):
+ * ext/mad/gstmad.c: (gst_mad_src_query), (index_seek),
+ (normal_seek), (gst_mad_sink_event), (gst_mad_chain):
+ * ext/mpeg2dec/gstmpeg2dec.c:
+ * ext/shout2/gstshout2.c: (gst_shout2send_event):
+ * ext/sidplay/gstsiddec.cc:
+ * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event),
+ (gst_avi_demux_send_event), (gst_avi_demux_stream_header),
+ (gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry):
+ * gst/goom/gstgoom.c: (gst_goom_event):
+ * gst/realmedia/rmdemux.c: (gst_rmdemux_sink_event),
+ (gst_rmdemux_chain), (gst_rmdemux_send_event),
+ (gst_rmdemux_add_stream):
+ * gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek),
+ (gst_wavparse_stream_headers), (gst_wavparse_stream_data),
+ (gst_wavparse_loop), (gst_wavparse_srcpad_event):
+ Various event updates and cleanups.
+
2005-07-25 Christian Schaller <uraeus@gnome.org>
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_EOS:
- case GST_EVENT_DISCONTINUOUS:
default:
break;
}
eos:
{
GST_LOG_OBJECT (amrnbparse, "pausing task");
- gst_pad_push_event (amrnbparse->srcpad, gst_event_new (GST_EVENT_EOS));
+ gst_pad_push_event (amrnbparse->srcpad, gst_event_new_eos ());
gst_pad_pause_task (pad);
return;
}
gst_id3_tag_src_event (GstPad * pad, GstEvent * event)
{
GstID3Tag *tag;
+ gboolean res = FALSE;
tag = GST_ID3_TAG (gst_pad_get_parent (pad));
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SEEK:
- if (GST_EVENT_SEEK_FORMAT (event) == GST_FORMAT_BYTES &&
+ {
+ gdouble rate;
+ GstFormat format;
+ GstSeekType cur_type, stop_type;
+ GstSeekFlags flags;
+ gint64 cur, stop;
+
+ gst_event_parse_seek (event, &rate, &format, &flags,
+ &cur_type, &cur, &stop_type, &stop);
+
+ if (format == GST_FORMAT_BYTES &&
tag->state == GST_ID3_TAG_STATE_NORMAL &&
- GST_PAD_PEER (tag->sinkpad)) {
+ gst_pad_is_linked (tag->sinkpad)) {
GstEvent *new;
gint diff = 0;
- switch (GST_EVENT_SEEK_METHOD (event)) {
- case GST_SEEK_METHOD_SET:
+ switch (cur_type) {
+ case GST_SEEK_TYPE_SET:
diff = tag->v2tag_size - tag->v2tag_size_new;
break;
- case GST_SEEK_METHOD_CUR:
+ case GST_SEEK_TYPE_CUR:
break;
- case GST_SEEK_METHOD_END:
- diff =
- GST_EVENT_SEEK_OFFSET (event) ? tag->v1tag_size_new -
- tag->v1tag_size : 0;
+ case GST_SEEK_TYPE_END:
+ diff = cur ? tag->v1tag_size_new - tag->v1tag_size : 0;
break;
default:
g_assert_not_reached ();
break;
}
- new = gst_event_new_seek (GST_EVENT_SEEK_TYPE (event),
- GST_EVENT_SEEK_OFFSET (event) + diff);
- gst_event_unref (event);
- return gst_pad_push_event (tag->sinkpad, new);
+ new = gst_event_new_seek (rate, format, flags,
+ cur_type, cur + diff, stop_type, stop);
+ gst_pad_push_event (tag->sinkpad, new);
+ res = TRUE;
}
break;
+ }
default:
break;
}
gst_event_unref (event);
- return FALSE;
+ gst_object_unref (tag);
+
+ return res;
}
GstTagList *
GstID3Tag *tag = GST_ID3_TAG (gst_pad_get_parent (pad));
switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_DISCONTINUOUS:
+ case GST_EVENT_NEWSEGMENT:
+#if 0
switch (tag->state) {
case GST_ID3_TAG_STATE_READING_V2_TAG:{
gint64 value, end_value;
default:
g_assert_not_reached ();
}
+#endif
break;
case GST_EVENT_TAG:
+ {
+ GstTagList *list;
+
+ gst_event_parse_tag (event, &list);
+
if (tag->event_tags) {
- gst_tag_list_insert (tag->event_tags, gst_event_tag_get_list (event),
- GST_TAG_MERGE_PREPEND);
+ gst_tag_list_insert (tag->event_tags, list, GST_TAG_MERGE_PREPEND);
} else {
- tag->event_tags = gst_tag_list_copy (gst_event_tag_get_list (event));
+ tag->event_tags = gst_tag_list_copy (list);
}
gst_event_unref (event);
break;
+ }
case GST_EVENT_EOS:
if (tag->v1tag_render && IS_MUXER (tag)) {
GstTagList *merged;
/* seek to beginning */
GST_LOG_OBJECT (tag, "seeking back to beginning");
gst_id3_tag_set_state (tag, GST_ID3_TAG_STATE_SEEKING_TO_NORMAL);
+#if 0
if (!gst_pad_push_event (tag->sinkpad,
gst_event_new_seek (GST_FORMAT_BYTES | GST_SEEK_METHOD_SET |
GST_SEEK_FLAG_FLUSH, tag->v2tag_size))) {
GST_ELEMENT_ERROR (tag, CORE, SEEK, (NULL),
("can't seek back to beginning from reading ID3v1 tag"));
}
+#endif
} else {
gst_id3_tag_send_tag_event (tag);
/* set eos, we're done parsing tags */
GST_LOG_OBJECT (tag, "setting EOS after reading ID3v1 tag");
gst_id3_tag_set_state (tag, GST_ID3_TAG_STATE_NORMAL);
//gst_element_set_eos (GST_ELEMENT (tag));
- gst_pad_push_event (tag->srcpad, gst_event_new (GST_EVENT_EOS));
+ gst_pad_push_event (tag->srcpad, gst_event_new_eos ());
}
return GST_FLOW_OK;
case GST_ID3_TAG_STATE_READING_V2_TAG:
return GST_FLOW_OK;
/* seek to ID3v1 tag */
gst_id3_tag_set_state (tag, GST_ID3_TAG_STATE_SEEKING_TO_V1_TAG);
+#if 0
if (gst_pad_push_event (tag->sinkpad,
gst_event_new_seek (GST_FORMAT_BYTES | GST_SEEK_METHOD_END |
GST_SEEK_FLAG_FLUSH, -128))) {
gst_buffer_unref (buffer);
return GST_FLOW_OK;
}
+#endif
gst_id3_tag_set_state (tag, GST_ID3_TAG_STATE_NORMAL_START);
/* fall through */
case GST_ID3_TAG_STATE_NORMAL_START:
if (tag->parse_mode == GST_ID3_TAG_PARSE_ANY) {
gst_buffer_unref (buffer);
//gst_element_set_eos (GST_ELEMENT (tag));
- gst_pad_push_event (tag->srcpad, gst_event_new (GST_EVENT_EOS));
+ gst_pad_push_event (tag->srcpad, gst_event_new_eos ());
} else {
if (GST_BUFFER_OFFSET_IS_VALID (buffer)) {
if (buffer->offset >= tag->v1tag_offset) {
static gboolean
index_seek (GstMad * mad, GstPad * pad, GstEvent * event)
{
+ gdouble rate;
+ GstFormat format;
+ GstSeekFlags flags;
+ GstSeekType cur_type, stop_type;
+ gint64 cur, stop;
+
/* since we know the exact byteoffset of the frame,
make sure to try bytes first */
const GstFormat *try_formats = try_all_formats;
const GstFormat *peer_formats;
+ gst_event_parse_seek (event, &rate, &format, &flags,
+ &cur_type, &cur, &stop_type, &stop);
+
GstIndexEntry *entry = gst_index_get_assoc_entry (mad->index, mad->index_id,
GST_INDEX_LOOKUP_BEFORE, 0,
- GST_EVENT_SEEK_FORMAT (event),
- GST_EVENT_SEEK_OFFSET (event));
+ format, cur);
GST_DEBUG ("index seek");
GST_DEBUG ("index %s %" G_GINT64_FORMAT
" -> %s %" G_GINT64_FORMAT,
- gst_format_get_details (GST_EVENT_SEEK_FORMAT (event))->nick,
- GST_EVENT_SEEK_OFFSET (event),
- gst_format_get_details (*try_formats)->nick, value);
+ gst_format_get_details (format)->nick,
+ cur, gst_format_get_details (*try_formats)->nick, value);
- seek_event = gst_event_new_seek (*try_formats |
- GST_SEEK_METHOD_SET | GST_SEEK_FLAG_FLUSH, value);
+ seek_event = gst_event_new_seek (rate, *try_formats, flags,
+ cur_type, value, stop_type, stop);
if (gst_pad_send_event (GST_PAD_PEER (mad->sinkpad), seek_event)) {
/* seek worked, we're done, loop will exit */
mad->restart = TRUE;
- g_assert (GST_EVENT_SEEK_FORMAT (event) == GST_FORMAT_TIME);
- mad->segment_start = GST_EVENT_SEEK_OFFSET (event);
+ g_assert (format == GST_FORMAT_TIME);
+ mad->segment_start = cur;
return TRUE;
}
}
static gboolean
normal_seek (GstMad * mad, GstPad * pad, GstEvent * event)
{
- gint64 time_offset, bytes_offset;
- GstFormat format;
+ gdouble rate;
+ GstFormat format, conv;
+ GstSeekFlags flags;
+ GstSeekType cur_type, stop_type;
+ gint64 cur, stop;
+ gint64 time_cur, time_stop;
+ gint64 bytes_cur, bytes_stop;
guint flush;
/* const GstFormat *peer_formats; */
GST_DEBUG ("normal seek");
- format = GST_FORMAT_TIME;
- if (GST_EVENT_SEEK_FORMAT (event) != GST_FORMAT_TIME) {
- if (!gst_mad_convert_src (pad, GST_EVENT_SEEK_FORMAT (event),
- GST_EVENT_SEEK_OFFSET (event), &format, &time_offset)) {
- /* probably unsupported seek format */
- GST_DEBUG ("failed to convert format %u into GST_FORMAT_TIME",
- GST_EVENT_SEEK_FORMAT (event));
- return FALSE;
- }
+ gst_event_parse_seek (event, &rate, &format, &flags,
+ &cur_type, &cur, &stop_type, &stop);
+
+ if (format != GST_FORMAT_TIME) {
+ conv = GST_FORMAT_TIME;
+ if (!gst_mad_convert_src (pad, format, cur, &conv, &time_cur))
+ goto convert_error;
+ if (!gst_mad_convert_src (pad, format, stop, &conv, &time_stop))
+ goto convert_error;
} else {
- time_offset = GST_EVENT_SEEK_OFFSET (event);
+ time_cur = cur;
+ time_stop = stop;
}
- GST_DEBUG ("seek to time %" GST_TIME_FORMAT, GST_TIME_ARGS (time_offset));
+ GST_DEBUG ("seek to time %" GST_TIME_FORMAT "-%" GST_TIME_FORMAT,
+ GST_TIME_ARGS (time_cur), GST_TIME_ARGS (time_stop));
/* shave off the flush flag, we'll need it later */
- flush = GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH;
+ flush = flags & GST_SEEK_FLAG_FLUSH;
/* assume the worst */
res = FALSE;
- format = GST_FORMAT_BYTES;
- if (gst_mad_convert_sink (pad, GST_FORMAT_TIME, time_offset,
- &format, &bytes_offset)) {
+ conv = GST_FORMAT_BYTES;
+ if (!gst_mad_convert_sink (pad, GST_FORMAT_TIME, time_cur, &conv, &bytes_cur))
+ goto convert_error;
+ if (!gst_mad_convert_sink (pad, GST_FORMAT_TIME, time_stop, &conv,
+ &bytes_stop))
+ goto convert_error;
+
+ {
GstEvent *seek_event;
/* conversion succeeded, create the seek */
seek_event =
- gst_event_new_seek (format | GST_EVENT_SEEK_METHOD (event) | flush,
- bytes_offset);
+ gst_event_new_seek (rate, GST_FORMAT_BYTES, flags, cur_type,
+ bytes_cur, stop_type, bytes_stop);
/* do the seek */
- res = gst_pad_send_event (GST_PAD_PEER (mad->sinkpad), seek_event);
+ res = gst_pad_push_event (mad->sinkpad, seek_event);
}
#if 0
peer_formats = gst_pad_get_formats (GST_PAD_PEER (mad->sinkpad));
#endif
return res;
+
+ /* ERRORS */
+convert_error:
+ {
+ /* probably unsupported seek format */
+ GST_DEBUG ("failed to convert format %u into GST_FORMAT_TIME", format);
+ return FALSE;
+ }
}
static gboolean
GST_DEBUG ("handling event %d", GST_EVENT_TYPE (event));
switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_DISCONTINUOUS:
+ case GST_EVENT_NEWSEGMENT:
/* this isn't really correct? */
+ GST_STREAM_LOCK (pad);
result = gst_pad_push_event (mad->srcpad, event);
mad->tempsize = 0;
/* we don't need to restart when we get here */
mad->restart = FALSE;
+ GST_STREAM_UNLOCK (pad);
break;
case GST_EVENT_EOS:
+ GST_STREAM_LOCK (pad);
mad->caps_set = FALSE; /* could be a new stream */
result = gst_pad_push_event (mad->srcpad, event);
+ GST_STREAM_UNLOCK (pad);
break;
default:
result = gst_pad_push_event (mad->srcpad, event);
}
if (mpeg2dec->pending_event) {
- done =
- GST_EVENT_SEEK_FLAGS (mpeg2dec->
- pending_event) & GST_SEEK_FLAG_FLUSH;
+ done = TRUE;
+#if 0
+ GST_EVENT_SEEK_FLAGS (mpeg2dec->pending_event) & GST_SEEK_FLAG_FLUSH;
+#endif
gst_mpeg2dec_src_event (mpeg2dec->srcpad, mpeg2dec->pending_event);
mpeg2dec->pending_event = NULL;
gboolean ret = TRUE;
switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_DISCONTINUOUS:
+ case GST_EVENT_NEWSEGMENT:
{
+#if 0
gint64 time;
gint64 end_time; /* 0.9 just to call
gst_event_discont_get_value, non
used anywhere else */
+#endif
GST_STREAM_LOCK (pad);
+#if 0
if (!gst_event_discont_get_value (event, GST_FORMAT_TIME, &time,
&end_time)
|| !GST_CLOCK_TIME_IS_VALID (time)) {
GST_TIME_FORMAT ")", mpeg2dec->next_time,
GST_TIME_ARGS (mpeg2dec->next_time));
}
+#endif
// what's hell is that
/*
}
*/
- GST_STREAM_UNLOCK (pad);
ret = gst_pad_event_default (pad, event);
+ GST_STREAM_UNLOCK (pad);
break;
}
- case GST_EVENT_FLUSH:
- {
+ case GST_EVENT_FLUSH_START:
+ ret = gst_pad_event_default (pad, event);
+ break;
+ case GST_EVENT_FLUSH_STOP:
+ GST_STREAM_LOCK (pad);
mpeg2dec->discont_state = MPEG2DEC_DISC_NEW_PICTURE;
gst_mpeg2dec_flush_decoder (mpeg2dec);
ret = gst_pad_event_default (pad, event);
+ GST_STREAM_UNLOCK (pad);
break;
- }
case GST_EVENT_EOS:
GST_STREAM_LOCK (pad);
if (mpeg2dec->index && mpeg2dec->closed) {
gst_index_commit (mpeg2dec->index, mpeg2dec->index_id);
}
- GST_STREAM_UNLOCK (pad);
ret = gst_pad_event_default (pad, event);
+ GST_STREAM_UNLOCK (pad);
break;
default:
{
GstIndexEntry *entry;
GstMpeg2dec *mpeg2dec;
+ gdouble rate;
+ GstFormat format;
+ GstSeekFlags flags;
+ GstSeekType cur_type, stop_type;
+ gint64 cur, stop;
mpeg2dec = GST_MPEG2DEC (GST_PAD_PARENT (pad));
+ gst_event_parse_seek (event, &rate, &format, &flags,
+ &cur_type, &cur, &stop_type, &stop);
+
entry = gst_index_get_assoc_entry (mpeg2dec->index, mpeg2dec->index_id,
- GST_INDEX_LOOKUP_BEFORE, GST_ASSOCIATION_FLAG_KEY_UNIT,
- GST_EVENT_SEEK_FORMAT (event), GST_EVENT_SEEK_OFFSET (event));
+ GST_INDEX_LOOKUP_BEFORE, GST_ASSOCIATION_FLAG_KEY_UNIT, format, cur);
- if ((entry) && GST_PAD_PEER (mpeg2dec->sinkpad)) {
+ if ((entry) && gst_pad_is_linked (mpeg2dec->sinkpad)) {
const GstFormat *peer_formats, *try_formats;
/* since we know the exact byteoffset of the frame, make sure to seek on bytes first */
GST_CAT_DEBUG (GST_CAT_SEEK, "index %s %" G_GINT64_FORMAT
" -> %s %" G_GINT64_FORMAT,
- gst_format_get_details (GST_EVENT_SEEK_FORMAT (event))->nick,
- GST_EVENT_SEEK_OFFSET (event),
- gst_format_get_details (*try_formats)->nick, value);
+ gst_format_get_details (format)->nick,
+ cur, gst_format_get_details (*try_formats)->nick, value);
/* lookup succeeded, create the seek */
seek_event =
- gst_event_new_seek (*try_formats | GST_SEEK_METHOD_SET |
- GST_SEEK_FLAG_FLUSH, value);
+ gst_event_new_seek (rate, *try_formats, flags, cur_type, value,
+ stop_type, stop);
/* do the seek */
- if (gst_pad_send_event (GST_PAD_PEER (mpeg2dec->sinkpad), seek_event)) {
+ if (gst_pad_push_event (mpeg2dec->sinkpad, seek_event)) {
/* seek worked, we're done, loop will exit */
#if 0
mpeg2dec->segment_start = GST_EVENT_SEEK_OFFSET (event);
static gboolean
normal_seek (GstPad * pad, GstEvent * event)
{
- gint64 time_offset, bytes_offset;
- GstFormat format;
guint flush;
+ gdouble rate;
+ GstFormat format, conv;
+ GstSeekFlags flags;
+ GstSeekType cur_type, stop_type;
+ gint64 cur, stop;
+ gint64 time_cur, bytes_cur;
+ gint64 time_stop, bytes_stop;
GstMpeg2dec *mpeg2dec;
GST_DEBUG ("normal seek");
- format = GST_FORMAT_TIME;
- if (GST_EVENT_SEEK_FORMAT (event) != GST_FORMAT_TIME) {
- if (!gst_mpeg2dec_src_convert (pad, GST_EVENT_SEEK_FORMAT (event),
- GST_EVENT_SEEK_OFFSET (event), &format, &time_offset)) {
- /* probably unsupported seek format */
- GST_DEBUG ("failed to convert format %u into GST_FORMAT_TIME",
- GST_EVENT_SEEK_FORMAT (event));
- return FALSE;
- }
+ gst_event_parse_seek (event, &rate, &format, &flags,
+ &cur_type, &cur, &stop_type, &stop);
+
+ conv = GST_FORMAT_TIME;
+ if (format != GST_FORMAT_TIME) {
+ if (!gst_mpeg2dec_src_convert (pad, format, cur, &conv, &time_cur))
+ goto convert_failed;
+ if (!gst_mpeg2dec_src_convert (pad, format, stop, &conv, &time_stop))
+ goto convert_failed;
} else {
- time_offset = GST_EVENT_SEEK_OFFSET (event);
+ time_cur = cur;
+ time_stop = stop;
}
- GST_DEBUG ("seek to time %" GST_TIME_FORMAT, GST_TIME_ARGS (time_offset));
+ GST_DEBUG ("seek to time %" GST_TIME_FORMAT "-%" GST_TIME_FORMAT,
+ GST_TIME_ARGS (time_cur), GST_TIME_ARGS (time_stop));
/* shave off the flush flag, we'll need it later */
- flush = GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH;
+ flush = flags & GST_SEEK_FLAG_FLUSH;
/* assume the worst */
res = FALSE;
- format = GST_FORMAT_BYTES;
- if (gst_mpeg2dec_sink_convert (pad, GST_FORMAT_TIME, time_offset,
- &format, &bytes_offset)) {
+ conv = GST_FORMAT_BYTES;
+ if (!gst_mpeg2dec_sink_convert (pad, GST_FORMAT_TIME, time_cur,
+ &format, &bytes_cur))
+ goto convert_failed;
+ if (!gst_mpeg2dec_sink_convert (pad, GST_FORMAT_TIME, time_stop,
+ &format, &bytes_stop))
+ goto convert_failed;
+
+
+ {
GstEvent *seek_event;
/* conversion succeeded, create the seek */
seek_event =
- gst_event_new_seek (format | GST_EVENT_SEEK_METHOD (event) | flush,
- bytes_offset);
+ gst_event_new_seek (rate, GST_FORMAT_BYTES, flags,
+ cur_type, bytes_cur, stop_type, bytes_stop);
/* do the seek */
- res = gst_pad_send_event (GST_PAD_PEER (mpeg2dec->sinkpad), seek_event);
+ res = gst_pad_push_event (mpeg2dec->sinkpad, seek_event);
}
#if 0
#endif
return res;
+
+ /* ERRORS */
+convert_failed:
+ {
+ /* probably unsupported seek format */
+ GST_DEBUG ("failed to convert format %u into GST_FORMAT_TIME", format);
+ return FALSE;
+ }
}
break;
case GST_EVENT_NAVIGATION:
/* Forward a navigation event unchanged */
- if (GST_PAD_PEER (mpeg2dec->sinkpad))
- return gst_pad_send_event (GST_PAD_PEER (mpeg2dec->sinkpad), event);
-
- res = FALSE;
- break;
+ return gst_pad_push_event (mpeg2dec->sinkpad, event);
default:
res = FALSE;
break;
static GstElementStateReturn
gst_mpeg2dec_change_state (GstElement * element)
{
+ GstElementStateReturn ret;
GstMpeg2dec *mpeg2dec = GST_MPEG2DEC (element);
switch (GST_STATE_TRANSITION (element)) {
case GST_STATE_NULL_TO_READY:
break;
case GST_STATE_READY_TO_PAUSED:
- {
mpeg2dec->next_time = 0;
-
gst_mpeg2dec_reset (mpeg2dec);
break;
- }
case GST_STATE_PAUSED_TO_PLAYING:
+ default:
break;
+ }
+
+ ret = GST_ELEMENT_CLASS (parent_class)->change_state (element);
+
+ switch (GST_STATE_TRANSITION (element)) {
case GST_STATE_PLAYING_TO_PAUSED:
break;
case GST_STATE_PAUSED_TO_READY:
default:
break;
}
-
- return GST_ELEMENT_CLASS (parent_class)->change_state (element);
+ return ret;
}
static void
res = start_play_tune (siddec);
GST_STREAM_UNLOCK (pad);
break;
- case GST_EVENT_DISCONTINUOUS:
+ case GST_EVENT_NEWSEGMENT:
res = FALSE;
break;
default:
GST_LOG_OBJECT (rmdemux, "handling event");
switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_DISCONTINUOUS:
- GST_DEBUG_OBJECT (rmdemux, "discontinuous event");
+ case GST_EVENT_NEWSEGMENT:
+ GST_DEBUG_OBJECT (rmdemux, "newsegment event");
gst_event_unref (event);
break;
default:
rmdemux->have_pads = TRUE;
gst_rmdemux_send_event (rmdemux,
- gst_event_new_discontinuous (1.0, GST_FORMAT_TIME, (gint64) 0,
- (gint64) - 1, NULL));
+ gst_event_new_newsegment (1.0, GST_FORMAT_TIME, (gint64) 0,
+ (gint64) - 1, 0));
}
/* The actual header is only 8 bytes */
gst_element_add_pad (GST_ELEMENT (rmdemux), stream->pad);
gst_pad_push_event (stream->pad,
- gst_event_new_discontinuous (1.0, GST_FORMAT_TIME, (gint64) 0,
- (gint64) - 1, NULL));
+ gst_event_new_newsegment (1.0, GST_FORMAT_TIME, (gint64) 0,
+ (gint64) - 1, 0));
/* If there's some extra data then send it as the first packet */
if (stream->extra_data_size > 0) {