mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-05 02:02:26 +00:00
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.
This commit is contained in:
parent
9a478bd315
commit
4aac63130a
3 changed files with 25 additions and 8 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
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>
|
2005-09-22 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
* gst/rtp/TODO:
|
* gst/rtp/TODO:
|
||||||
|
|
|
@ -370,6 +370,7 @@ gst_rtpmp4venc_handle_buffer (GstBaseRTPPayload * basepayload,
|
||||||
|
|
||||||
/* strip off header */
|
/* strip off header */
|
||||||
subbuf = gst_buffer_create_sub (buffer, strip, size - strip);
|
subbuf = gst_buffer_create_sub (buffer, strip, size - strip);
|
||||||
|
GST_BUFFER_TIMESTAMP (subbuf) = GST_BUFFER_TIMESTAMP (buffer);
|
||||||
gst_buffer_unref (buffer);
|
gst_buffer_unref (buffer);
|
||||||
buffer = subbuf;
|
buffer = subbuf;
|
||||||
|
|
||||||
|
@ -381,20 +382,24 @@ gst_rtpmp4venc_handle_buffer (GstBaseRTPPayload * basepayload,
|
||||||
/* if we need to flush, do so now */
|
/* if we need to flush, do so now */
|
||||||
if (flush) {
|
if (flush) {
|
||||||
ret = gst_rtpmp4venc_flush (rtpmp4venc);
|
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);
|
avail = gst_adapter_available (rtpmp4venc->adapter);
|
||||||
|
|
||||||
/* get packet length of data and see if we exceeded MTU. */
|
/* 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)) {
|
if (packet_len > GST_BASE_RTP_PAYLOAD_MTU (rtpmp4venc)) {
|
||||||
ret = gst_rtpmp4venc_flush (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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -370,6 +370,7 @@ gst_rtpmp4venc_handle_buffer (GstBaseRTPPayload * basepayload,
|
||||||
|
|
||||||
/* strip off header */
|
/* strip off header */
|
||||||
subbuf = gst_buffer_create_sub (buffer, strip, size - strip);
|
subbuf = gst_buffer_create_sub (buffer, strip, size - strip);
|
||||||
|
GST_BUFFER_TIMESTAMP (subbuf) = GST_BUFFER_TIMESTAMP (buffer);
|
||||||
gst_buffer_unref (buffer);
|
gst_buffer_unref (buffer);
|
||||||
buffer = subbuf;
|
buffer = subbuf;
|
||||||
|
|
||||||
|
@ -381,20 +382,24 @@ gst_rtpmp4venc_handle_buffer (GstBaseRTPPayload * basepayload,
|
||||||
/* if we need to flush, do so now */
|
/* if we need to flush, do so now */
|
||||||
if (flush) {
|
if (flush) {
|
||||||
ret = gst_rtpmp4venc_flush (rtpmp4venc);
|
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);
|
avail = gst_adapter_available (rtpmp4venc->adapter);
|
||||||
|
|
||||||
/* get packet length of data and see if we exceeded MTU. */
|
/* 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)) {
|
if (packet_len > GST_BASE_RTP_PAYLOAD_MTU (rtpmp4venc)) {
|
||||||
ret = gst_rtpmp4venc_flush (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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue