summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
authorThomas Vander Stichele <thomas@apestaart.org>2004-03-06 00:13:19 +0000
committerThomas Vander Stichele <thomas@apestaart.org>2004-03-06 00:13:19 +0000
commit4f8e5d712e5f2d4aeb28765f0f04e34fd15a5d6d (patch)
treedb6d7e491190b9fb447de9af84f930d8f38e9061 /gst
parentb054dc56261ce793e1d988b0f972ebbcdc4f168e (diff)
debug updates
Original commit message from CVS: debug updates
Diffstat (limited to 'gst')
-rw-r--r--gst/wavparse/gstwavparse.c52
1 files changed, 38 insertions, 14 deletions
diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c
index 31f439eb..77e18263 100644
--- a/gst/wavparse/gstwavparse.c
+++ b/gst/wavparse/gstwavparse.c
@@ -645,8 +645,7 @@ gst_wavparse_parse_fmt (GstWavParse *wavparse, guint size)
gst_caps_free (caps);
}
- GST_DEBUG ("frequency %d, channels %d",
- wavparse->rate, wavparse->channels);
+ GST_DEBUG ("frequency %d, channels %d", wavparse->rate, wavparse->channels);
}
}
@@ -914,13 +913,16 @@ gst_wavparse_pad_convert (GstPad *pad,
gint bytes_per_sample;
glong byterate;
GstWavParse *wavparse;
+ const GstFormat *formats;
+ gboolean src_format_ok = FALSE;
+ gboolean dest_format_ok = FALSE;
wavparse = GST_WAVPARSE (gst_pad_get_parent (pad));
bytes_per_sample = wavparse->channels * wavparse->width / 8;
if (bytes_per_sample == 0) {
- GST_DEBUG ("bytes_per_sample is 0, probably an mp3 - channels %d, width %d\n",
- wavparse->channels, wavparse->width);
+ GST_DEBUG ("bytes_per_sample 0, probably an mp3 - channels %d, width %d",
+ wavparse->channels, wavparse->width);
return FALSE;
}
byterate = (glong) (bytes_per_sample * wavparse->rate);
@@ -928,7 +930,20 @@ gst_wavparse_pad_convert (GstPad *pad,
g_warning ("byterate is 0, internal error\n");
return FALSE;
}
- GST_DEBUG ("bytes per sample: %d\n", bytes_per_sample);
+ GST_DEBUG ("bytes per sample: %d", bytes_per_sample);
+ /* check if both src_format and sink_format are in the supported formats */
+ formats = gst_pad_get_formats (pad);
+
+ while (formats && *formats) {
+ if (src_format == *formats) { src_format_ok = TRUE; }
+ if (*dest_format == *formats) { dest_format_ok = TRUE; }
+ formats++;
+ }
+ if (!src_format_ok || !dest_format_ok) {
+ GST_DEBUG ("src or dest format not supported");
+ return FALSE;
+ }
+
switch (src_format) {
case GST_FORMAT_BYTES:
@@ -936,30 +951,37 @@ gst_wavparse_pad_convert (GstPad *pad,
*dest_value = src_value / bytes_per_sample;
else if (*dest_format == GST_FORMAT_TIME)
*dest_value = src_value * GST_SECOND / byterate;
- else
- return FALSE;
+ else {
+ GST_DEBUG ("can't convert from bytes to other than units/time");
+ return FALSE;
+ }
+
break;
case GST_FORMAT_DEFAULT:
if (*dest_format == GST_FORMAT_BYTES)
*dest_value = src_value * bytes_per_sample;
else if (*dest_format == GST_FORMAT_TIME)
*dest_value = src_value * GST_SECOND / wavparse->rate;
- else
- return FALSE;
+ else {
+ GST_DEBUG ("can't convert from units to other than bytes/time");
+ return FALSE;
+ }
break;
case GST_FORMAT_TIME:
if (*dest_format == GST_FORMAT_BYTES)
*dest_value = src_value * byterate / GST_SECOND;
else if (*dest_format == GST_FORMAT_DEFAULT)
*dest_value = src_value * wavparse->rate / GST_SECOND;
- else
- return FALSE;
+ else {
+ GST_DEBUG ("can't convert from time to other than bytes/units");
+ return FALSE;
+ }
*dest_value = *dest_value & ~(bytes_per_sample - 1);
break;
default:
g_warning ("unhandled format for wavparse\n");
- break;
+ return FALSE;
}
return TRUE;
}
@@ -987,15 +1009,17 @@ gst_wavparse_pad_query (GstPad *pad, GstQueryType type,
/* probe sink's peer pad, convert value, and that's it :) */
/* FIXME: ideally we'd loop over possible formats of peer instead
* of only using BYTE */
+
+ /* only support byte, time and unit queries */
wavparse = GST_WAVPARSE (gst_pad_get_parent (pad));
if (!gst_pad_query (GST_PAD_PEER (wavparse->sinkpad), type,
&peer_format, &peer_value)) {
- g_warning ("Could not query sink pad's peer\n");
+ GST_DEBUG ("Could not query sink pad's peer");
return FALSE;
}
if (!gst_pad_convert (wavparse->sinkpad, peer_format, peer_value,
format, value)) {
- g_warning ("Could not query sink pad's peer\n");
+ GST_DEBUG ("Could not convert sink pad's peer");
return FALSE;
}
GST_DEBUG ("pad_query done, value %" G_GINT64_FORMAT "\n", *value);