summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2005-01-19 20:25:26 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2005-01-19 20:25:26 +0000
commit5006606231330349fa11f2d02d7f85424bb467e6 (patch)
tree1c8725061ec7070066c1279950403dadb978b8fb /gst
parent2b6207564c275857d1c52b96ea72a013fd4a1dfd (diff)
gst/avi/gstavimux.c: Fix padding...
Original commit message from CVS: * gst/avi/gstavimux.c: (gst_avimux_write_tag): Fix padding...
Diffstat (limited to 'gst')
-rw-r--r--gst/avi/gstavimux.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gst/avi/gstavimux.c b/gst/avi/gstavimux.c
index 778f8c29..110f6bfb 100644
--- a/gst/avi/gstavimux.c
+++ b/gst/avi/gstavimux.c
@@ -591,7 +591,7 @@ gst_avimux_write_tag (const GstTagList * list, const gchar * tag, gpointer data)
GST_RIFF_INFO_IARL, GST_TAG_LOCATION}, {
0, NULL}
};
- gint n, len;
+ gint n, len, plen;
GstBuffer *buf = data;
gchar *str;
@@ -599,12 +599,15 @@ gst_avimux_write_tag (const GstTagList * list, const gchar * tag, gpointer data)
if (!strcmp (rifftags[n].tag, tag) &&
gst_tag_list_get_string (list, tag, &str)) {
len = strlen (str);
- if (GST_BUFFER_MAXSIZE (buf) >= GST_BUFFER_SIZE (buf) + 8 + len + 1) {
+ plen = len + 1;
+ if (plen & 1)
+ plen++;
+ if (GST_BUFFER_MAXSIZE (buf) >= GST_BUFFER_SIZE (buf) + 8 + plen) {
GST_WRITE_UINT32_LE (GST_BUFFER_DATA (buf), rifftags[n].fcc);
GST_WRITE_UINT32_LE (GST_BUFFER_DATA (buf) + 4, len + 1);
memcpy (GST_BUFFER_DATA (buf) + 8, str, len);
GST_BUFFER_DATA (buf)[8 + len] = 0;
- GST_BUFFER_SIZE (buf) += 8 + len + 1;
+ GST_BUFFER_SIZE (buf) += 8 + plen;
}
}
break;