mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-20 04:56:24 +00:00
audio-converter: code cleanup
Rename samples to num_samples, since we also have samples in chain, but that is the data pointer. Always use gzize for num_samples. Make the log output a bit more homogenous.
This commit is contained in:
parent
69d3b098a2
commit
0bd3f818bb
1 changed files with 37 additions and 35 deletions
|
@ -135,12 +135,12 @@ struct _GstAudioConverter
|
||||||
gboolean passthrough;
|
gboolean passthrough;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef gboolean (*AudioChainFunc) (AudioChain * chain, gsize samples,
|
typedef gboolean (*AudioChainFunc) (AudioChain * chain, gsize num_samples,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
typedef gpointer *(*AudioChainAllocFunc) (AudioChain * chain, gsize samples,
|
typedef gpointer *(*AudioChainAllocFunc) (AudioChain * chain, gsize num_samples,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
static gpointer *get_output_samples (AudioChain * chain, gsize samples,
|
static gpointer *get_output_samples (AudioChain * chain, gsize num_samples,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
struct _AudioChain
|
struct _AudioChain
|
||||||
|
@ -209,18 +209,18 @@ audio_chain_free (AudioChain * chain)
|
||||||
}
|
}
|
||||||
|
|
||||||
static gpointer *
|
static gpointer *
|
||||||
audio_chain_alloc_samples (AudioChain * chain, guint samples)
|
audio_chain_alloc_samples (AudioChain * chain, gsize num_samples)
|
||||||
{
|
{
|
||||||
return chain->alloc_func (chain, samples, chain->alloc_data);
|
return chain->alloc_func (chain, num_samples, chain->alloc_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gpointer *
|
static gpointer *
|
||||||
audio_chain_get_samples (AudioChain * chain, guint samples)
|
audio_chain_get_samples (AudioChain * chain, gsize num_samples)
|
||||||
{
|
{
|
||||||
gpointer *res;
|
gpointer *res;
|
||||||
|
|
||||||
while (!chain->samples)
|
while (!chain->samples)
|
||||||
chain->make_func (chain, samples, chain->make_func_data);
|
chain->make_func (chain, num_samples, chain->make_func_data);
|
||||||
|
|
||||||
res = chain->samples;
|
res = chain->samples;
|
||||||
chain->samples = NULL;
|
chain->samples = NULL;
|
||||||
|
@ -319,7 +319,7 @@ gst_audio_converter_get_config (GstAudioConverter * convert)
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
do_unpack (AudioChain * chain, gsize samples, gpointer user_data)
|
do_unpack (AudioChain * chain, gsize num_samples, gpointer user_data)
|
||||||
{
|
{
|
||||||
GstAudioConverter *convert = user_data;
|
GstAudioConverter *convert = user_data;
|
||||||
gpointer *tmp;
|
gpointer *tmp;
|
||||||
|
@ -333,13 +333,14 @@ do_unpack (AudioChain * chain, gsize samples, gpointer user_data)
|
||||||
if (src_writable && chain->allow_ip)
|
if (src_writable && chain->allow_ip)
|
||||||
tmp = convert->in_data;
|
tmp = convert->in_data;
|
||||||
else
|
else
|
||||||
tmp = audio_chain_alloc_samples (chain, samples);
|
tmp = audio_chain_alloc_samples (chain, num_samples);
|
||||||
GST_LOG ("unpack %p %p, %" G_GSIZE_FORMAT, tmp, convert->in_data, samples);
|
GST_LOG ("unpack %p, %p, %" G_GSIZE_FORMAT, tmp, convert->in_data,
|
||||||
|
num_samples);
|
||||||
|
|
||||||
for (i = 0; i < chain->blocks; i++) {
|
for (i = 0; i < chain->blocks; i++) {
|
||||||
convert->in.finfo->unpack_func (convert->in.finfo,
|
convert->in.finfo->unpack_func (convert->in.finfo,
|
||||||
GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE, tmp[i], convert->in_data[i],
|
GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE, tmp[i], convert->in_data[i],
|
||||||
samples * chain->inc);
|
num_samples * chain->inc);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tmp = convert->in_data;
|
tmp = convert->in_data;
|
||||||
|
@ -351,18 +352,18 @@ do_unpack (AudioChain * chain, gsize samples, gpointer user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
do_convert_in (AudioChain * chain, gsize samples, gpointer user_data)
|
do_convert_in (AudioChain * chain, gsize num_samples, gpointer user_data)
|
||||||
{
|
{
|
||||||
GstAudioConverter *convert = user_data;
|
GstAudioConverter *convert = user_data;
|
||||||
gpointer *in, *out;
|
gpointer *in, *out;
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
in = audio_chain_get_samples (chain->prev, samples);
|
in = audio_chain_get_samples (chain->prev, num_samples);
|
||||||
out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, samples));
|
out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, num_samples));
|
||||||
GST_LOG ("convert in %p, %p %" G_GSIZE_FORMAT, in, out, samples);
|
GST_LOG ("convert in %p, %p, %" G_GSIZE_FORMAT, in, out, num_samples);
|
||||||
|
|
||||||
for (i = 0; i < chain->blocks; i++)
|
for (i = 0; i < chain->blocks; i++)
|
||||||
convert->convert_in (out[i], in[i], samples * chain->inc);
|
convert->convert_in (out[i], in[i], num_samples * chain->inc);
|
||||||
|
|
||||||
chain->samples = out;
|
chain->samples = out;
|
||||||
|
|
||||||
|
@ -370,16 +371,16 @@ do_convert_in (AudioChain * chain, gsize samples, gpointer user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
do_mix (AudioChain * chain, gsize samples, gpointer user_data)
|
do_mix (AudioChain * chain, gsize num_samples, gpointer user_data)
|
||||||
{
|
{
|
||||||
GstAudioConverter *convert = user_data;
|
GstAudioConverter *convert = user_data;
|
||||||
gpointer *in, *out;
|
gpointer *in, *out;
|
||||||
|
|
||||||
in = audio_chain_get_samples (chain->prev, samples);
|
in = audio_chain_get_samples (chain->prev, num_samples);
|
||||||
out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, samples));
|
out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, num_samples));
|
||||||
GST_LOG ("mix %p %p,%" G_GSIZE_FORMAT, in, out, samples);
|
GST_LOG ("mix %p, %p, %" G_GSIZE_FORMAT, in, out, num_samples);
|
||||||
|
|
||||||
gst_audio_channel_mix_samples (convert->mix, in, out, samples);
|
gst_audio_channel_mix_samples (convert->mix, in, out, num_samples);
|
||||||
|
|
||||||
chain->samples = out;
|
chain->samples = out;
|
||||||
|
|
||||||
|
@ -387,18 +388,18 @@ do_mix (AudioChain * chain, gsize samples, gpointer user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
do_convert_out (AudioChain * chain, gsize samples, gpointer user_data)
|
do_convert_out (AudioChain * chain, gsize num_samples, gpointer user_data)
|
||||||
{
|
{
|
||||||
GstAudioConverter *convert = user_data;
|
GstAudioConverter *convert = user_data;
|
||||||
gpointer *in, *out;
|
gpointer *in, *out;
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
in = audio_chain_get_samples (chain->prev, samples);
|
in = audio_chain_get_samples (chain->prev, num_samples);
|
||||||
out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, samples));
|
out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, num_samples));
|
||||||
GST_LOG ("convert out %p, %p %" G_GSIZE_FORMAT, in, out, samples);
|
GST_LOG ("convert out %p, %p, %" G_GSIZE_FORMAT, in, out, num_samples);
|
||||||
|
|
||||||
for (i = 0; i < chain->blocks; i++)
|
for (i = 0; i < chain->blocks; i++)
|
||||||
convert->convert_out (out[i], in[i], samples * chain->inc);
|
convert->convert_out (out[i], in[i], num_samples * chain->inc);
|
||||||
|
|
||||||
chain->samples = out;
|
chain->samples = out;
|
||||||
|
|
||||||
|
@ -406,16 +407,16 @@ do_convert_out (AudioChain * chain, gsize samples, gpointer user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
do_quantize (AudioChain * chain, gsize samples, gpointer user_data)
|
do_quantize (AudioChain * chain, gsize num_samples, gpointer user_data)
|
||||||
{
|
{
|
||||||
GstAudioConverter *convert = user_data;
|
GstAudioConverter *convert = user_data;
|
||||||
gpointer *in, *out;
|
gpointer *in, *out;
|
||||||
|
|
||||||
in = audio_chain_get_samples (chain->prev, samples);
|
in = audio_chain_get_samples (chain->prev, num_samples);
|
||||||
out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, samples));
|
out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, num_samples));
|
||||||
GST_LOG ("quantize %p, %p %" G_GSIZE_FORMAT, in, out, samples);
|
GST_LOG ("quantize %p, %p, %" G_GSIZE_FORMAT, in, out, num_samples);
|
||||||
|
|
||||||
gst_audio_quantize_samples (convert->quant, in, out, samples);
|
gst_audio_quantize_samples (convert->quant, in, out, num_samples);
|
||||||
|
|
||||||
chain->samples = out;
|
chain->samples = out;
|
||||||
|
|
||||||
|
@ -608,12 +609,12 @@ get_output_samples (AudioChain * chain, gsize samples, gpointer user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static gpointer *
|
static gpointer *
|
||||||
get_temp_samples (AudioChain * chain, gsize samples, gpointer user_data)
|
get_temp_samples (AudioChain * chain, gsize num_samples, gpointer user_data)
|
||||||
{
|
{
|
||||||
gsize needed;
|
gsize needed;
|
||||||
|
|
||||||
/* first part contains the pointers, second part the data */
|
/* first part contains the pointers, second part the data */
|
||||||
needed = (samples * chain->stride + sizeof (gpointer)) * chain->blocks;
|
needed = (num_samples * chain->stride + sizeof (gpointer)) * chain->blocks;
|
||||||
|
|
||||||
if (needed > chain->tmpsize) {
|
if (needed > chain->tmpsize) {
|
||||||
gint i;
|
gint i;
|
||||||
|
@ -628,7 +629,7 @@ get_temp_samples (AudioChain * chain, gsize samples, gpointer user_data)
|
||||||
|
|
||||||
/* set up the pointers */
|
/* set up the pointers */
|
||||||
for (i = 0; i < chain->blocks; i++)
|
for (i = 0; i < chain->blocks; i++)
|
||||||
chain->tmp[i] = s + (i * samples * chain->stride);
|
chain->tmp[i] = s + (i * num_samples * chain->stride);
|
||||||
}
|
}
|
||||||
return chain->tmp;
|
return chain->tmp;
|
||||||
}
|
}
|
||||||
|
@ -729,7 +730,6 @@ gst_audio_converter_new (GstAudioInfo * in_info, GstAudioInfo * out_info,
|
||||||
|
|
||||||
setup_allocators (convert);
|
setup_allocators (convert);
|
||||||
|
|
||||||
|
|
||||||
return convert;
|
return convert;
|
||||||
|
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
|
@ -884,6 +884,8 @@ gst_audio_converter_samples (GstAudioConverter * convert,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GST_LOG ("converting %" G_GSIZE_FORMAT, in_samples);
|
||||||
|
|
||||||
convert->flags = flags;
|
convert->flags = flags;
|
||||||
convert->in_data = in;
|
convert->in_data = in;
|
||||||
convert->out_data = out;
|
convert->out_data = out;
|
||||||
|
|
Loading…
Reference in a new issue