gst/rtp/gstrtph264depay.c: Make sure we allocate enough memory for the codec_data.
authorWim Taymans <wim.taymans@gmail.com>
Wed, 13 Jun 2007 17:11:24 +0000 (17:11 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Wed, 13 Jun 2007 17:11:24 +0000 (17:11 +0000)
Original commit message from CVS:
* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_setcaps):
Make sure we allocate enough memory for the codec_data.
Fixes #447210.

ChangeLog
gst/rtp/gstrtph264depay.c

index cd654ce..f49eab0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-06-13  Wim Taymans  <wim@fluendo.com>
+
+       * gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_setcaps):
+       Make sure we allocate enough memory for the codec_data.
+       Fixes #447210.
+
 2007-06-12  Sebastien Moutte  <sebastien@moutte.net>
 
        * win32/MANIFEST:
index 1b1fffb..164ef56 100644 (file)
@@ -237,10 +237,12 @@ gst_rtp_h264_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps)
     ps = gst_structure_get_string (structure, "sprop-parameter-sets");
     params = g_strsplit (ps, ",", 0);
 
-    /* count total number of bytes in base64 */
+    /* count total number of bytes in base64. Also include the sync bytes in
+     * front of the params. */
     len = 0;
     for (i = 0; params[i]; i++) {
       len += strlen (params[i]);
+      len += sizeof (sync_bytes);
     }
     /* we seriously overshoot the length, but it's fine. */
     codec_data = gst_buffer_new_and_alloc (len);