Commit 4aac6313 authored by Wim Taymans's avatar Wim Taymans

gst/rtp/gstrtpmp4venc.c: Don't fragment packets with multiple frames.

Original commit message from CVS:
* gst/rtp/gstrtpmp4venc.c: (gst_rtpmp4venc_class_init),
(gst_rtpmp4venc_parse_data), (gst_rtpmp4venc_handle_buffer),
(gst_rtpmp4venc_set_property):
Don't fragment packets with multiple frames.
parent 9a478bd3
2005-09-22 Wim Taymans <wim@fluendo.com>
* gst/rtp/gstrtpmp4venc.c: (gst_rtpmp4venc_class_init),
(gst_rtpmp4venc_parse_data), (gst_rtpmp4venc_handle_buffer),
(gst_rtpmp4venc_set_property):
Don't fragment packets with multiple frames.
2005-09-22 Wim Taymans <wim@fluendo.com>
* gst/rtp/TODO:
......
......@@ -370,6 +370,7 @@ gst_rtpmp4venc_handle_buffer (GstBaseRTPPayload * basepayload,
/* strip off header */
subbuf = gst_buffer_create_sub (buffer, strip, size - strip);
GST_BUFFER_TIMESTAMP (subbuf) = GST_BUFFER_TIMESTAMP (buffer);
gst_buffer_unref (buffer);
buffer = subbuf;
......@@ -381,20 +382,24 @@ gst_rtpmp4venc_handle_buffer (GstBaseRTPPayload * basepayload,
/* if we need to flush, do so now */
if (flush) {
ret = gst_rtpmp4venc_flush (rtpmp4venc);
avail = 0;
rtpmp4venc->first_ts = GST_BUFFER_TIMESTAMP (buffer);
}
/* push new data */
gst_adapter_push (rtpmp4venc->adapter, buffer);
avail = gst_adapter_available (rtpmp4venc->adapter);
/* get packet length of data and see if we exceeded MTU. */
packet_len = gst_rtpbuffer_calc_packet_len (avail, 0, 0);
packet_len = gst_rtpbuffer_calc_packet_len (avail + size, 0, 0);
if (packet_len > GST_BASE_RTP_PAYLOAD_MTU (rtpmp4venc)) {
ret = gst_rtpmp4venc_flush (rtpmp4venc);
avail = 0;
rtpmp4venc->first_ts = GST_BUFFER_TIMESTAMP (buffer);
}
/* push new data */
gst_adapter_push (rtpmp4venc->adapter, buffer);
return ret;
}
......
......@@ -370,6 +370,7 @@ gst_rtpmp4venc_handle_buffer (GstBaseRTPPayload * basepayload,
/* strip off header */
subbuf = gst_buffer_create_sub (buffer, strip, size - strip);
GST_BUFFER_TIMESTAMP (subbuf) = GST_BUFFER_TIMESTAMP (buffer);
gst_buffer_unref (buffer);
buffer = subbuf;
......@@ -381,20 +382,24 @@ gst_rtpmp4venc_handle_buffer (GstBaseRTPPayload * basepayload,
/* if we need to flush, do so now */
if (flush) {
ret = gst_rtpmp4venc_flush (rtpmp4venc);
avail = 0;
rtpmp4venc->first_ts = GST_BUFFER_TIMESTAMP (buffer);
}
/* push new data */
gst_adapter_push (rtpmp4venc->adapter, buffer);
avail = gst_adapter_available (rtpmp4venc->adapter);
/* get packet length of data and see if we exceeded MTU. */
packet_len = gst_rtpbuffer_calc_packet_len (avail, 0, 0);
packet_len = gst_rtpbuffer_calc_packet_len (avail + size, 0, 0);
if (packet_len > GST_BASE_RTP_PAYLOAD_MTU (rtpmp4venc)) {
ret = gst_rtpmp4venc_flush (rtpmp4venc);
avail = 0;
rtpmp4venc->first_ts = GST_BUFFER_TIMESTAMP (buffer);
}
/* push new data */
gst_adapter_push (rtpmp4venc->adapter, buffer);
return ret;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment