summaryrefslogtreecommitdiffstats
path: root/gst-libs/gst/riff/riff-read.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst-libs/gst/riff/riff-read.c')
-rw-r--r--gst-libs/gst/riff/riff-read.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/gst-libs/gst/riff/riff-read.c b/gst-libs/gst/riff/riff-read.c
index 0eed6242..a86ec866 100644
--- a/gst-libs/gst/riff/riff-read.c
+++ b/gst-libs/gst/riff/riff-read.c
@@ -458,7 +458,8 @@ gst_riff_read_strh (GstRiffRead * riff, gst_riff_strh ** header)
}
gboolean
-gst_riff_read_strf_vids (GstRiffRead * riff, gst_riff_strf_vids ** header)
+gst_riff_read_strf_vids_with_data (GstRiffRead * riff,
+ gst_riff_strf_vids ** header, GstBuffer ** extradata)
{
guint32 tag;
GstBuffer *buf;
@@ -496,10 +497,14 @@ gst_riff_read_strf_vids (GstRiffRead * riff, gst_riff_strf_vids ** header)
#endif
/* size checking */
+ *extradata = NULL;
if (strf->size > GST_BUFFER_SIZE (buf)) {
g_warning ("strf_vids header gave %d bytes data, only %d available",
strf->size, GST_BUFFER_SIZE (buf));
strf->size = GST_BUFFER_SIZE (buf);
+ } else if (strf->size < GST_BUFFER_SIZE (buf)) {
+ *extradata = gst_buffer_create_sub (buf, strf->size,
+ GST_BUFFER_SIZE (buf) - strf->size);
}
/* debug */
@@ -516,6 +521,8 @@ gst_riff_read_strf_vids (GstRiffRead * riff, gst_riff_strf_vids ** header)
GST_INFO (" ypels_meter %d", strf->ypels_meter);
GST_INFO (" num_colors %d", strf->num_colors);
GST_INFO (" imp_colors %d", strf->imp_colors);
+ if (*extradata)
+ GST_INFO (" %d bytes extra_data", GST_BUFFER_SIZE (*extradata));
gst_buffer_unref (buf);
@@ -524,6 +531,23 @@ gst_riff_read_strf_vids (GstRiffRead * riff, gst_riff_strf_vids ** header)
return TRUE;
}
+/*
+ * Obsolete, use gst_riff_read_strf_vids_with_data ().
+ */
+
+gboolean
+gst_riff_read_strf_vids (GstRiffRead * riff, gst_riff_strf_vids ** header)
+{
+ GstBuffer *data = NULL;
+ gboolean ret;
+
+ ret = gst_riff_read_strf_vids_with_data (riff, header, &data);
+ if (data)
+ gst_buffer_unref (data);
+
+ return ret;
+}
+
gboolean
gst_riff_read_strf_auds (GstRiffRead * riff, gst_riff_strf_auds ** header)
{