test: rtpbin_buffer_list: factor out a function to create packets buffers

This commit is contained in:
Antonio Ospite 2019-03-05 12:47:29 +01:00 committed by Olivier Crête
parent 6ab13c19b6
commit 5807d79a9d

View file

@ -105,13 +105,36 @@ create_original_buffer (void)
return original_buffer; return original_buffer;
} }
static GstBuffer *
create_rtp_packet_buffer (gconstpointer header, gint header_size,
GstBuffer * payload_buffer, gint payload_offset, gint payload_size)
{
GstBuffer *buffer;
GstBuffer *sub_buffer;
/* Create buffer with RTP header. */
buffer = gst_buffer_new_allocate (NULL, header_size, NULL);
gst_buffer_fill (buffer, 0, header, header_size);
gst_buffer_copy_into (buffer, payload_buffer, GST_BUFFER_COPY_METADATA, 0,
-1);
/* Create the payload buffer and add it to the current buffer. */
sub_buffer =
gst_buffer_copy_region (payload_buffer, GST_BUFFER_COPY_MEMORY,
payload_offset, payload_size);
buffer = gst_buffer_append (buffer, sub_buffer);
fail_if (buffer == NULL);
return buffer;
}
static GstBufferList * static GstBufferList *
create_buffer_list (void) create_buffer_list (void)
{ {
GstBufferList *list; GstBufferList *list;
GstBuffer *orig_buffer; GstBuffer *orig_buffer;
GstBuffer *buffer; GstBuffer *buffer;
GstBuffer *sub_buffer;
orig_buffer = create_original_buffer (); orig_buffer = create_original_buffer ();
fail_if (orig_buffer == NULL); fail_if (orig_buffer == NULL);
@ -120,35 +143,15 @@ create_buffer_list (void)
fail_if (list == NULL); fail_if (list == NULL);
/*** First packet. **/ /*** First packet. **/
buffer =
/* Create buffer with RTP header. */ create_rtp_packet_buffer (&rtp_header[0], rtp_header_len[0], orig_buffer,
buffer = gst_buffer_new_allocate (NULL, rtp_header_len[0], NULL);
gst_buffer_fill (buffer, 0, &rtp_header[0], rtp_header_len[0]);
gst_buffer_copy_into (buffer, orig_buffer, GST_BUFFER_COPY_METADATA, 0, -1);
/* Create the payload buffer and add it to the current buffer. */
sub_buffer =
gst_buffer_copy_region (orig_buffer, GST_BUFFER_COPY_MEMORY,
payload_offset[0], payload_len[0]); payload_offset[0], payload_len[0]);
buffer = gst_buffer_append (buffer, sub_buffer);
fail_if (buffer == NULL);
gst_buffer_list_add (list, buffer); gst_buffer_list_add (list, buffer);
/*** Second packet. ***/ /*** Second packet. ***/
buffer =
/* Create buffer with RTP header. */ create_rtp_packet_buffer (&rtp_header[1], rtp_header_len[1], orig_buffer,
buffer = gst_buffer_new_allocate (NULL, rtp_header_len[1], NULL);
gst_buffer_fill (buffer, 0, &rtp_header[1], rtp_header_len[1]);
gst_buffer_copy_into (buffer, orig_buffer, GST_BUFFER_COPY_METADATA, 0, -1);
/* Create the payload buffer and add it to the current buffer. */
sub_buffer =
gst_buffer_copy_region (orig_buffer, GST_BUFFER_COPY_MEMORY,
payload_offset[1], payload_len[1]); payload_offset[1], payload_len[1]);
buffer = gst_buffer_append (buffer, sub_buffer);
fail_if (buffer == NULL);
gst_buffer_list_add (list, buffer); gst_buffer_list_add (list, buffer);
return list; return list;