mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
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
This commit is contained in:
parent
8b8708f946
commit
721e415fd2
1 changed files with 4 additions and 5 deletions
|
@ -1036,7 +1036,7 @@ gst_audio_visualizer_chain (GstPad * pad, GstObject * parent,
|
||||||
guint64 dist, ts;
|
guint64 dist, ts;
|
||||||
guint avail, sbpf;
|
guint avail, sbpf;
|
||||||
gpointer adata;
|
gpointer adata;
|
||||||
gint bps, channels, rate;
|
gint bpf, channels, rate;
|
||||||
|
|
||||||
scope = GST_AUDIO_VISUALIZER (parent);
|
scope = GST_AUDIO_VISUALIZER (parent);
|
||||||
klass = GST_AUDIO_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope));
|
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);
|
channels = GST_AUDIO_INFO_CHANNELS (&scope->ainfo);
|
||||||
rate = GST_AUDIO_INFO_RATE (&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;
|
ret = GST_FLOW_NOT_NEGOTIATED;
|
||||||
goto beach;
|
goto beach;
|
||||||
}
|
}
|
||||||
|
@ -1087,8 +1087,7 @@ gst_audio_visualizer_chain (GstPad * pad, GstObject * parent,
|
||||||
ts = gst_adapter_prev_pts (scope->priv->adapter, &dist);
|
ts = gst_adapter_prev_pts (scope->priv->adapter, &dist);
|
||||||
if (GST_CLOCK_TIME_IS_VALID (ts)) {
|
if (GST_CLOCK_TIME_IS_VALID (ts)) {
|
||||||
/* convert bytes to time */
|
/* convert bytes to time */
|
||||||
dist /= bps;
|
ts += gst_util_uint64_scale_int (dist, GST_SECOND, rate * bpf);
|
||||||
ts += gst_util_uint64_scale_int (dist, GST_SECOND, rate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check for QoS, don't compute buffers that are known to be late */
|
/* check for QoS, don't compute buffers that are known to be late */
|
||||||
|
|
Loading…
Reference in a new issue