From 9d5ac84e83fa6ca0cdde289eeeaa20c81a6ee4f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20B=C5=BEatek?= Date: Wed, 30 Oct 2013 15:55:51 +0000 Subject: [PATCH] Switch BRASERO_TRACK_STREAM_ISRC_TAG from int to string MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The International Standard Recording Code (ISRC) is a 12 byte string that is created from two uppercase characters for the country code, followed by three uppercase characā€ ters for the owner, followed by two digits for the year of recording followed by five digits for the recording serial number. https://bugzilla.gnome.org/show_bug.cgi?id=711162 --- libbrasero-burn/brasero-tags.h | 2 +- libbrasero-burn/brasero-track-stream-cfg.c | 10 +++++----- libbrasero-utils/brasero-io.c | 4 +++- libbrasero-utils/brasero-metadata.c | 14 +++++++++----- libbrasero-utils/brasero-metadata.h | 2 +- plugins/audio2cue/burn-audio2cue.c | 8 ++++---- plugins/cdrkit/burn-wodim.c | 7 +++---- plugins/cdrtools/burn-cdrecord.c | 7 +++---- plugins/transcode/burn-transcode.c | 8 ++++---- src/brasero-audio-disc.c | 24 +++++++++++++----------- src/brasero-multi-song-props.c | 6 +++--- src/brasero-multi-song-props.h | 2 +- src/brasero-project-parse.c | 27 +++++++++++++++------------ src/brasero-song-properties.c | 23 ++++++----------------- src/brasero-song-properties.h | 4 ++-- src/brasero-video-disc.c | 23 +++++++++++++---------- 16 files changed, 86 insertions(+), 85 deletions(-) diff --git a/libbrasero-burn/brasero-tags.h b/libbrasero-burn/brasero-tags.h index 31a844d..c04f0a9 100644 --- a/libbrasero-burn/brasero-tags.h +++ b/libbrasero-burn/brasero-tags.h @@ -56,6 +56,7 @@ G_BEGIN_DECLS #define BRASERO_TRACK_STREAM_COMPOSER_TAG "track::stream::info::composer" #define BRASERO_TRACK_STREAM_ARTIST_TAG "track::stream::info::artist" #define BRASERO_TRACK_STREAM_ALBUM_TAG "track::stream::info::album" +#define BRASERO_TRACK_STREAM_ISRC_TAG "track::stream::info::isrc" #define BRASERO_TRACK_STREAM_THUMBNAIL_TAG "track::stream::snapshot" #define BRASERO_TRACK_STREAM_MIME_TAG "track::stream::mime" @@ -63,7 +64,6 @@ G_BEGIN_DECLS * Int */ -#define BRASERO_TRACK_STREAM_ISRC_TAG "track::stream::info::isrc" /** * This tag (for sessions) is used to set an estimated size, used to determine diff --git a/libbrasero-burn/brasero-track-stream-cfg.c b/libbrasero-burn/brasero-track-stream-cfg.c index 9d53dd6..2699b6f 100644 --- a/libbrasero-burn/brasero-track-stream-cfg.c +++ b/libbrasero-burn/brasero-track-stream-cfg.c @@ -299,11 +299,11 @@ brasero_track_stream_cfg_results_cb (GObject *obj, brasero_track_tag_add_string (BRASERO_TRACK (obj), BRASERO_TRACK_STREAM_COMPOSER_TAG, g_file_info_get_attribute_string (info, BRASERO_IO_COMPOSER)); - if (g_file_info_get_attribute_int32 (info, BRASERO_IO_ISRC) - && !brasero_track_tag_lookup_int (BRASERO_TRACK (obj), BRASERO_TRACK_STREAM_ISRC_TAG)) - brasero_track_tag_add_int (BRASERO_TRACK (obj), - BRASERO_TRACK_STREAM_ISRC_TAG, - g_file_info_get_attribute_int32 (info, BRASERO_IO_ISRC)); + if (g_file_info_get_attribute_string (info, BRASERO_IO_ISRC) + && !brasero_track_tag_lookup_string (BRASERO_TRACK (obj), BRASERO_TRACK_STREAM_ISRC_TAG)) + brasero_track_tag_add_string (BRASERO_TRACK (obj), + BRASERO_TRACK_STREAM_ISRC_TAG, + g_file_info_get_attribute_string (info, BRASERO_IO_ISRC)); /* Start monitoring it */ file = g_file_new_for_uri (uri); diff --git a/libbrasero-utils/brasero-io.c b/libbrasero-utils/brasero-io.c index 6124848..5619359 100644 --- a/libbrasero-utils/brasero-io.c +++ b/libbrasero-utils/brasero-io.c @@ -836,7 +836,6 @@ static void brasero_io_set_metadata_attributes (GFileInfo *info, BraseroMetadataInfo *metadata) { - g_file_info_set_attribute_int32 (info, BRASERO_IO_ISRC, metadata->isrc); g_file_info_set_attribute_uint64 (info, BRASERO_IO_LEN, metadata->len); if (metadata->type) @@ -857,6 +856,9 @@ brasero_io_set_metadata_attributes (GFileInfo *info, if (metadata->composer) g_file_info_set_attribute_string (info, BRASERO_IO_COMPOSER, metadata->composer); + if (metadata->isrc) + g_file_info_set_attribute_string (info, BRASERO_IO_ISRC, metadata->isrc); + g_file_info_set_attribute_boolean (info, BRASERO_IO_HAS_AUDIO, metadata->has_audio); if (metadata->has_audio) { if (metadata->channels) diff --git a/libbrasero-utils/brasero-metadata.c b/libbrasero-utils/brasero-metadata.c index 7f10088..1943368 100644 --- a/libbrasero-utils/brasero-metadata.c +++ b/libbrasero-utils/brasero-metadata.c @@ -186,6 +186,9 @@ brasero_metadata_info_clear (BraseroMetadataInfo *info) if (info->musicbrainz_id) g_free (info->musicbrainz_id); + if (info->isrc) + g_free (info->isrc); + if (info->silences) { g_slist_foreach (info->silences, (GFunc) g_free, NULL); g_slist_free (info->silences); @@ -216,7 +219,6 @@ brasero_metadata_info_copy (BraseroMetadataInfo *dest, dest->has_dts = src->has_dts; dest->rate = src->rate; dest->channels = src->channels; - dest->isrc = src->isrc; dest->len = src->len; dest->is_seekable = src->is_seekable; dest->has_audio = src->has_audio; @@ -243,6 +245,9 @@ brasero_metadata_info_copy (BraseroMetadataInfo *dest, if (src->musicbrainz_id) dest->musicbrainz_id = g_strdup (src->musicbrainz_id); + if (src->isrc) + dest->isrc = g_strdup (src->isrc); + if (src->snapshot) { dest->snapshot = src->snapshot; g_object_ref (dest->snapshot); @@ -943,11 +948,10 @@ foreach_tag (const GstTagList *list, gst_tag_list_get_string (list, tag, &(self->composer)); } */ else if (!strcmp (tag, GST_TAG_ISRC)) { - gchar *isrc = NULL; - gst_tag_list_get_string (list, tag, &isrc); + if (priv->info->isrc) + g_free (priv->info->isrc); - if (isrc) - priv->info->isrc = (int) g_ascii_strtoull (isrc, NULL, 10); + gst_tag_list_get_string (list, tag, &(priv->info->isrc)); } else if (!strcmp (tag, GST_TAG_MUSICBRAINZ_TRACKID)) { gst_tag_list_get_string (list, tag, &(priv->info->musicbrainz_id)); diff --git a/libbrasero-utils/brasero-metadata.h b/libbrasero-utils/brasero-metadata.h index 8799642..eca95b4 100644 --- a/libbrasero-utils/brasero-metadata.h +++ b/libbrasero-utils/brasero-metadata.h @@ -69,7 +69,7 @@ typedef struct { gchar *genre; gchar *composer; gchar *musicbrainz_id; - int isrc; + gchar *isrc; guint64 len; gint channels; diff --git a/plugins/audio2cue/burn-audio2cue.c b/plugins/audio2cue/burn-audio2cue.c index 2601533..78c21f9 100644 --- a/plugins/audio2cue/burn-audio2cue.c +++ b/plugins/audio2cue/burn-audio2cue.c @@ -455,7 +455,6 @@ brasero_audio2cue_create_thread (gpointer data) tracks = NULL; brasero_job_get_tracks (data, &tracks); for (; tracks; tracks = tracks->next) { - int isrc; guint64 gap; guint64 len; gchar *string; @@ -463,6 +462,7 @@ brasero_audio2cue_create_thread (gpointer data) BraseroTrack *track; const gchar *performer; const gchar *songwriter; + const gchar *isrc; track = tracks->data; @@ -527,9 +527,9 @@ brasero_audio2cue_create_thread (gpointer data) g_free (line); } - isrc = brasero_track_tag_lookup_int (track, BRASERO_TRACK_STREAM_ISRC_TAG); - if (isrc > 0) { - line = g_strdup_printf ("\tISRC %i\n", isrc); + isrc = brasero_track_tag_lookup_string (track, BRASERO_TRACK_STREAM_ISRC_TAG); + if (isrc) { + line = g_strdup_printf ("\tISRC \"%s\"\n", isrc); if (write (fd_out, line, strlen (line)) < 0) { int err_saved = errno; priv->error = g_error_new_literal (BRASERO_BURN_ERROR, diff --git a/plugins/cdrkit/burn-wodim.c b/plugins/cdrkit/burn-wodim.c index c0477c8..be7e5b9 100644 --- a/plugins/cdrkit/burn-wodim.c +++ b/plugins/cdrkit/burn-wodim.c @@ -438,7 +438,6 @@ brasero_wodim_write_inf (BraseroWodim *wodim, GError **error) { gint fd; - int isrc; gint size; int errsv; gchar *path; @@ -514,9 +513,9 @@ brasero_wodim_write_inf (BraseroWodim *wodim, goto error; /* ISRC */ - isrc = brasero_track_tag_lookup_int (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG); - if (isrc > 0) - string = g_strdup_printf ("ISRC=\t%i\n", isrc); + info = brasero_track_tag_lookup_string (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG); + if (info) + string = g_strdup_printf ("ISRC=\t%s\n", info); else string = g_strdup ("ISRC=\t\n"); size = strlen (string); diff --git a/plugins/cdrtools/burn-cdrecord.c b/plugins/cdrtools/burn-cdrecord.c index 92c23b3..89ba629 100644 --- a/plugins/cdrtools/burn-cdrecord.c +++ b/plugins/cdrtools/burn-cdrecord.c @@ -424,7 +424,6 @@ brasero_cdrecord_write_inf (BraseroCDRecord *cdrecord, GError **error) { gint fd; - int isrc; int errsv; gint size; gchar *path; @@ -503,9 +502,9 @@ brasero_cdrecord_write_inf (BraseroCDRecord *cdrecord, goto error; /* ISRC */ - isrc = brasero_track_tag_lookup_int (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG); - if (isrc > 0) - string = g_strdup_printf ("ISRC=\t%i\n", isrc); + info = brasero_track_tag_lookup_string (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG); + if (info) + string = g_strdup_printf ("ISRC=\t%s\n", info); else string = g_strdup ("ISRC=\t\n"); size = strlen (string); diff --git a/plugins/transcode/burn-transcode.c b/plugins/transcode/burn-transcode.c index 6861168..b93d17a 100644 --- a/plugins/transcode/burn-transcode.c +++ b/plugins/transcode/burn-transcode.c @@ -1396,13 +1396,13 @@ foreach_tag (const GstTagList *list, } } else if (!strcmp (tag, GST_TAG_ISRC)) { - if (!brasero_track_tag_lookup_int (track, BRASERO_TRACK_STREAM_ISRC_TAG)) { + if (!brasero_track_tag_lookup_string (track, BRASERO_TRACK_STREAM_ISRC_TAG)) { gchar *isrc = NULL; gst_tag_list_get_string (list, tag, &isrc); - brasero_track_tag_add_int (track, - BRASERO_TRACK_STREAM_ISRC_TAG, - (int) g_ascii_strtoull (isrc, NULL, 10)); + brasero_track_tag_add_string (track, + BRASERO_TRACK_STREAM_ISRC_TAG, + isrc); } } else if (!strcmp (tag, GST_TAG_PERFORMER)) { diff --git a/src/brasero-audio-disc.c b/src/brasero-audio-disc.c index e2c49b8..b0dce92 100644 --- a/src/brasero-audio-disc.c +++ b/src/brasero-audio-disc.c @@ -1477,7 +1477,6 @@ static void brasero_audio_disc_edit_multi_song_properties (BraseroAudioDisc *disc, GList *list) { - gint isrc; gint64 gap; GList *copy; GList *item; @@ -1487,6 +1486,7 @@ brasero_audio_disc_edit_multi_song_properties (BraseroAudioDisc *disc, gchar *artist = NULL; GtkResponseType result; gchar *composer = NULL; + gchar *isrc = NULL; model = gtk_tree_view_get_model (GTK_TREE_VIEW (disc->priv->tree)); toplevel = gtk_widget_get_toplevel (GTK_WIDGET (disc)); @@ -1550,10 +1550,10 @@ brasero_audio_disc_edit_multi_song_properties (BraseroAudioDisc *disc, BRASERO_TRACK_STREAM_COMPOSER_TAG, composer); - if (isrc > 0) - brasero_track_tag_add_int (BRASERO_TRACK (track), - BRASERO_TRACK_STREAM_ISRC_TAG, - isrc); + if (isrc) + brasero_track_tag_add_string (BRASERO_TRACK (track), + BRASERO_TRACK_STREAM_ISRC_TAG, + isrc); if (gap > -1) brasero_track_stream_set_boundaries (BRASERO_TRACK_STREAM (track), @@ -1564,6 +1564,7 @@ brasero_audio_disc_edit_multi_song_properties (BraseroAudioDisc *disc, g_list_free (copy); g_free (artist); g_free (composer); + g_free (isrc); gtk_widget_destroy (props); } @@ -1573,7 +1574,6 @@ brasero_audio_disc_edit_single_song_properties (BraseroAudioDisc *disc, GtkTreePath *treepath) { gint64 gap; - gint isrc; gint64 end; gint64 start; guint track_num; @@ -1586,6 +1586,7 @@ brasero_audio_disc_edit_single_song_properties (BraseroAudioDisc *disc, gchar *title; gchar *artist; gchar *composer; + gchar *isrc; GtkTreeIter iter; model = gtk_tree_view_get_model (GTK_TREE_VIEW (disc->priv->tree)); @@ -1607,7 +1608,7 @@ brasero_audio_disc_edit_single_song_properties (BraseroAudioDisc *disc, brasero_track_tag_lookup_string (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ARTIST_TAG), brasero_track_tag_lookup_string (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_TITLE_TAG), brasero_track_tag_lookup_string (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_COMPOSER_TAG), - brasero_track_tag_lookup_int (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG), + brasero_track_tag_lookup_string (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG), length, brasero_track_stream_get_start (BRASERO_TRACK_STREAM (track)), brasero_track_stream_get_end (BRASERO_TRACK_STREAM (track)), @@ -1657,10 +1658,10 @@ brasero_audio_disc_edit_single_song_properties (BraseroAudioDisc *disc, BRASERO_TRACK_STREAM_COMPOSER_TAG, composer); - if (isrc > 0) - brasero_track_tag_add_int (BRASERO_TRACK (track), - BRASERO_TRACK_STREAM_ISRC_TAG, - isrc); + if (isrc) + brasero_track_tag_add_string (BRASERO_TRACK (track), + BRASERO_TRACK_STREAM_ISRC_TAG, + isrc); if (end - start + BRASERO_SECTORS_TO_DURATION (gap) < BRASERO_MIN_STREAM_LENGTH) brasero_audio_disc_short_track_dialog (disc); @@ -1668,6 +1669,7 @@ brasero_audio_disc_edit_single_song_properties (BraseroAudioDisc *disc, g_free (title); g_free (artist); g_free (composer); + g_free (isrc); gtk_widget_destroy (props); } diff --git a/src/brasero-multi-song-props.c b/src/brasero-multi-song-props.c index be2704e..823e22a 100644 --- a/src/brasero-multi-song-props.c +++ b/src/brasero-multi-song-props.c @@ -77,7 +77,7 @@ void brasero_multi_song_props_get_properties (BraseroMultiSongProps *self, gchar **artist, gchar **composer, - gint *isrc, + gchar **isrc, gint64 *gap) { const gchar *text; @@ -103,9 +103,9 @@ brasero_multi_song_props_get_properties (BraseroMultiSongProps *self, if (isrc) { text = gtk_entry_get_text (GTK_ENTRY (priv->isrc)); if (text && strcmp (text, _(""))) - *isrc = (gint) g_strtod (text, NULL); + *isrc = g_strdup (text); else - *isrc = -1; + *isrc = NULL; } if (gap) diff --git a/src/brasero-multi-song-props.h b/src/brasero-multi-song-props.h index b7f4500..de34a73 100644 --- a/src/brasero-multi-song-props.h +++ b/src/brasero-multi-song-props.h @@ -70,7 +70,7 @@ void brasero_multi_song_props_get_properties (BraseroMultiSongProps *props, gchar **artist, gchar **composer, - gint *isrc, + gchar **isrc, gint64 *gap); G_END_DECLS diff --git a/src/brasero-project-parse.c b/src/brasero-project-parse.c index 5359678..b2a58a1 100644 --- a/src/brasero-project-parse.c +++ b/src/brasero-project-parse.c @@ -330,18 +330,22 @@ _read_audio_track (xmlDocPtr project, g_free (unescaped_composer); } else if (!xmlStrcmp (uris->name, (const xmlChar *) "isrc")) { - gchar *isrc; + xmlChar *isrc; + gchar *unescaped_isrc; - isrc = (gchar *) xmlNodeListGetString (project, - uris->xmlChildrenNode, - 1); + isrc = xmlNodeListGetString (project, + uris->xmlChildrenNode, + 1); if (!isrc) goto error; - brasero_track_tag_add_int (BRASERO_TRACK (track), - BRASERO_TRACK_STREAM_ISRC_TAG, - (gint) g_ascii_strtod (isrc, NULL)); + unescaped_isrc = g_uri_unescape_string ((char *) isrc, NULL); g_free (isrc); + + brasero_track_tag_add_string (BRASERO_TRACK (track), + BRASERO_TRACK_STREAM_ISRC_TAG, + unescaped_isrc); + g_free (unescaped_isrc); } else if (uris->type == XML_ELEMENT_NODE) goto error; @@ -626,7 +630,6 @@ _save_audio_track_xml (xmlTextWriter *project, xmlChar *escaped; gchar *start; gint success; - gchar *isrc; gchar *uri; gchar *end; @@ -709,13 +712,13 @@ _save_audio_track_xml (xmlTextWriter *project, return FALSE; } - if (brasero_track_tag_lookup_int (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG)) { - isrc = g_strdup_printf ("%d", brasero_track_tag_lookup_int (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG)); + if (brasero_track_tag_lookup_string (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG)) { + escaped = (unsigned char *) g_uri_escape_string (brasero_track_tag_lookup_string (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG), NULL, FALSE); success = xmlTextWriterWriteElement (project, (xmlChar *) "isrc", - (xmlChar *) isrc); + escaped); - g_free (isrc); + g_free (escaped); if (success == -1) return FALSE; } diff --git a/src/brasero-song-properties.c b/src/brasero-song-properties.c index ebbdc32..b8c8de2 100644 --- a/src/brasero-song-properties.c +++ b/src/brasero-song-properties.c @@ -307,7 +307,7 @@ brasero_song_props_get_properties (BraseroSongProps *self, gchar **artist, gchar **title, gchar **composer, - gint *isrc, + gchar **isrc, gint64 *start, gint64 *end, gint64 *gap) @@ -333,15 +333,8 @@ brasero_song_props_get_properties (BraseroSongProps *self, *composer = NULL; } - if (isrc) { - const gchar *string; - - string = brasero_song_props_get_entry_value (GTK_ENTRY (self->priv->isrc)); - if (string) - *isrc = (gint) g_strtod (string, NULL); - else - *isrc = 0; - } + if (isrc) + *isrc = brasero_song_props_get_entry_value (GTK_ENTRY (self->priv->isrc)); if (start) *start = brasero_time_button_get_value (BRASERO_TIME_BUTTON (self->priv->start)); @@ -357,7 +350,7 @@ brasero_song_props_set_properties (BraseroSongProps *self, const gchar *artist, const gchar *title, const gchar *composer, - gint isrc, + const gchar *isrc, gint64 length, gint64 start, gint64 end, @@ -391,12 +384,8 @@ brasero_song_props_set_properties (BraseroSongProps *self, gtk_entry_set_text (GTK_ENTRY (self->priv->title), title); if (composer) gtk_entry_set_text (GTK_ENTRY (self->priv->composer), composer); - - if (isrc) { - string = g_strdup_printf ("%i", isrc); - gtk_entry_set_text (GTK_ENTRY (self->priv->isrc), string); - g_free (string); - } + if (isrc) + gtk_entry_set_text (GTK_ENTRY (self->priv->isrc), isrc); if (gap > 0) { secs = gap / GST_SECOND; diff --git a/src/brasero-song-properties.h b/src/brasero-song-properties.h index edb0ddb..997a49e 100644 --- a/src/brasero-song-properties.h +++ b/src/brasero-song-properties.h @@ -60,7 +60,7 @@ brasero_song_props_get_properties (BraseroSongProps *self, gchar **artist, gchar **title, gchar **composer, - gint *isrc, + gchar **isrc, gint64 *start, gint64 *end, gint64 *gap); @@ -70,7 +70,7 @@ brasero_song_props_set_properties (BraseroSongProps *self, const gchar *artist, const gchar *title, const gchar *composer, - gint isrc, + const gchar *isrc, gint64 length, gint64 start, gint64 end, diff --git a/src/brasero-video-disc.c b/src/brasero-video-disc.c index 3fa1134..d7c15b2 100644 --- a/src/brasero-video-disc.c +++ b/src/brasero-video-disc.c @@ -623,7 +623,6 @@ static void brasero_video_disc_edit_song_properties_list (BraseroVideoDisc *self, GList *list) { - gint isrc; GList *item; GList *copy; GtkWidget *props; @@ -631,6 +630,7 @@ brasero_video_disc_edit_song_properties_list (BraseroVideoDisc *self, GtkTreeModel *model; gchar *artist = NULL; gchar *composer = NULL; + gchar *isrc = NULL; GtkResponseType result; BraseroVideoDiscPrivate *priv; @@ -688,14 +688,15 @@ brasero_video_disc_edit_song_properties_list (BraseroVideoDisc *self, BRASERO_TRACK_STREAM_COMPOSER_TAG, composer); - brasero_track_tag_add_int (track, - BRASERO_TRACK_STREAM_ISRC_TAG, - isrc); + brasero_track_tag_add_string (track, + BRASERO_TRACK_STREAM_ISRC_TAG, + isrc); } g_list_free (copy); g_free (artist); g_free (composer); + g_free (isrc); end: gtk_widget_destroy (props); @@ -705,12 +706,12 @@ static void brasero_video_disc_edit_song_properties_file (BraseroVideoDisc *self, BraseroTrack *track) { - gint isrc; gint64 end; gint64 start; gchar *title; gchar *artist; gchar *composer; + gchar *isrc; GtkWidget *props; guint64 length = 0; GtkWidget *toplevel; @@ -726,7 +727,7 @@ brasero_video_disc_edit_song_properties_file (BraseroVideoDisc *self, brasero_track_tag_lookup_string (track, BRASERO_TRACK_STREAM_ARTIST_TAG), brasero_track_tag_lookup_string (track, BRASERO_TRACK_STREAM_TITLE_TAG), brasero_track_tag_lookup_string (track, BRASERO_TRACK_STREAM_COMPOSER_TAG), - brasero_track_tag_lookup_int (track, BRASERO_TRACK_STREAM_ISRC_TAG), + brasero_track_tag_lookup_string (track, BRASERO_TRACK_STREAM_ISRC_TAG), length, brasero_track_stream_get_start (BRASERO_TRACK_STREAM (track)), brasero_track_stream_get_end (BRASERO_TRACK_STREAM (track)), @@ -774,10 +775,12 @@ brasero_video_disc_edit_song_properties_file (BraseroVideoDisc *self, g_free (composer); } - if (isrc) - brasero_track_tag_add_int (track, - BRASERO_TRACK_STREAM_ISRC_TAG, - isrc); + if (isrc) { + brasero_track_tag_add_string (track, + BRASERO_TRACK_STREAM_ISRC_TAG, + isrc); + g_free (isrc); + } brasero_track_stream_set_boundaries (BRASERO_TRACK_STREAM (track), start, -- 1.8.4.2