vorbispay: always collect headers on data
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 28 Jun 2013 10:06:21 +0000 (12:06 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 28 Jun 2013 10:07:58 +0000 (12:07 +0200)
When we see a data packet, always check if we need to collect any previous
headers.

gst/rtp/gstrtpvorbispay.c

index 298a4f9..1be1c49 100644 (file)
@@ -161,6 +161,9 @@ gst_rtp_vorbis_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps)
       goto null_buffer;
 
     gst_buffer_map (buf, &map, GST_MAP_READ);
+    if (map.size < 1)
+      goto invalid_streamheader;
+
     /* no data packets allowed */
     if ((map.data[0] & 1) == 0)
       goto invalid_streamheader;
@@ -608,7 +611,7 @@ gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload,
     rtpvorbispay->headers = g_list_append (rtpvorbispay->headers, buffer);
     ret = GST_FLOW_OK;
     goto done;
-  } else if (rtpvorbispay->need_headers) {
+  } else if (rtpvorbispay->headers) {
     if (!gst_rtp_vorbis_pay_finish_headers (basepayload))
       goto header_error;
   }