qtmux: Accept non-paired uint tags

Adds support for unpaired unsigned interger tags
This commit is contained in:
Thiago Santos 2009-12-21 13:58:30 -03:00
parent 80a192b825
commit f822f65f34

View File

@ -410,19 +410,28 @@ gst_qt_mux_add_mp4_tag (GstQTMux * qtmux, const GstTagList * list,
atom_moov_add_uint_tag (qtmux->moov, fourcc, 21, (gint) value); atom_moov_add_uint_tag (qtmux->moov, fourcc, 21, (gint) value);
break; break;
} }
/* paired unsigned integers */
case G_TYPE_UINT: case G_TYPE_UINT:
{ {
guint value; guint value;
guint count; if (tag2) {
/* paired unsigned integers */
guint count;
if (!gst_tag_list_get_uint (list, tag, &value) || if (!gst_tag_list_get_uint (list, tag, &value) ||
!gst_tag_list_get_uint (list, tag2, &count)) !gst_tag_list_get_uint (list, tag2, &count))
break; break;
GST_DEBUG_OBJECT (qtmux, "Adding tag %" GST_FOURCC_FORMAT " -> %u/%u", GST_DEBUG_OBJECT (qtmux, "Adding tag %" GST_FOURCC_FORMAT " -> %u/%u",
GST_FOURCC_ARGS (fourcc), value, count); GST_FOURCC_ARGS (fourcc), value, count);
atom_moov_add_uint_tag (qtmux->moov, fourcc, 0, atom_moov_add_uint_tag (qtmux->moov, fourcc, 0,
value << 16 | (count & 0xFFFF)); value << 16 | (count & 0xFFFF));
} else {
/* unpaired unsigned integers */
if (!gst_tag_list_get_uint (list, tag, &value))
break;
GST_DEBUG_OBJECT (qtmux, "Adding tag %" GST_FOURCC_FORMAT " -> %u",
GST_FOURCC_ARGS (fourcc), value);
atom_moov_add_uint_tag (qtmux->moov, fourcc, 1, value);
}
break; break;
} }
default: default: