opuscommon: Use GString instead of snprintf for concating

Safer, easier to understand, and more portable. Also, skip
all this if the log level is too low.
This commit is contained in:
Nirbheek Chauhan 2015-07-27 18:39:13 +05:30 committed by Tim-Philipp Müller
parent e5409361b8
commit f04d4dd7c8

View file

@ -94,13 +94,18 @@ gst_opus_common_log_channel_mapping_table (GstElement * element,
GstDebugCategory * category, const char *msg, int n_channels,
const guint8 * table)
{
char s[8 + 256 * 4] = "[ "; /* enough for 256 times "255 " at most */
int n;
GString *s;
if (gst_debug_category_get_threshold (category) < GST_LEVEL_INFO)
return;
s = g_string_new ("[ ");
for (n = 0; n < n_channels; ++n) {
size_t len = strlen (s);
snprintf (s + len, sizeof (s) - len, "%d ", table[n]);
g_string_append_printf (s, "%d ", table[n]);
}
strcat (s, "]");
GST_CAT_LEVEL_LOG (category, GST_LEVEL_INFO, element, "%s: %s", msg, s);
g_string_append (s, "]");
GST_CAT_LEVEL_LOG (category, GST_LEVEL_INFO, element, "%s: %s", msg, s->str);
g_string_free (s, TRUE);
}