Fixed taglib attachment extraction.
authorLaurent Aimar <fenrir@videolan.org>
Sat, 24 Jan 2009 18:48:47 +0000 (19:48 +0100)
committerLaurent Aimar <fenrir@videolan.org>
Sat, 24 Jan 2009 18:53:22 +0000 (19:53 +0100)
C++ is always so much fun ;)

modules/meta_engine/taglib.cpp

index c2042b3..60b4a94 100644 (file)
@@ -204,7 +204,6 @@ static void ReadMetaFromId3v2( ID3v2::Tag* tag, demux_t* p_demux, demux_meta_t*
         input_attachment_t *p_attachment;
 
         const char *psz_mime;
-        const char *p_data; int i_data;
         char *psz_name, *psz_description;
 
         // Get the mime and description of the image.
@@ -234,17 +233,19 @@ static void ReadMetaFromId3v2( ID3v2::Tag* tag, demux_t* p_demux, demux_meta_t*
             continue;
         }
 
-        p_data = p_apic->picture().data();
-        i_data = p_apic->picture().size();
+        const ByteVector picture = p_apic->picture();
+        const char *p_data = picture.data();
+        const unsigned i_data = picture.size();
 
-        msg_Dbg( p_demux, "Found embedded art: %s (%s) is %i bytes",
+        msg_Dbg( p_demux, "Found embedded art: %s (%s) is %u bytes",
                  psz_name, psz_mime, i_data );
 
         p_attachment = vlc_input_attachment_New( psz_name, psz_mime,
                                 psz_description, p_data, i_data );
-        TAB_APPEND_CAST( (input_attachment_t**),
-                         p_demux_meta->i_attachments, p_demux_meta->attachments,
-                         p_attachment );
+        if( p_attachment )
+            TAB_APPEND_CAST( (input_attachment_t**),
+                             p_demux_meta->i_attachments, p_demux_meta->attachments,
+                             p_attachment );
         free( psz_description );
 
         if( pi_cover_score[p_apic->type()] > i_score )