mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
audioresample: after a reset, recalculate the ouput size
After we reset the resampler, there is no history anymore in the resampler and the previously calculated output size is no longer valid. Recalculate the new output size after a reset to make sure we don't try to convert too much.
This commit is contained in:
parent
92786741df
commit
c1cb395f66
1 changed files with 8 additions and 0 deletions
|
@ -846,8 +846,16 @@ gst_audio_resample_transform (GstBaseTransform * base, GstBuffer * inbuf,
|
|||
* flag to resync timestamp and offset counters and send event
|
||||
* downstream */
|
||||
if (G_UNLIKELY (gst_audio_resample_check_discont (resample, inbuf))) {
|
||||
gsize size;
|
||||
gint bpf = GST_AUDIO_INFO_BPF (&resample->in);
|
||||
|
||||
gst_audio_resample_reset_state (resample);
|
||||
resample->need_discont = TRUE;
|
||||
|
||||
/* need to recalculate the output size */
|
||||
size = gst_buffer_get_size (inbuf) / bpf;
|
||||
size = gst_audio_converter_get_out_frames (resample->converter, size);
|
||||
gst_buffer_set_size (outbuf, size * bpf);
|
||||
}
|
||||
|
||||
/* handle discontinuity */
|
||||
|
|
Loading…
Reference in a new issue