[qtmux] Fixes segfault when adding a blob as first tag.
authorThiago Santos <thiagoss@embedded.ufcg.edu.br>
Fri, 15 May 2009 04:54:44 +0000 (01:54 -0300)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 12 Apr 2011 19:32:11 +0000 (20:32 +0100)
Moves tags data initialization to the function that actually appends
the tags to the list. Fixes #582702

Also fixes some style caught by the pre-commit hook.

gst/quicktime/atoms.c

index df6958e..a5d8fe3 100644 (file)
@@ -1855,13 +1855,11 @@ atom_stsd_copy_data (AtomSTSD * stsd, guint8 ** buffer, guint64 * size,
         break;
       default:
         if (se->kind == VIDEO) {
-          size +=
-              sample_entry_mp4v_copy_data ((SampleTableEntryMP4V *) walker->
-              data, buffer, size, offset);
+          size += sample_entry_mp4v_copy_data ((SampleTableEntryMP4V *)
+              walker->data, buffer, size, offset);
         } else if (se->kind == AUDIO) {
-          size +=
-              sample_entry_mp4a_copy_data ((SampleTableEntryMP4A *) walker->
-              data, buffer, size, offset);
+          size += sample_entry_mp4a_copy_data ((SampleTableEntryMP4A *)
+              walker->data, buffer, size, offset);
         } else {
           if (!atom_hint_sample_entry_copy_data (
                   (AtomHintSampleEntry *) walker->data, buffer, size, offset)) {
@@ -2547,6 +2545,7 @@ atom_moov_append_tag (AtomMOOV * moov, AtomInfo * tag)
 {
   AtomILST *ilst;
 
+  atom_moov_init_metatags (moov);
   ilst = moov->udta->meta->ilst;
   ilst->entries = g_list_append (ilst->entries, tag);
 }
@@ -2563,7 +2562,6 @@ atom_moov_add_tag (AtomMOOV * moov, guint32 fourcc, guint32 flags,
   atom_tag_data_alloc_data (tdata, size);
   g_memmove (tdata->data, data, size);
 
-  atom_moov_init_metatags (moov);
   atom_moov_append_tag (moov,
       build_atom_info_wrapper ((Atom *) tag, atom_tag_copy_data,
           atom_tag_free));