audioconvert: remove unnecessary deep nesting in fixate function

Makes it easier to read and removes two levels of indentation.
This commit is contained in:
Tim-Philipp Müller 2013-08-23 18:52:44 +01:00
parent f678411c6e
commit f448977dbd

View file

@ -443,6 +443,7 @@ gst_audio_convert_fixate_format (GstBaseTransform * base, GstStructure * ins,
const GValue *format;
const GstAudioFormatInfo *in_info, *out_info = NULL;
GstAudioFormatFlags in_flags, out_flags = 0;
gint i, len;
in_format = gst_structure_get_string (ins, "format");
if (!in_format)
@ -453,6 +454,10 @@ gst_audio_convert_fixate_format (GstBaseTransform * base, GstStructure * ins,
if (format == NULL)
return;
/* nothing to fixate? */
if (!GST_VALUE_HOLDS_LIST (format))
return;
in_info =
gst_audio_format_get_info (gst_audio_format_from_string (in_format));
if (!in_info)
@ -462,24 +467,22 @@ gst_audio_convert_fixate_format (GstBaseTransform * base, GstStructure * ins,
in_flags &= ~(GST_AUDIO_FORMAT_FLAG_UNPACK);
in_flags &= ~(GST_AUDIO_FORMAT_FLAG_SIGNED);
if (GST_VALUE_HOLDS_LIST (format)) {
gint i, len;
len = gst_value_list_get_size (format);
for (i = 0; i < len; i++) {
const GstAudioFormatInfo *t_info;
GstAudioFormatFlags t_flags;
const GValue *val;
const gchar *fname;
val = gst_value_list_get_value (format, i);
if (G_VALUE_HOLDS_STRING (val)) {
const GstAudioFormatInfo *t_info;
GstAudioFormatFlags t_flags;
if (!G_VALUE_HOLDS_STRING (val))
continue;
fname = g_value_get_string (val);
t_info =
gst_audio_format_get_info (gst_audio_format_from_string (fname));
t_info = gst_audio_format_get_info (gst_audio_format_from_string (fname));
if (!t_info)
continue;
/* accept input format immediately */
if (strcmp (fname, in_format) == 0) {
out_info = t_info;
@ -524,15 +527,12 @@ gst_audio_convert_fixate_format (GstBaseTransform * base, GstStructure * ins,
out_info = t_info;
out_flags = t_flags;
}
}
}
if (out_info)
gst_structure_set (outs, "format", G_TYPE_STRING,
GST_AUDIO_FORMAT_INFO_NAME (out_info), NULL);
} else {
/* nothing to fixate */
return;
}
}
static void