- outbuf = gst_buffer_new_and_alloc (len + padlen);
-
- gst_buffer_map (outbuf, &map, GST_MAP_WRITE);
- memset (map.data + len, 0, padlen);
-
- /* prepend previous data */
- if (avail > 0) {
- gst_adapter_copy (rtph263pdepay->adapter, map.data, 0, avail);
- gst_adapter_flush (rtph263pdepay->adapter, avail);
+ outbuf = gst_adapter_take_buffer (rtph263pdepay->adapter, avail);
+ if (padlen) {
+ padbuf = gst_buffer_new_and_alloc (padlen);
+ gst_buffer_memset (padbuf, 0, 0, padlen);
+ outbuf = gst_buffer_append (outbuf, padbuf);