mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 12:32:29 +00:00
Use NULL for an empty GList instead of g_list_alloc(); fix memory leaks; s/LCPM/LPCM/; use g_strdup_printf() instead ...
Original commit message from CVS: Use NULL for an empty GList instead of g_list_alloc(); fix memory leaks; s/LCPM/LPCM/; use g_strdup_printf() instead of GString (easier to bulk free later)
This commit is contained in:
parent
d8c64315ae
commit
50b7c32b3e
2 changed files with 29 additions and 20 deletions
|
@ -1,3 +1,11 @@
|
|||
2005-01-17 Tim-Philipp Müller <tim at centricular dot net>
|
||||
|
||||
* ext/dvdread/stream_labels.c:
|
||||
(dvdreadsrc_get_audio_stream_labels):
|
||||
Use NULL for an empty GList instead of g_list_alloc(); fix
|
||||
memory leaks; s/LCPM/LPCM/; use g_strdup_printf() instead
|
||||
of GString (easier to bulk free later)
|
||||
|
||||
2005-01-17 Gergely Nagy <algernon@bonehunter.rulez.org>
|
||||
|
||||
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
||||
|
|
|
@ -164,69 +164,70 @@ void
|
|||
dvdreadsrc_get_audio_stream_labels (ifo_handle_t * vts_file,
|
||||
GHashTable * languagelist)
|
||||
{
|
||||
GList *audio_stream_label = g_list_alloc ();
|
||||
GList *audio_stream_label = NULL;
|
||||
|
||||
if (vts_file->vts_pgcit) {
|
||||
int i;
|
||||
|
||||
/* 8 audio streams maximum */
|
||||
for (i = 0; i < 8; i++) {
|
||||
GString *streamlabel;
|
||||
guchar *language, *format, *channel_nb;
|
||||
const gchar *format, *channel_nb, *language = NULL;
|
||||
guchar language_code[3] = "??";
|
||||
gchar *streamlabel;
|
||||
|
||||
if (vts_file->vts_pgcit->pgci_srp[0].pgc->audio_control[i] & 0x8000) {
|
||||
audio_attr_t *audio = &vts_file->vtsi_mat->vts_audio_attr[i];
|
||||
guint16 language_id = 0;
|
||||
|
||||
if (audio->lang_type == 1) {
|
||||
language_id = audio->lang_code;
|
||||
snprintf (language_code, 3, "%c%c", (language_id >> 8),
|
||||
(language_id & 0xFF));
|
||||
language_code[0] = (audio->lang_code >> 8);
|
||||
language_code[1] = (audio->lang_code & 0xFF);
|
||||
language = g_hash_table_lookup (languagelist, language_code);
|
||||
}
|
||||
|
||||
language = g_hash_table_lookup (languagelist, language_code);
|
||||
if (!language) {
|
||||
language = g_strdup ("?");
|
||||
language = "?";
|
||||
}
|
||||
|
||||
switch (audio->audio_format) {
|
||||
case 0:
|
||||
format = g_strdup (_("Dolby AC-3"));
|
||||
format = _("Dolby AC-3");
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
format = g_strdup (_("MPEG layer I, II or III"));
|
||||
format = _("MPEG layer I, II or III");
|
||||
break;
|
||||
case 4:
|
||||
format = g_strdup (_("LCPM"));
|
||||
format = _("LPCM");
|
||||
break;
|
||||
case 6:
|
||||
format = g_strdup (_("Digital Theatre System"));
|
||||
format = _("Digital Theatre System");
|
||||
break;
|
||||
default:
|
||||
format = g_strdup ("?");
|
||||
format = "?";
|
||||
}
|
||||
|
||||
switch (audio->channels) {
|
||||
case 1:
|
||||
channel_nb = g_strdup (_("Stereo"));
|
||||
channel_nb = _("Stereo");
|
||||
break;
|
||||
case 5:
|
||||
channel_nb = g_strdup (_("5.1"));
|
||||
channel_nb = _("5.1");
|
||||
break;
|
||||
default:
|
||||
channel_nb = g_strdup ("?");
|
||||
channel_nb = "?";
|
||||
}
|
||||
streamlabel = g_string_new ("");
|
||||
g_string_printf (streamlabel, "%u : %s, %s %s", i + 1, language, format,
|
||||
channel_nb);
|
||||
|
||||
streamlabel = g_strdup_printf ("%u : %s, %s %s", i + 1, language,
|
||||
format, channel_nb);
|
||||
audio_stream_label = g_list_append (audio_stream_label, streamlabel); /* "French, Dolby AC-3 Stereo" */
|
||||
|
||||
printf ("%u : %s, %s %s\n", i + 1, language, format, channel_nb);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_list_foreach (audio_stream_label, (GFunc) g_free, NULL);
|
||||
g_list_free (audio_stream_label);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in a new issue