GNOME Bugzilla – Bug 705982
mp4mux: HDLR box name string is not NULL terminated
Last modified: 2014-01-09 15:17:28 UTC
As per MP4 standard, the box name string should be NULL terminated. Instead, we are inserting the size first(1 Byte) and then inserting whole of string(without '\0') I just got this issue when I passed the generated MP4 file through an MP4 analyser The fix is to replace line:1524-1525 1524 prop_copy_size_string ((guint8 *) hdlr->name, strlen (hdlr->name), buffer, 1525 size, offset); with 1524 prop_copy_fixed_size_string (hdlr->name, strlen (hdlr->name), buffer, size, offset); 1525 prop_copy_uint8(0, buffer, size, offset);
For what it's worth, I have a vague memory of different string representations being used for different quicktime flavours (mp4, quicktime, 3gp) - nul-terminated vs. pascal-style strings.
Does someone have more information about this, links to the spec or something maybe?
As Tim says I guess it varies across quicktime format and Mp4(14496-12 & 14496-14) format This is what my analyser throws up "name should be a NULL terminated string. Using the QuickTime counted string instead" Unfortunately I don't have access to the ISO standards. However, this might help https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html Regards, Jagadish
Qtff wants counted strings, mp4 isomedia base format wants null terminated.
commit 5adedf9f5a2bd4f3914b7ad5487c143f39416440 Author: Thiago Santos <ts.santos@sisa.samsung.com> Date: Thu Jan 9 11:56:31 2014 -0300 qtmux: respect the HDLR box string format for mov and isomedia Mov spec says it uses a pascal style string, while isomedia uses a null terminated one. Store the current atoms flavor into the HDLR to be able to generate the correct output. https://bugzilla.gnome.org/show_bug.cgi?id=705982
Should this be merged into 1.2?