From a86bab66893bb1a3323a756410573c117b8219ef Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Tue, 8 Feb 2011 10:07:43 +0200 Subject: [PATCH] id3demux: ensure a taglist before adding the container tag In the case of id3v1 also don't return NULL on empty tags, but also create a new taglist and add the container tag for consistency. --- gst/id3demux/gstid3demux.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gst/id3demux/gstid3demux.c b/gst/id3demux/gstid3demux.c index 93685041ab..e91524211f 100644 --- a/gst/id3demux/gstid3demux.c +++ b/gst/id3demux/gstid3demux.c @@ -25,7 +25,7 @@ * id3demux accepts data streams with either (or both) ID3v2 regions at the * start, or ID3v1 at the end. The mime type of the data between the tag blocks * is detected using typefind functions, and the appropriate output mime type - * set on outgoing buffers. + * set on outgoing buffers. * * The element is only able to read ID3v1 tags from a seekable stream, because * they are at the end of the stream. That is, when get_range mode is supported @@ -183,6 +183,8 @@ gst_id3demux_parse_tag (GstTagDemux * demux, GstBuffer * buffer, res = id3demux_read_id3v2_tag (buffer, tag_size, tags); if (G_LIKELY (res == ID3TAGS_READ_TAG)) { + if (*tags == NULL) + *tags = gst_tag_list_new (); gst_id3demux_add_container_format (*tags); return GST_TAG_DEMUX_RESULT_OK; } else { @@ -191,9 +193,8 @@ gst_id3demux_parse_tag (GstTagDemux * demux, GstBuffer * buffer, } else { *tags = gst_tag_list_new_from_id3v1 (GST_BUFFER_DATA (buffer)); - if (G_UNLIKELY (*tags == NULL)) - return GST_TAG_DEMUX_RESULT_BROKEN_TAG; - + if (*tags == NULL) + *tags = gst_tag_list_new (); gst_id3demux_add_container_format (*tags); *tag_size = ID3V1_TAG_SIZE; return GST_TAG_DEMUX_RESULT_OK;