mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
audio-converter: improve _update_config
Allow NULL config to keep the existing parameters. Fix the docs.
This commit is contained in:
parent
0f757bc23c
commit
6050509b65
1 changed files with 10 additions and 6 deletions
|
@ -292,13 +292,16 @@ copy_config (GQuark field_id, const GValue * value, gpointer user_data)
|
||||||
* @convert: a #GstAudioConverter
|
* @convert: a #GstAudioConverter
|
||||||
* @in_rate: input rate
|
* @in_rate: input rate
|
||||||
* @out_rate: output rate
|
* @out_rate: output rate
|
||||||
* @config: (transfer full): a #GstStructure
|
* @config: (transfer full) (allow-none): a #GstStructure or %NULL
|
||||||
*
|
*
|
||||||
* Set @config as extra configuration for @convert.
|
* Set @in_rate, @out_rate and @config as extra configuration for @convert.
|
||||||
*
|
*
|
||||||
* in_rate and @out_rate specify the new sample rates of input and output
|
* in_rate and @out_rate specify the new sample rates of input and output
|
||||||
* formats. A value of 0 leaves the sample rate unchanged.
|
* formats. A value of 0 leaves the sample rate unchanged.
|
||||||
*
|
*
|
||||||
|
* @config can be %NULL, in which case, the current configuration is not
|
||||||
|
* changed.
|
||||||
|
*
|
||||||
* If the parameters in @config can not be set exactly, this function returns
|
* If the parameters in @config can not be set exactly, this function returns
|
||||||
* %FALSE and will try to update as much state as possible. The new state can
|
* %FALSE and will try to update as much state as possible. The new state can
|
||||||
* then be retrieved and refined with gst_audio_converter_get_config().
|
* then be retrieved and refined with gst_audio_converter_get_config().
|
||||||
|
@ -306,14 +309,13 @@ copy_config (GQuark field_id, const GValue * value, gpointer user_data)
|
||||||
* Look at the #GST_AUDIO_CONVERTER_OPT_* fields to check valid configuration
|
* Look at the #GST_AUDIO_CONVERTER_OPT_* fields to check valid configuration
|
||||||
* option and values.
|
* option and values.
|
||||||
*
|
*
|
||||||
* Returns: %TRUE when @config could be set.
|
* Returns: %TRUE when the new parameters could be set
|
||||||
*/
|
*/
|
||||||
gboolean
|
gboolean
|
||||||
gst_audio_converter_update_config (GstAudioConverter * convert,
|
gst_audio_converter_update_config (GstAudioConverter * convert,
|
||||||
gint in_rate, gint out_rate, GstStructure * config)
|
gint in_rate, gint out_rate, GstStructure * config)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (convert != NULL, FALSE);
|
g_return_val_if_fail (convert != NULL, FALSE);
|
||||||
g_return_val_if_fail (config != NULL, FALSE);
|
|
||||||
g_return_val_if_fail ((in_rate == 0 && out_rate == 0) ||
|
g_return_val_if_fail ((in_rate == 0 && out_rate == 0) ||
|
||||||
convert->flags & GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE, FALSE);
|
convert->flags & GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE, FALSE);
|
||||||
|
|
||||||
|
@ -327,8 +329,10 @@ gst_audio_converter_update_config (GstAudioConverter * convert,
|
||||||
convert->in.rate = in_rate;
|
convert->in.rate = in_rate;
|
||||||
convert->out.rate = out_rate;
|
convert->out.rate = out_rate;
|
||||||
|
|
||||||
|
if (config) {
|
||||||
gst_structure_foreach (config, copy_config, convert);
|
gst_structure_foreach (config, copy_config, convert);
|
||||||
gst_structure_free (config);
|
gst_structure_free (config);
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue