mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-10 10:04:23 +00:00
audio-convert: simplify API
Simplify the API, we don't need the consumed and produced output arguments. The caller needs to use the _get_in_frames/get_out_frames API to check how much input is needed and how much output will be produced.
This commit is contained in:
parent
0da2709d0c
commit
980163457e
3 changed files with 8 additions and 21 deletions
|
@ -832,8 +832,6 @@ gst_audio_converter_get_max_latency (GstAudioConverter * convert)
|
|||
* @in_samples: number of input samples
|
||||
* @out: output samples
|
||||
* @out_samples: number of output samples
|
||||
* @in_consumed: number of input samples consumed
|
||||
* @out_produced: number of output samples produced
|
||||
*
|
||||
* Perform the conversion with @in_samples in @in to @out_samples in @out
|
||||
* using @convert.
|
||||
|
@ -844,17 +842,17 @@ gst_audio_converter_get_max_latency (GstAudioConverter * convert)
|
|||
* If non-interleaved samples are used, @in and @out must point to an
|
||||
* array with pointers to memory blocks, one for each channel.
|
||||
*
|
||||
* The actual number of samples used from @in is returned in @in_consumed and
|
||||
* can be less than @in_samples. The actual number of samples produced is
|
||||
* returned in @out_produced and can be less than @out_samples.
|
||||
* This function always produces @out_frames of output and consumes @in_frames of
|
||||
* input. Use gst_audio_converter_get_out_frames() and
|
||||
* gst_audio_converter_get_in_frames() to make sure @in_frames and @out_frames
|
||||
* are matching and @in and @out point to enough memory.
|
||||
*
|
||||
* Returns: %TRUE is the conversion could be performed.
|
||||
*/
|
||||
gboolean
|
||||
gst_audio_converter_samples (GstAudioConverter * convert,
|
||||
GstAudioConverterFlags flags, gpointer in[], gsize in_samples,
|
||||
gpointer out[], gsize out_samples, gsize * in_consumed,
|
||||
gsize * out_produced)
|
||||
gpointer out[], gsize out_samples)
|
||||
{
|
||||
AudioChain *chain;
|
||||
gpointer *tmp;
|
||||
|
@ -863,15 +861,11 @@ gst_audio_converter_samples (GstAudioConverter * convert,
|
|||
g_return_val_if_fail (convert != NULL, FALSE);
|
||||
g_return_val_if_fail (in != NULL, FALSE);
|
||||
g_return_val_if_fail (out != NULL, FALSE);
|
||||
g_return_val_if_fail (in_consumed != NULL, FALSE);
|
||||
g_return_val_if_fail (out_produced != NULL, FALSE);
|
||||
|
||||
in_samples = MIN (in_samples, out_samples);
|
||||
|
||||
if (in_samples == 0) {
|
||||
GST_LOG ("skipping empty buffer");
|
||||
*in_consumed = 0;
|
||||
*out_produced = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -885,8 +879,6 @@ gst_audio_converter_samples (GstAudioConverter * convert,
|
|||
in_samples, bytes);
|
||||
for (i = 0; i < chain->blocks; i++)
|
||||
memcpy (out[i], in[i], bytes);
|
||||
*out_produced = in_samples;
|
||||
*in_consumed = in_samples;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -906,9 +898,5 @@ gst_audio_converter_samples (GstAudioConverter * convert,
|
|||
convert->out.finfo->pack_func (convert->out.finfo, 0, tmp[i], out[i],
|
||||
in_samples * chain->inc);
|
||||
}
|
||||
|
||||
*out_produced = in_samples;
|
||||
*in_consumed = in_samples;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -89,7 +89,6 @@ gsize gst_audio_converter_get_max_latency (GstAudioConverter *con
|
|||
gboolean gst_audio_converter_samples (GstAudioConverter * convert,
|
||||
GstAudioConverterFlags flags,
|
||||
gpointer in[], gsize in_samples,
|
||||
gpointer out[], gsize out_samples,
|
||||
gsize *in_consumed, gsize *out_produced);
|
||||
gpointer out[], gsize out_samples);
|
||||
|
||||
#endif /* __GST_AUDIO_CONVERTER_H__ */
|
||||
|
|
|
@ -703,7 +703,7 @@ gst_audio_convert_transform (GstBaseTransform * base, GstBuffer * inbuf,
|
|||
gint insize, outsize;
|
||||
gboolean inbuf_writable;
|
||||
GstAudioConverterFlags flags;
|
||||
gsize samples, consumed, produced;
|
||||
gsize samples;
|
||||
|
||||
/* get amount of samples to convert. */
|
||||
samples = gst_buffer_get_size (inbuf) / this->in_info.bpf;
|
||||
|
@ -741,7 +741,7 @@ gst_audio_convert_transform (GstBaseTransform * base, GstBuffer * inbuf,
|
|||
gpointer out[1] = { dstmap.data };
|
||||
|
||||
if (!gst_audio_converter_samples (this->convert, flags,
|
||||
in, samples, out, samples, &consumed, &produced))
|
||||
in, samples, out, samples))
|
||||
goto convert_error;
|
||||
} else {
|
||||
/* Create silence buffer */
|
||||
|
|
Loading…
Reference in a new issue