+
+ outbuf = gst_rtp_h265_depay_allocate_output_buffer (rtph265depay, outsize);
+
+ if (outbuf == NULL)
+ return NULL;
+
+ if (!gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE))
+ return NULL;
+
+ list = gst_adapter_take_buffer_list (rtph265depay->picture_adapter, outsize);
+
+ n_bufs = gst_buffer_list_length (list);
+ for (b = 0; b < n_bufs; ++b) {
+ GstBuffer *buf = gst_buffer_list_get (list, b);
+
+ n_mem = gst_buffer_n_memory (buf);
+ for (m = 0; m < n_mem; ++m) {
+ GstMemory *mem = gst_buffer_peek_memory (buf, m);
+ gsize mem_size = gst_memory_get_sizes (mem, NULL, NULL);
+ GstMapInfo mem_map;
+
+ if (gst_memory_map (mem, &mem_map, GST_MAP_READ)) {
+ memcpy (outmap.data + offset, mem_map.data, mem_size);
+ gst_memory_unmap (mem, &mem_map);
+ } else {
+ memset (outmap.data + offset, 0, mem_size);
+ }
+ offset += mem_size;
+ }
+
+ gst_rtp_copy_video_meta (rtph265depay, outbuf, buf);
+ }
+ gst_buffer_list_unref (list);
+ gst_buffer_unmap (outbuf, &outmap);