summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--gst/level/gstlevel.c3
-rw-r--r--sys/v4l2/README4
-rw-r--r--tests/check/elements/level.c2
4 files changed, 15 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 978d6147..4df99caa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-02-22 Stefan Kost <ensonic@users.sf.net>
+
+ * gst/level/gstlevel.c: (gst_level_set_caps),
+ (gst_level_transform_ip):
+ * sys/v4l2/README:
+ * tests/check/elements/level.c: (GST_START_TEST):
+ Fix level for multi-channel case.
+
2007-02-21 Stefan Kost <ensonic@users.sf.net>
* gst/level/gstlevel.c: (gst_level_init), (gst_level_set_caps),
diff --git a/gst/level/gstlevel.c b/gst/level/gstlevel.c
index bc1c42e1..6ff849fc 100644
--- a/gst/level/gstlevel.c
+++ b/gst/level/gstlevel.c
@@ -514,12 +514,13 @@ gst_level_transform_ip (GstBaseTransform * trans, GstBuffer * in)
for (i = 0; i < filter->channels; ++i) {
CS = 0.0;
- filter->process (in_data + i, num_int_samples, filter->channels, &CS,
+ filter->process (in_data, num_int_samples, filter->channels, &CS,
&filter->peak[i]);
GST_LOG_OBJECT (filter,
"channel %d, cumulative sum %f, peak %f, over %d samples/%d channels",
i, CS, filter->peak[i], num_int_samples, filter->channels);
filter->CS[i] += CS;
+ in_data += (filter->width / 8);
}
filter->num_frames += num_frames;
diff --git a/sys/v4l2/README b/sys/v4l2/README
index bf90939b..e9c4ab47 100644
--- a/sys/v4l2/README
+++ b/sys/v4l2/README
@@ -26,3 +26,7 @@ V4L2 API: http://linux.bytesex.org/v4l2/.
Kernel patches available from
http://dl.bytesex.org/patches/.
+
+Articles:
+ http://lwn.net/Articles/203924/
+
diff --git a/tests/check/elements/level.c b/tests/check/elements/level.c
index 008874a0..8282288d 100644
--- a/tests/check/elements/level.c
+++ b/tests/check/elements/level.c
@@ -157,6 +157,7 @@ GST_START_TEST (test_int16)
list = gst_structure_get_value (structure, fields[j]);
value = gst_value_list_get_value (list, i);
dB = g_value_get_double (value);
+ GST_DEBUG ("%s is %lf", fields[j], dB);
fail_if (dB < -6.0);
fail_if (dB > -5.9);
}
@@ -165,7 +166,6 @@ GST_START_TEST (test_int16)
fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
fail_unless (inbuffer == outbuffer);
-
/* clean up */
/* flush current messages,and future state change messages */
gst_bus_set_flushing (bus, TRUE);