summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
Diffstat (limited to 'gst')
-rw-r--r--gst/avi/gstavidemux.c38
-rw-r--r--gst/goom/gstgoom.c5
-rw-r--r--gst/wavparse/gstwavparse.c37
3 files changed, 44 insertions, 36 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index 3170b516..3e6a4836 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -460,22 +460,30 @@ gst_avi_demux_handle_src_event (GstPad * pad, GstEvent * event)
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SEEK:
+ {
+ GstFormat format;
+ GstSeekFlags flags;
+ gint64 cur, stop;
+
+ gst_event_parse_seek (event, NULL, &format, &flags, NULL, &cur, NULL,
+ &stop);
+
GST_DEBUG_OBJECT (avi, "seek format %d, %08x",
- GST_EVENT_SEEK_FORMAT (event), stream->strh->type);
+ format, stream->strh->type);
- switch (GST_EVENT_SEEK_FORMAT (event)) {
+ switch (format) {
case GST_FORMAT_BYTES:
case GST_FORMAT_DEFAULT:
case GST_FORMAT_TIME:{
gst_avi_index_entry *entry = NULL, *real;
- gint64 desired_offset = GST_EVENT_SEEK_OFFSET (event);
+ gint64 desired_offset = cur;
guint32 flags;
GST_DEBUG_OBJECT (avi, "seeking to %" G_GINT64_FORMAT,
desired_offset);
flags = GST_RIFF_IF_KEYFRAME;
- switch (GST_EVENT_SEEK_FORMAT (event)) {
+ switch (format) {
case GST_FORMAT_BYTES:
entry = gst_avi_demux_index_entry_for_byte (avi, 0, //stream->num,
desired_offset, flags);
@@ -494,6 +502,8 @@ gst_avi_demux_handle_src_event (GstPad * pad, GstEvent * event)
real = gst_avi_demux_index_entry_for_time (avi, stream->num,
desired_offset, 0);
break;
+ default:
+ break;
}
if (!(flags & GST_SEEK_FLAG_ACCURATE))
@@ -502,14 +512,13 @@ gst_avi_demux_handle_src_event (GstPad * pad, GstEvent * event)
if (entry) {
avi->seek_offset = entry->offset + avi->index_offset;
avi->last_seek = real->ts;
- avi->seek_flush =
- (GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH);
+ avi->seek_flush = flags & GST_SEEK_FLAG_FLUSH;
avi->seek_entry = entry->index_nr;
GST_DEBUG_OBJECT (avi, "Will seek to entry %d", avi->seek_entry);
res = gst_avi_demux_handle_seek (avi);
} else {
GST_DEBUG_OBJECT (avi, "no index entry found for format=%d value=%"
- G_GINT64_FORMAT, GST_EVENT_SEEK_FORMAT (event), desired_offset);
+ G_GINT64_FORMAT, format, desired_offset);
res = FALSE;
}
GST_LOG ("seek done");
@@ -520,6 +529,7 @@ gst_avi_demux_handle_src_event (GstPad * pad, GstEvent * event)
break;
}
break;
+ }
default:
res = FALSE;
break;
@@ -1912,11 +1922,11 @@ done:
}
/* send initial discont */
- avi->seek_event = gst_event_new_discontinuous (1.0,
+ avi->seek_event = gst_event_new_newsegment (1.0,
GST_FORMAT_TIME, (gint64) 0,
(gint64) (((gfloat) avi->stream[0].strh->scale) *
avi->stream[0].strh->length /
- avi->stream[0].strh->rate) * GST_SECOND, NULL);
+ avi->stream[0].strh->rate) * GST_SECOND, 0);
/* at this point we know all the streams and we can signal the no more
* pads signal */
@@ -1938,18 +1948,18 @@ gst_avi_demux_handle_seek (GstAviDemux * avi)
GST_LOG ("Seeking to entry %d", avi->seek_entry);
- gst_avi_demux_send_event (avi, gst_event_new_flush (FALSE));
+ gst_avi_demux_send_event (avi, gst_event_new_flush_start ());
GST_STREAM_LOCK (avi->sinkpad);
avi->current_entry = avi->seek_entry;
- avi->seek_event = gst_event_new_discontinuous (1.0,
+ avi->seek_event = gst_event_new_newsegment (1.0,
GST_FORMAT_TIME, avi->last_seek,
(gint64) (((gfloat) avi->stream[0].strh->scale) *
avi->stream[0].strh->length /
- avi->stream[0].strh->rate) * GST_SECOND, NULL);
+ avi->stream[0].strh->rate) * GST_SECOND, 0);
- gst_avi_demux_send_event (avi, gst_event_new_flush (TRUE));
+ gst_avi_demux_send_event (avi, gst_event_new_flush_stop ());
gst_pad_start_task (avi->sinkpad, (GstTaskFunction) gst_avi_demux_loop,
avi->sinkpad);
@@ -1969,7 +1979,7 @@ gst_avi_demux_process_next_entry (GstAviDemux * avi)
if (avi->current_entry >= avi->index_size) {
GST_LOG_OBJECT (avi, "Handled last index entry, setting EOS (%d > %d)",
avi->current_entry, avi->index_size);
- gst_avi_demux_send_event (avi, gst_event_new (GST_EVENT_EOS));
+ gst_avi_demux_send_event (avi, gst_event_new_eos ());
return GST_FLOW_WRONG_STATE;
} else {
GstBuffer *buf;
diff --git a/gst/goom/gstgoom.c b/gst/goom/gstgoom.c
index 1b955178..d59765ba 100644
--- a/gst/goom/gstgoom.c
+++ b/gst/goom/gstgoom.c
@@ -315,11 +315,12 @@ gst_goom_event (GstPad * pad, GstEvent * event)
goom = GST_GOOM (GST_PAD_PARENT (pad));
switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_DISCONTINUOUS:
+ case GST_EVENT_NEWSEGMENT:
{
gint64 start = 0, stop = 0;
+ GstFormat format;
- gst_event_discont_get_value (event, GST_FORMAT_TIME, &start, &stop);
+ gst_event_parse_newsegment (event, NULL, &format, &start, &stop, NULL);
gst_adapter_clear (goom->adapter);
goom->audio_basetime = start;
goom->samples_consumed = 0;
diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c
index 98d2809e..18012c4a 100644
--- a/gst/wavparse/gstwavparse.c
+++ b/gst/wavparse/gstwavparse.c
@@ -697,7 +697,7 @@ gst_wavparse_other (GstWavParse * wav)
static gboolean
gst_wavparse_handle_seek (GstWavParse * wav)
{
- gst_pad_push_event (wav->srcpad, gst_event_new_flush (FALSE));
+ gst_pad_push_event (wav->srcpad, gst_event_new_flush_start ());
GST_STREAM_LOCK (wav->sinkpad);
@@ -707,12 +707,12 @@ gst_wavparse_handle_seek (GstWavParse * wav)
/*
FIXME : currently the seek/discont doesn't care about the stop value !
*/
- wav->seek_event = gst_event_new_discontinuous (1.0,
+ wav->seek_event = gst_event_new_newsegment (1.0,
GST_FORMAT_TIME,
GST_SECOND *
- wav->seek_offset / wav->bps, GST_SECOND * wav->datasize / wav->bps, NULL);
+ wav->seek_offset / wav->bps, GST_SECOND * wav->datasize / wav->bps, 0);
- gst_pad_push_event (wav->srcpad, gst_event_new_flush (TRUE));
+ gst_pad_push_event (wav->srcpad, gst_event_new_flush_stop ());
gst_pad_start_task (wav->sinkpad, (GstTaskFunction) gst_wavparse_loop,
wav->sinkpad);
@@ -817,9 +817,9 @@ gst_wavparse_stream_headers (GstWavParse * wav)
GST_DEBUG ("Finished parsing headers");
/* Initial discont */
- wav->seek_event = gst_event_new_discontinuous (1.0,
+ wav->seek_event = gst_event_new_newsegment (1.0,
GST_FORMAT_TIME,
- (gint64) 0, (gint64) GST_SECOND * wav->datasize / wav->bps, NULL);
+ (gint64) 0, (gint64) GST_SECOND * wav->datasize / wav->bps, 0);
return GST_FLOW_OK;
}
@@ -836,10 +836,7 @@ gst_wavparse_stream_data (GstWavParse * wav)
GST_DEBUG ("stream data !!!");
/* Get the next n bytes and output them */
if (wav->dataleft == 0) {
- if ((res =
- gst_pad_push_event (wav->srcpad,
- gst_event_new (GST_EVENT_EOS))) != GST_FLOW_OK)
- return res;
+ gst_pad_push_event (wav->srcpad, gst_event_new_eos ());
return GST_FLOW_WRONG_STATE;
}
@@ -921,7 +918,7 @@ pause:
GST_ELEMENT_ERROR (wav, STREAM, STOPPED,
("streaming stopped, reason %d", ret),
("streaming stopped, reason %d", ret));
- gst_pad_push_event (wav->srcpad, gst_event_new (GST_EVENT_EOS));
+ gst_pad_push_event (wav->srcpad, gst_event_new_eos ());
}
}
@@ -1105,22 +1102,22 @@ gst_wavparse_srcpad_event (GstPad * pad, GstEvent * event)
gint64 bseek_start, bseek_stop;
GstFormat format;
GstFormat dformat = GST_FORMAT_BYTES;
+ gint64 cur, stop;
- format = GST_EVENT_SEEK_FORMAT (event);
+ gst_event_parse_seek (event, NULL, &format, NULL,
+ NULL, &cur, NULL, &stop);
GST_DEBUG ("seek format %d", format);
/* find the corresponding bytestream position */
if (format == GST_FORMAT_BYTES) {
- bseek_start = GST_EVENT_SEEK_OFFSET (event);
- bseek_stop = GST_EVENT_SEEK_ENDOFFSET (event);
+ bseek_start = cur;
+ bseek_stop = stop;
} else {
- res &=
- gst_wavparse_pad_convert (pad, format,
- GST_EVENT_SEEK_OFFSET (event), &dformat, &bseek_start);
- res &=
- gst_wavparse_pad_convert (pad, format,
- GST_EVENT_SEEK_ENDOFFSET (event), &dformat, &bseek_stop);
+ res &= gst_wavparse_pad_convert (pad, format,
+ cur, &dformat, &bseek_start);
+ res &= gst_wavparse_pad_convert (pad, format,
+ stop, &dformat, &bseek_stop);
if (!res)
return res;
}