+2004-10-30 David Schleef <ds@schleef.org>
+
+ * gst/typefind/gsttypefindfunctions.c: (qt_type_find): Make
+ quicktime typefinding work with 64-bit offsets.
+
2004-10-30 Jan Schmidt <thaytan@mad.scientist.com>
* ext/dv/gstdvdec.c: (gst_dvdec_handle_sink_event):
guint8 *data;
guint tip = 0;
guint64 offset = 0;
+ guint64 size;
while ((data = gst_type_find_peek (tf, offset, 8)) != NULL) {
if (strncmp (&data[4], "wide", 4) != 0 &&
tip = GST_TYPE_FIND_MAXIMUM;
break;
}
- offset += GST_READ_UINT32_BE (data);
- if (GST_READ_UINT32_BE (data) < 8)
- break;
+ size = GST_READ_UINT32_BE (data);
+ if (size == 1) {
+ guint8 *sizedata;
+
+ sizedata = gst_type_find_peek (tf, offset + 8, 8);
+ if (sizedata == NULL)
+ break;
+
+ size = GST_READ_UINT64_BE (sizedata);
+ } else {
+ if (size < 8)
+ break;
+ }
+ offset += size;
}
if (tip > 0) {
gst_type_find_suggest (tf, tip, QT_CAPS);