diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2005-01-19 20:25:26 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2005-01-19 20:25:26 +0000 |
commit | 5006606231330349fa11f2d02d7f85424bb467e6 (patch) | |
tree | 1c8725061ec7070066c1279950403dadb978b8fb /gst | |
parent | 2b6207564c275857d1c52b96ea72a013fd4a1dfd (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.c | 9 |
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; |