summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2005-10-19 15:57:04 +0000
committerWim Taymans <wim.taymans@gmail.com>2005-10-19 15:57:04 +0000
commitba7ee6ae6cc73b5620b517e03ddac8a2b4badb90 (patch)
treea950dccd74a3f01c613ce5c89fe37529869b7dad /gst
parent97f39d46478583613258d50acdc209e5c489a969 (diff)
API change fix.
Original commit message from CVS: * ext/dv/gstdvdemux.c: (gst_dvdemux_get_src_query_types), (gst_dvdemux_src_query): * ext/flac/gstflacdec.c: (gst_flacdec_length), (gst_flacdec_src_query): * ext/raw1394/gstdv1394src.c: (gst_dv1394src_query): * ext/speex/gstspeexdec.c: (speex_dec_src_query): * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query): * gst/debug/gstnavseek.c: (gst_navseek_seek): * gst/debug/progressreport.c: (gst_progress_report_report): * gst/matroska/ebml-read.c: (gst_ebml_read_get_length): * gst/matroska/matroska-demux.c: (gst_matroska_demux_handle_src_query): * gst/matroska/matroska-mux.c: (gst_matroska_mux_start): * gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek), (gst_wavparse_stream_headers), (gst_wavparse_stream_data), (gst_wavparse_pad_convert), (gst_wavparse_pad_query), (gst_wavparse_srcpad_event): API change fix.
Diffstat (limited to 'gst')
-rw-r--r--gst/avi/gstavidemux.c15
-rw-r--r--gst/debug/gstnavseek.c2
-rw-r--r--gst/debug/progressreport.c4
-rw-r--r--gst/matroska/ebml-read.c4
-rw-r--r--gst/matroska/matroska-demux.c23
-rw-r--r--gst/matroska/matroska-mux.c6
-rw-r--r--gst/wavparse/gstwavparse.c32
7 files changed, 63 insertions, 23 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index db614654..f5cfa563 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -390,10 +390,8 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query)
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_POSITION:{
- gint64 len, pos = 0;
+ gint64 pos = 0;
- len = (((gfloat) stream->strh->scale) * stream->strh->length /
- stream->strh->rate) * GST_SECOND;
if (stream->strh->type == GST_RIFF_FCC_auds) {
if (!stream->strh->samplesize) {
pos = GST_SECOND * stream->current_frame *
@@ -422,7 +420,16 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query)
}
}
if (res)
- gst_query_set_position (query, GST_FORMAT_TIME, pos, len);
+ gst_query_set_position (query, GST_FORMAT_TIME, pos);
+ break;
+ }
+ case GST_QUERY_DURATION:
+ {
+ gint64 len;
+
+ len = (((gfloat) stream->strh->scale) * stream->strh->length /
+ stream->strh->rate) * GST_SECOND;
+ gst_query_set_duration (query, GST_FORMAT_TIME, len);
break;
}
default:
diff --git a/gst/debug/gstnavseek.c b/gst/debug/gstnavseek.c
index 7fe801b9..fc1e7430 100644
--- a/gst/debug/gstnavseek.c
+++ b/gst/debug/gstnavseek.c
@@ -132,7 +132,7 @@ gst_navseek_seek (GstNavSeek * navseek, gint64 offset)
/* Query for the current time then attempt to set to time + offset */
peer_pad = gst_pad_get_peer (GST_BASE_TRANSFORM (navseek)->sinkpad);
- ret = gst_pad_query_position (peer_pad, &peer_format, &peer_value, NULL);
+ ret = gst_pad_query_position (peer_pad, &peer_format, &peer_value);
if (ret && peer_format == GST_FORMAT_TIME) {
GstEvent *event;
diff --git a/gst/debug/progressreport.c b/gst/debug/progressreport.c
index 82bdb3c1..d60579b2 100644
--- a/gst/debug/progressreport.c
+++ b/gst/debug/progressreport.c
@@ -182,8 +182,8 @@ gst_progress_report_report (GstProgressReport * filter, GTimeVal cur_time)
format = try_formats[i];
- if (gst_pad_query_position (peer_pad, &format, &cur_progress,
- &total_progress)) {
+ if (gst_pad_query_position (peer_pad, &format, &cur_progress) &&
+ gst_pad_query_duration (peer_pad, &format, &total_progress)) {
switch (format) {
case GST_FORMAT_BYTES:
format_name = "bytes";
diff --git a/gst/matroska/ebml-read.c b/gst/matroska/ebml-read.c
index 02d36d97..db8606aa 100644
--- a/gst/matroska/ebml-read.c
+++ b/gst/matroska/ebml-read.c
@@ -366,9 +366,9 @@ gint64
gst_ebml_read_get_length (GstEbmlRead * ebml)
{
GstFormat fmt = GST_FORMAT_BYTES;
- gint64 pos, end;
+ gint64 end;
- if (!gst_pad_query_position (GST_PAD_PEER (ebml->sinkpad), &fmt, &pos, &end))
+ if (!gst_pad_query_duration (GST_PAD_PEER (ebml->sinkpad), &fmt, &end))
g_return_val_if_reached (0); ///// FIXME /////////
if (fmt != GST_FORMAT_BYTES || end < 0)
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index 1b2d72dc..dbb81cc9 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -972,7 +972,7 @@ gst_matroska_demux_handle_src_query (GstPad * pad, GstQuery * query)
{
GstFormat format;
- gst_query_parse_position (query, &format, NULL, NULL);
+ gst_query_parse_position (query, &format, NULL);
if (format != GST_FORMAT_TIME) {
GST_DEBUG ("only query position on TIME is supported");
@@ -980,12 +980,25 @@ gst_matroska_demux_handle_src_query (GstPad * pad, GstQuery * query)
}
GST_LOCK (demux);
+ gst_query_set_position (query, GST_FORMAT_TIME, demux->pos);
+ GST_UNLOCK (demux);
+
+ res = TRUE;
+ break;
+ }
+ case GST_QUERY_DURATION:
+ {
+ GstFormat format;
+
+ gst_query_parse_position (query, &format, NULL);
- /* mabe we should only fill in the total time and let
- * decoders fill in the current position? (like oggdemux) */
- gst_query_set_position (query, GST_FORMAT_TIME, demux->pos,
- demux->duration);
+ if (format != GST_FORMAT_TIME) {
+ GST_DEBUG ("only query duration on TIME is supported");
+ break;
+ }
+ GST_LOCK (demux);
+ gst_query_set_duration (query, GST_FORMAT_TIME, demux->duration);
GST_UNLOCK (demux);
res = TRUE;
diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c
index 3d7944f9..ae2968b3 100644
--- a/gst/matroska/matroska-mux.c
+++ b/gst/matroska/matroska-mux.c
@@ -1034,12 +1034,12 @@ gst_matroska_mux_start (GstMatroskaMux * mux)
thepad = collect_pad->collect.pad;
/* Query the total length of the track. */
- query = gst_query_new_position (GST_FORMAT_TIME);
+ query = gst_query_new_duration (GST_FORMAT_TIME);
if (gst_pad_query (GST_PAD_PEER (thepad), query)) {
GstFormat format;
- gint64 cur, trackduration;
+ gint64 trackduration;
- gst_query_parse_position (query, &format, &cur, &trackduration);
+ gst_query_parse_duration (query, &format, &trackduration);
if ((gdouble) trackduration > duration) {
duration = (gdouble) trackduration;
diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c
index 19a7697d..af081a0e 100644
--- a/gst/wavparse/gstwavparse.c
+++ b/gst/wavparse/gstwavparse.c
@@ -1163,32 +1163,52 @@ gst_wavparse_pad_query (GstPad * pad, GstQuery * query)
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_POSITION:
{
- gint64 curb, endb;
- gint64 cur, end;
+ gint64 curb;
+ gint64 cur;
GstFormat format;
gboolean res = TRUE;
curb = wav->offset - wav->datastart;
- endb = wav->datasize;
- gst_query_parse_position (query, &format, NULL, NULL);
+ gst_query_parse_position (query, &format, NULL);
switch (format) {
case GST_FORMAT_TIME:
res &=
gst_wavparse_pad_convert (pad, GST_FORMAT_BYTES, curb,
&format, &cur);
+ break;
+ default:
+ format = GST_FORMAT_BYTES;
+ cur = curb;
+ break;
+ }
+ if (res)
+ gst_query_set_position (query, format, cur);
+ break;
+ }
+ case GST_QUERY_DURATION:
+ {
+ gint64 endb;
+ gint64 end;
+ GstFormat format;
+ gboolean res = TRUE;
+
+ endb = wav->datasize;
+ gst_query_parse_duration (query, &format, NULL);
+
+ switch (format) {
+ case GST_FORMAT_TIME:
res &=
gst_wavparse_pad_convert (pad, GST_FORMAT_BYTES, endb,
&format, &end);
break;
default:
format = GST_FORMAT_BYTES;
- cur = curb;
end = endb;
break;
}
if (res)
- gst_query_set_position (query, format, cur, end);
+ gst_query_set_duration (query, format, end);
break;
}
case GST_QUERY_CONVERT: