Commit 721e415f authored by Thomas Jones's avatar Thomas Jones Committed by Sebastian Dröge
Browse files

audiovisualizer: fix timestamp calculation for audio channels > 1

We have to use bps*channels instead of just bps, which is exactly what bpf is for.

https://bugzilla.gnome.org/show_bug.cgi?id=767507
parent 8b8708f9
......@@ -1036,7 +1036,7 @@ gst_audio_visualizer_chain (GstPad * pad, GstObject * parent,
guint64 dist, ts;
guint avail, sbpf;
gpointer adata;
gint bps, channels, rate;
gint bpf, channels, rate;
scope = GST_AUDIO_VISUALIZER (parent);
klass = GST_AUDIO_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope));
......@@ -1058,9 +1058,9 @@ gst_audio_visualizer_chain (GstPad * pad, GstObject * parent,
channels = GST_AUDIO_INFO_CHANNELS (&scope->ainfo);
rate = GST_AUDIO_INFO_RATE (&scope->ainfo);
bps = GST_AUDIO_INFO_BPS (&scope->ainfo);
bpf = GST_AUDIO_INFO_BPF (&scope->ainfo);
if (bps == 0) {
if (bpf == 0) {
ret = GST_FLOW_NOT_NEGOTIATED;
goto beach;
}
......@@ -1087,8 +1087,7 @@ gst_audio_visualizer_chain (GstPad * pad, GstObject * parent,
ts = gst_adapter_prev_pts (scope->priv->adapter, &dist);
if (GST_CLOCK_TIME_IS_VALID (ts)) {
/* convert bytes to time */
dist /= bps;
ts += gst_util_uint64_scale_int (dist, GST_SECOND, rate);
ts += gst_util_uint64_scale_int (dist, GST_SECOND, rate * bpf);
}
/* check for QoS, don't compute buffers that are known to be late */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment