Commit graph

41 commits

Author SHA1 Message Date
Wim Taymans
34ea5bdd06 rtpbuffer: relax arrangement for RTP bufferlists
Don't assume there are exactly 2 buffers but allow cases where the header and
payload are in 1 buffer or where the payload is in more buffers.
2010-12-15 16:37:29 +01:00
Stefan Kost
ecb164675d docs: fix wrong use of Since: keyword 2010-12-08 12:11:23 +02:00
Olivier Crête
7536d96d7c rtpbuffer: Add function to transform a GstBuffer into a GstBufferList
Add a new function called gst_rtp_buffer_list_from_buffer() that takes
a GstBuffer containing a RTP packets and spits out a GstBufferList
containing two buffers, one with the header and the other with the payload.
2010-10-05 16:19:14 +02:00
Olivier Crête
f6b7ea3d39 rtpbuffer: Add functions to add RFC 5285 header extensions to GstBufferLists
Add functions to add header extensions to buffer lists, these functions only modify
the header part of the buffer lists, so the data is not copied.
2010-10-05 16:19:14 +02:00
Olivier Crête
fb770ca5e5 rtpbuffer: Add function to read RFC 5285 header extensions from GstBufferLists 2010-10-05 16:19:14 +02:00
Olivier Crête
484871b495 rtpbuffer: Add function to add RTP header extensions with a two bytes header 2010-10-05 16:19:14 +02:00
Olivier Crête
02a0139451 rtpbuffer: Add function to append RFC 5285 one byte header extensions 2010-10-05 16:19:14 +02:00
Olivier Crête
e4c06debb2 rtpbuffer: Add function to parse RFC 5285 header extensions
RFC 5285 describes a generic method to add multiple header extensions to RTP packets.
These functions parse these headers and return them, both for the one-byte header and the
two bytes headers.
2010-10-05 16:19:14 +02:00
Tim-Philipp Müller
e836151009 docs: more helper libraries docs fixes
Quieten gtk-doc a bit more.
2010-03-16 00:44:50 +00:00
Stefan Kost
f3db4e01b5 rtp: dump packets which we reject 2009-10-28 11:30:58 +02:00
Wim Taymans
f5c8055edf rtpbuffer: use new convenience functions
New core convenience functions makes the list getters and setters trivial.
Maybe even too trivial...
2009-06-19 15:33:04 +02:00
Wim Taymans
457d39075c rtp: cleanups, add _list_get_seq() too
Clean up the docs a little.
Add missing _list_get_seq method.
Add new symbols to the docs
2009-06-18 19:04:52 +02:00
Wim Taymans
e2ccc1ee39 rtp: cleanups
Add Since tags to docs
Move some code around
Add win32 symbols
2009-06-18 18:51:04 +02:00
Wim Taymans
66c388a0e0 rtp: add bufferlist support 2009-06-18 18:51:04 +02:00
Wim Taymans
f385081c92 rtp: pass data to macros instead of GstBuffer 2009-06-18 18:50:35 +02:00
Wim Taymans
9ce042e2a7 Avoid overflows in the padding checks by doing the check slightly
differently.
Add a unit test to check for correct behaviour.
2009-01-21 13:09:29 +01:00
Wim Taymans
9c32e1f152 gst-libs/gst/rtp/gstrtpbuffer.c: Avoid expensive type checks we already did as part of the _validate() function that ...
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data),
(gst_rtp_buffer_set_packet_len), (gst_rtp_buffer_get_packet_len),
(gst_rtp_buffer_get_header_len), (gst_rtp_buffer_get_version),
(gst_rtp_buffer_set_version), (gst_rtp_buffer_get_padding),
(gst_rtp_buffer_set_padding), (gst_rtp_buffer_pad_to),
(gst_rtp_buffer_get_extension), (gst_rtp_buffer_set_extension),
(gst_rtp_buffer_get_extension_data),
(gst_rtp_buffer_set_extension_data), (gst_rtp_buffer_get_ssrc),
(gst_rtp_buffer_set_ssrc), (gst_rtp_buffer_get_csrc_count),
(gst_rtp_buffer_get_csrc), (gst_rtp_buffer_set_csrc),
(gst_rtp_buffer_get_marker), (gst_rtp_buffer_set_marker),
(gst_rtp_buffer_get_payload_type),
(gst_rtp_buffer_set_payload_type), (gst_rtp_buffer_get_seq),
(gst_rtp_buffer_set_seq), (gst_rtp_buffer_get_timestamp),
(gst_rtp_buffer_set_timestamp),
(gst_rtp_buffer_get_payload_subbuffer),
(gst_rtp_buffer_get_payload_len), (gst_rtp_buffer_get_payload):
Avoid expensive type checks we already did as part of the
_validate() function that should be called first.
2008-11-13 15:37:40 +00:00
Wim Taymans
86ab51207b gst-libs/gst/rtp/gstbasertpdepayload.c: Validate the RTP packet before further processing it. It's just too dangerous...
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_chain):
Validate the RTP packet before further processing it. It's just too
dangerous to accept random packets and people are not forced to use a
jitterbuffer or session manager to filter out the bad packets.
* gst-libs/gst/rtp/gstrtpbuffer.c:
(gst_rtp_buffer_set_extension_data),
(gst_rtp_buffer_get_payload_subbuffer):
Small cleanups.
When setting extension data in a buffer that is too small, we fail and
we should not set the extension bit.
Change GST_WARNINGS into g_warning because they really are
programming errors.
* tests/check/libs/rtp.c: (GST_START_TEST):
Catch the g_warnings now in the unit tests and that fact that failing to
set extension data left the extension bit untouched.
2008-05-14 20:28:02 +00:00
Bernard B
d06df554a9 gst-libs/gst/rtp/gstrtpbuffer.c: Fix seqnum compare function for bordercase values and fix the docs again. Fixes #533...
Original commit message from CVS:
Patch by: Bernard B <b-gnome at largestprime dot net>
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_compare_seqnum):
Fix seqnum compare function for bordercase values and fix the docs
again. Fixes #533075.
* tests/check/libs/rtp.c: (GST_START_TEST), (rtp_suite):
Add a testcase for seqnum compare function.
2008-05-14 13:43:12 +00:00
Wim Taymans
5b8afead80 gst-libs/gst/rtp/gstrtpbuffer.c: Fix the docs about the seqnum compare function, it returns a difference.
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtpbuffer.c:
Fix the docs about the seqnum compare function, it returns a difference.
2008-04-25 07:37:09 +00:00
Thijs Vermeir
b8d39bc200 Add gst_rtp_buffer_set_extension_data()
Original commit message from CVS:
Patch by: Thijs Vermeir <thijsvermeir at gmail dot com>
* gst-libs/gst/rtp/gstrtpbuffer.c:
(gst_rtp_buffer_set_extension_data):
* gst-libs/gst/rtp/gstrtpbuffer.h:
* tests/check/libs/rtp.c: (GST_START_TEST), (rtp_suite):
Add gst_rtp_buffer_set_extension_data()
Add a unit test for this addition. Fixes #511478.
API: GstRTPBuffer:gst_rtp_buffer_set_extension_data()
2008-02-01 11:09:16 +00:00
Thijs Vermeir
d821d8b783 gst-libs/gst/rtp/gstrtpbuffer.c: Fix typos and wrong extension check. Fixes #511274.
Original commit message from CVS:
Patch by: Thijs Vermeir <thijsvermeir at gmail dot com>
* gst-libs/gst/rtp/gstrtpbuffer.c:
(gst_rtp_buffer_get_extension_data):
Fix typos and wrong extension check. Fixes #511274.
2008-01-22 15:37:49 +00:00
Sebastian Dröge
6e51063659 gst-libs/gst/rtp/gstrtpbuffer.c: Fix bug introduced with last commit which inverted the logic and caused all buffers ...
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtpbuffer.c:
(gst_rtp_buffer_get_payload_subbuffer):
Fix bug introduced with last commit which inverted the logic and
caused all buffers to be dropped. Fixes #483620.
Thanks to Laurent Glayal <spglegle at yahoo dot fr> for noticing.
2007-10-05 07:49:25 +00:00
Stefan Kost
ff01787e4e gst-libs/gst/rtp/gstrtpbuffer.c: with regular return and warning.
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtpbuffer.c:
Replace g_return_if_val (as it could be disabled), with regular return
and warning.
2007-10-04 06:50:53 +00:00
Wim Taymans
7cdfb6d154 gst-libs/gst/rtp/: Added new file and header to deal with payload info.
Original commit message from CVS:
* gst-libs/gst/rtp/Makefile.am:
* gst-libs/gst/rtp/gstrtppayloads.c: (gst_rtp_payload_info_for_pt),
(gst_rtp_payload_info_for_name):
* gst-libs/gst/rtp/gstrtppayloads.h:
Added new file and header to deal with payload info.
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data),
(gst_rtp_buffer_default_clock_rate):
* gst-libs/gst/rtp/gstrtpbuffer.h:
Payload specific stuff is move to new headers.
Implement _default_clock rate using the new payload function.
* gst-libs/gst/sdp/gstsdpmessage.c: (is_multicast_address),
(gst_sdp_parse_line):
* gst-libs/gst/sdp/gstsdpmessage.h:
Add some more comments.
2007-10-01 13:22:14 +00:00
Wim Taymans
a884abc111 gst-libs/gst/rtp/gstrtpbuffer.c: A buffer with an empty payload is also a valid buffer.
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data):
A buffer with an empty payload is also a valid buffer.
2007-09-15 00:29:11 +00:00
Tim-Philipp Müller
03992b8779 Fix gst_rtp_buffer_set_csrc() and enable csrc-related unit test checks.
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtpbuffer.c:
* tests/check/libs/rtp.c:
Fix gst_rtp_buffer_set_csrc() and enable csrc-related unit test checks.
2007-09-07 17:37:03 +00:00
Haakon Sporsheim
b2948f2453 gst-libs/gst/rtp/gstrtpbuffer.c: Fix up GstRTPHeader helper struct so that compilers will not under any circumstances...
Original commit message from CVS:
Based on patch by: Haakon Sporsheim  <haakon.sporsheim at tandberg com>
* gst-libs/gst/rtp/gstrtpbuffer.c:
Fix up GstRTPHeader helper struct so that compilers will not under
any circumstances add padding in between our fields, as currently
happens with MSVC on win32, because that would lead to us sending
out RTP payloads with broken RTP headers (#471194).
Fix assertion guards for gst_rtp_buffer_get_csrc() and _set_csrc().
* tests/check/Makefile.am:
* tests/check/libs/.cvsignore:
* tests/check/libs/rtp.c:
Add some simple unit tests for GstRTPBuffer. Some are disabled
because the code tested still needs fixing (set_csrc() does not work).
2007-09-07 16:46:05 +00:00
Tim-Philipp Müller
7ea0798a9c gst-libs/gst/rtp/gstrtpbuffer.c: Need to include stdlib.h for abs() here too.
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtpbuffer.c:
Need to include stdlib.h for abs() here too.
2007-09-05 14:09:15 +00:00
Wim Taymans
6f93db5ab5 Fix parsing of RB blocks.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/rtp/gstrtcpbuffer.c: (gst_rtcp_packet_get_rb),
(gst_rtcp_packet_sdes_copy_entry), (gst_rtcp_ntp_to_unix),
(gst_rtcp_unix_to_ntp):
* gst-libs/gst/rtp/gstrtcpbuffer.h:
Fix parsing of RB blocks.
Fix docs.
Added helper functions to convert to/from UNIX and NTP time.
API: gst_rtcp_ntp_to_unix()
API: gst_rtcp_unix_to_ntp()
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data),
(gst_rtp_buffer_get_header_len),
(gst_rtp_buffer_get_extension_data),
(gst_rtp_buffer_get_payload_subbuffer),
(gst_rtp_buffer_get_payload_len), (gst_rtp_buffer_get_payload),
(gst_rtp_buffer_ext_timestamp):
* gst-libs/gst/rtp/gstrtpbuffer.h:
Fix some more docs.
Implement handling of packets with extensions.
Fix padding check in _validate().
Added function to get extension data.
API: gst_rtp_buffer_get_header_len()
API: gst_rtp_buffer_get_extension_data()
2007-09-03 19:31:11 +00:00
Wim Taymans
27ea51ec37 gst-libs/gst/rtp/gstrtcpbuffer.c: Use g_strndup which does exactly what we want.
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtcpbuffer.c:
(gst_rtcp_packet_sdes_copy_entry):
Use g_strndup which does exactly what we want.
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_compare_seqnum),
(gst_rtp_buffer_ext_timestamp):
* gst-libs/gst/rtp/gstrtpbuffer.h:
Add helper function to compare seqnums.
Add helper function to calculate extended timestamps.
API: gst_rtp_buffer_compare_seqnum()
API: gst_rtp_buffer_ext_timestamp()
2007-08-31 15:21:13 +00:00
Wim Taymans
804e7d1759 gst-libs/gst/rtp/gstrtpbuffer.*: Fix fixed payload names and docs.
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtpbuffer.c:
(gst_rtp_buffer_default_clock_rate):
* gst-libs/gst/rtp/gstrtpbuffer.h:
Fix fixed payload names and docs.
Added method to get the default clock rates of fixed payload types.
API: GstRTPBuffer::gst_rtp_buffer_default_clock_rate()
2007-03-29 10:17:52 +00:00
Wim Taymans
62ef7da73b Small documentation updates/fixes
Original commit message from CVS:
* ext/theora/theoradec.c:
* ext/vorbis/vorbisdec.c:
* gst-libs/gst/audio/gstringbuffer.c:
(gst_ring_buffer_commit_full):
* gst-libs/gst/audio/gstringbuffer.h:
* gst-libs/gst/rtp/gstrtpbuffer.c:
* gst-libs/gst/tag/gstvorbistag.c:
Small documentation updates/fixes
2007-01-09 11:15:57 +00:00
Thomas Vander Stichele
280e2ca67b releasing 0.10.10
Original commit message from CVS:
releasing 0.10.10
2006-09-14 20:09:19 +00:00
Wim Taymans
cfb0252782 Document GstRTPBuffer.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_set_packet_len),
(gst_rtp_buffer_pad_to), (gst_rtp_buffer_get_payload_subbuffer),
(gst_rtp_buffer_get_payload_buffer):
* gst-libs/gst/rtp/gstrtpbuffer.h:
Document GstRTPBuffer.
Added function to efficiently strip payload headers.
API: gst_rtp_buffer_get_payload_subbuffer()
2006-08-18 16:43:26 +00:00
Wim Taymans
01402bc9e3 gst-libs/gst/rtp/gstbasertpdepayload.c: Don't assert when not negotiated but post a meaningfull error message. Fixes ...
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_chain),
(gst_base_rtp_depayload_change_state):
Don't assert when not negotiated but post a meaningfull
error message. Fixes #347918.
* gst-libs/gst/rtp/gstbasertppayload.c:
Add comment about better default MTU size.
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data):
Small cleanups, start docs.
2006-07-19 18:20:43 +00:00
Thomas Vander Stichele
5f83aa7dfa expand tabs
Original commit message from CVS:
expand tabs
2005-12-06 19:42:02 +00:00
Thomas Vander Stichele
ff18d8e298 Do burger's rename for rtp payloaders and depayloaders
Original commit message from CVS:

* docs/libs/tmpl/gstcolorbalance.sgml:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
* gst-libs/gst/rtp/gstbasertppayload.c:
* gst-libs/gst/rtp/gstrtpbuffer.c:
* gst-libs/gst/rtp/gstrtpbuffer.h:
Do burger's rename for rtp payloaders and depayloaders
2005-12-01 14:29:59 +00:00
Andy Wingo
3daa90cc7a gst-libs/gst/rtp/gstrtpbuffer.h: gst-libs/gst/rtp/gstrtpbuffer.c
Original commit message from CVS:
2005-11-21  Andy Wingo  <wingo@pobox.com>

patch from: Sebastien Cote <sebas642@yahoo.ca>

* gst-libs/gst/rtp/gstrtpbuffer.h:
* gst-libs/gst/rtp/gstrtpbuffer.c
(gst_rtpbuffer_get_payload_buffer): New function.
2005-11-21 19:12:51 +00:00
Wim Taymans
7667a989d3 gst-libs/gst/rtp/gstbasertpdepayload.*: Fix for RTPBuffer changes.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_chain),
(gst_base_rtp_depayload_add_to_queue),
(gst_base_rtp_depayload_push),
(gst_base_rtp_depayload_queue_release):
* gst-libs/gst/rtp/gstbasertpdepayload.h:
Fix for RTPBuffer changes.

* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtpbuffer_allocate_data),
(gst_rtpbuffer_new_take_data), (gst_rtpbuffer_new_copy_data),
(gst_rtpbuffer_new_allocate), (gst_rtpbuffer_new_allocate_len),
(gst_rtpbuffer_calc_header_len), (gst_rtpbuffer_calc_packet_len),
(gst_rtpbuffer_calc_payload_len), (gst_rtpbuffer_validate_data),
(gst_rtpbuffer_validate), (gst_rtpbuffer_set_packet_len),
(gst_rtpbuffer_get_packet_len), (gst_rtpbuffer_get_version),
(gst_rtpbuffer_set_version), (gst_rtpbuffer_get_padding),
(gst_rtpbuffer_set_padding), (gst_rtpbuffer_pad_to),
(gst_rtpbuffer_get_extension), (gst_rtpbuffer_set_extension),
(gst_rtpbuffer_get_ssrc), (gst_rtpbuffer_set_ssrc),
(gst_rtpbuffer_get_csrc_count), (gst_rtpbuffer_get_csrc),
(gst_rtpbuffer_set_csrc), (gst_rtpbuffer_get_marker),
(gst_rtpbuffer_set_marker), (gst_rtpbuffer_get_payload_type),
(gst_rtpbuffer_set_payload_type), (gst_rtpbuffer_get_seq),
(gst_rtpbuffer_set_seq), (gst_rtpbuffer_get_timestamp),
(gst_rtpbuffer_set_timestamp), (gst_rtpbuffer_get_payload_len),
(gst_rtpbuffer_get_payload):
* gst-libs/gst/rtp/gstrtpbuffer.h:
Don't subclass GstBuffer but add methods and helper functions
to construct and manipulate RTP packets in regular GstBuffers.
2005-08-18 10:23:54 +00:00
Philippe Kalaf
dc0610faff gst-libs/gst/rtp gst-libs/gst/rtp/gstbasertpdepayload.c gst-libs/gst/rtp/gstbasertpdepayload.h gst-libs/gst/rtp/gstrt...
Original commit message from CVS:
* gst-libs/gst/rtp
* gst-libs/gst/rtp/gstbasertpdepayload.c
* gst-libs/gst/rtp/gstbasertpdepayload.h
* gst-libs/gst/rtp/gstrtpbuffer.c
* gst-libs/gst/rtp/gstrtpbuffer.h
* gst-libs/gst/rtp/Makefile.am
* gst-libs/gst/rtp/README

Support libs for RTP. Basicaly this add a GstRTPBuffer (extended GstBuffer) and
a Depayloader Base class that shall be used by payload specific depayloaders.
2005-07-14 10:29:30 +00:00