Commit graph

43 commits

Author SHA1 Message Date
Wim Taymans
678753b325 baseaudiopay: fix timestamps on buffer lists
Fix the outgoing timestamps and RTP timestamps on outgoing buffers when using
buffer lists.
2010-12-30 18:09:58 +01:00
Olivier Crête
0a24137100 basertpaudiopayload: Add extra frame for non-complete frame lengths
Some payloaders like rtpg729pay can add a shorter frame at the end of a
RTP packet. We need to count it like a full frame for timestamps.

https://bugzilla.gnome.org/show_bug.cgi?id=618324
2010-05-13 11:03:12 +02:00
Olivier Crête
8a2b81a576 basertpaudiopayload: Set duration on buffers
Set the duration of the buffers from their size
2010-05-13 10:54:08 +02:00
Olivier Crête
66cc2faba7 audiopayload: use ptime-multiple
Based on patch by Olivier Crête <olivier.crete@collabora.co.uk>

Fixes #613248
2010-04-09 16:17:31 +02:00
Wim Taymans
73d5ae1107 audiopayload: add support for buffer-lists 2010-01-06 13:39:14 +01:00
Olivier Crête
bc6179952b basertpaudiopayload: Respect ptime if it is given
If the ptime is given in the caps, respect it and force the minimum
and maximum sizes to be exactly the requested ptime.

https://bugzilla.gnome.org/show_bug.cgi?id=606050
2010-01-05 13:20:49 -05:00
Tim-Philipp Müller
6f4c1ac583 Remove GST_DEBUG_FUNCPTR where they're pointless
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
2009-10-28 00:59:35 +00:00
Olivier Crête
e27c24b200 rtpaudiopayload: Only sent exact multiple of the frame size
Also align the maximum size with the frame size, not only the minimum
2009-10-23 13:56:05 +03:00
Wim Taymans
7a7663476f audiortppay: add some debugging 2009-09-03 18:53:19 +02:00
Wim Taymans
c1db9ebb20 audiortppay: handle gaps
Add various conversion functions between time<->bytes<->rtptime that will be
used later on.
Refactor the min/max packet length code so that it can be used for both
sample/frame based payloaders. Cache the returned values.
code cleanups.
When we discover a DISCONT buffer, make the outgoing RTP timestamps have the
same gap as the GStreamer timestamps gap.
2009-09-03 17:59:00 +02:00
Wim Taymans
3a3c6f309c audiortppay: fix frame duration calculations
Fix the calculation of the frame duration and rtp timestamps.
Add some debugging
2009-09-03 17:59:00 +02:00
Wim Taymans
bb91a7b47c audiortppay: use offsets for RTP timestamps
Have a custom sample/frame function to generate an offset that the base class
will use for generating RTP timestamps. This results in perfect RTP timestamps
on the output buffers.
Refactor setting metadata on output buffers.
Add some more functionality to _flush().
Handle DISCONT on the input buffers and set the marker bit and DISCONT flag on
the next outgoing buffer.
Flush the pending data on EOS.
2009-09-03 17:58:59 +02:00
Wim Taymans
c1ae0a2003 audiortppay: move function around 2009-09-03 17:58:59 +02:00
Wim Taymans
5808041f44 audiortppay: fix sample duration calculation 2009-09-03 17:58:59 +02:00
Wim Taymans
299ab7be0e audiortppay: more refactoring
Unify the sample/frame buffer handling code by making the functions plugable.
2009-09-03 17:58:59 +02:00
Wim Taymans
fb5037f727 audiortppayload: refactor some more
Refactor getting the packet min/max size and alignment code.
Refactor converting bytes to time.
change some variable to something shorter.
2009-09-03 17:58:59 +02:00
Wim Taymans
1c6b71af03 audiortppayload: refactor and cleanup
Always use the adapter when we need to fragment the incomming buffer. Use more
modern adapter functions to avoid malloc and memcpy. The overall result is that
the code looks cleaner while it should be equally fast and in some case avoid a
memcpy and malloc.
Use the adapter timestamping functions for more precise timestamps in case of
weird disconts.
Cache some values instead of recalculating them.
Add gst_base_rtp_audio_payload_flush() to flush a certain amount of bytes from
the internal adapter.

API: GstBaseRTPAudioPayload::gst_base_rtp_audio_payload_flush()
2009-09-03 17:58:59 +02:00
Wim Taymans
bc3c8a1564 audiopayload: code cleanups 2009-09-03 11:15:20 +02:00
Wim Taymans
3c29efa692 audiortppayload: don't check adapter
the adapter is never NULL so we don't need to check it.
Use _scale functions to avoid overflows.
2009-09-03 11:15:20 +02:00
Mersad Jelacic
ed814cbaed gst-libs/gst/rtp/gstbasertpaudiopayload.*: API: add gst_base_rtp_audio_payload_set_samplebits_options() to make it po...
Original commit message from CVS:
Patch by: Mersad Jelacic  <mersad at axis dot com>
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
API: add gst_base_rtp_audio_payload_set_samplebits_options() to make it
possible to specify the sample size in bits. (#509637)
2008-03-03 16:11:50 +00:00
Wim Taymans
d8c28a99c8 gst-libs/gst/rtp/gstbasertpaudiopayload.c: Fix potential leaks.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_handle_frame_based_buffer),
(gst_base_rtp_audio_payload_handle_sample_based_buffer):
Fix potential leaks.
* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_chain):
Fix leak when there is no function configured.
2008-02-12 14:51:26 +00:00
Wim Taymans
56e39e7c1c gst-libs/gst/rtp/gstbasertpaudiopayload.c: Return FALSE from the event handler to let the parent class handle the event.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_payload_audio_handle_event):
Return FALSE from the event handler to let the parent class handle the
event.
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_chain), (gst_base_rtp_depayload_push_full):
Mark outgoing buffers as DISCONT if the incomming buffer was DISCONT.
* gst-libs/gst/rtp/gstbasertppayload.c:
Bump the MTU to 1400.
2007-09-04 16:18:48 +00:00
Stefan Kost
aac0353ce6 gst-libs/gst/: Make gtk-doc happy.
Original commit message from CVS:
* gst-libs/gst/interfaces/propertyprobe.c:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/tag/gstvorbistag.c:
Make gtk-doc happy.
2007-07-10 20:46:41 +00:00
Wim Taymans
7ace85992a gst-libs/gst/rtp/gstbasertpaudiopayload.c: Some cleanups, remove minptime property as it is now in the parent class.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_class_init),
(gst_base_rtp_audio_payload_init),
(gst_base_rtp_audio_payload_finalize),
(gst_base_rtp_audio_payload_handle_frame_based_buffer),
(gst_base_rtp_audio_payload_handle_sample_based_buffer),
(gst_base_rtp_payload_audio_handle_event):
Some cleanups, remove minptime property as it is now in the parent
class.
Override parent class event function.
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_class_init), (gst_basertppayload_init),
(gst_basertppayload_event), (gst_basertppayload_set_property),
(gst_basertppayload_get_property):
* gst-libs/gst/rtp/gstbasertppayload.h:
Add min-ptime property.
Add handle-event vmethod. Fixes #415001.
2007-05-21 09:45:28 +00:00
Sébastien Moutte
c88306fe26 gst-libs/gst/rtp/gstbasertpaudiopayload.c: Move variable declaration before the first instruction.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_handle_frame_based_buffer):
Move variable declaration before the first instruction.
* gst/videotestsrc/videotestsrc.c:
Define M_PI if it's not defined yet.
* win32/common/libgstrtp.def:
Add new exported functions.
2007-05-09 21:17:40 +00:00
Stefan Kost
64a9674bd2 gst/: gst/audiotestsrc/gstaudiotestsrc.c
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst/adder/gstadder.c:
* gst/audiotestsrc/gstaudiotestsrc.c
(gst_audio_test_src_create_white_noise):
* gst/videotestsrc/gstvideotestsrc.c:
* gst/volume/gstvolume.c (VOLUME_UNITY_INT16,
VOLUME_UNITY_INT16_BIT_SHIFT, VOLUME_MAX_DOUBLE,
volume_sink_template, volume_src_template, gst_volume_init,
volume_process_double, volume_process_int16,
volume_process_int16_clamp):
Doc fixes and formatting.
2007-05-04 13:10:07 +00:00
Olivier Crete
e3ff444d30 gst-libs/gst/rtp/gstbasertpaudiopayload.c: Chain up to parent class in dispose function; get rid of unnecessary 'dipo...
Original commit message from CVS:
Patch by: Olivier Crete  <tester at tester ca>
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_class_init),
(gst_base_rtp_audio_payload_init),
(gst_base_rtp_audio_payload_dispose):
Chain up to parent class in dispose function; get rid of
unnecessary 'diposed' flag in private structure (#415001).
2007-04-21 15:25:22 +00:00
Tim-Philipp Müller
71d77fbecc Some minor docs fixes and additions; also add missing 'Since' bits.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs.types:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_class_init):
* gst-libs/gst/rtp/gstbasertpdepayload.c:
* gst-libs/gst/rtp/gstbasertppayload.c:
Some minor docs fixes and additions; also add missing 'Since' bits.
2007-04-21 15:10:25 +00:00
Zeeshan Ali
80ebb9eb42 gst-libs/gst/rtp/gstbasertpaudiopayload.*: The recently-added gst_base_rtp_audio_payload_push() should take an object...
Original commit message from CVS:
Patch by: Zeeshan Ali  <zeenix gmail com>
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_handle_frame_based_buffer),
(gst_base_rtp_audio_payload_handle_sample_based_buffer),
(gst_base_rtp_audio_payload_push):
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
The recently-added gst_base_rtp_audio_payload_push() should take an
object of type GstBaseRTPAudioPayload as first argument (#431672).
2007-04-21 14:40:45 +00:00
Wim Taymans
0a39f494b5 Add RTCP docs.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-docs.sgml:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_get_adapter):
Add RTCP docs.
Fix some more docs.
* gst-libs/gst/rtp/Makefile.am:
* gst-libs/gst/rtp/gstrtcpbuffer.c:
(gst_rtcp_buffer_new_take_data), (gst_rtcp_buffer_new_copy_data),
(gst_rtcp_buffer_validate_data), (gst_rtcp_buffer_validate),
(gst_rtcp_buffer_get_packet_count), (read_packet_header),
(gst_rtcp_buffer_get_first_packet), (gst_rtcp_packet_move_to_next),
(gst_rtcp_buffer_add_packet), (gst_rtcp_packet_remove),
(gst_rtcp_packet_get_padding), (gst_rtcp_packet_get_type),
(gst_rtcp_packet_get_count), (gst_rtcp_packet_get_length),
(gst_rtcp_packet_sr_get_sender_info),
(gst_rtcp_packet_sr_set_sender_info),
(gst_rtcp_packet_rr_get_ssrc), (gst_rtcp_packet_rr_set_ssrc),
(gst_rtcp_packet_get_rb_count), (gst_rtcp_packet_get_rb),
(gst_rtcp_packet_add_rb), (gst_rtcp_packet_set_rb),
(gst_rtcp_packet_sdes_get_chunk_count),
(gst_rtcp_packet_sdes_first_chunk),
(gst_rtcp_packet_sdes_next_chunk), (gst_rtcp_packet_sdes_get_ssrc),
(gst_rtcp_packet_sdes_first_item),
(gst_rtcp_packet_sdes_next_item), (gst_rtcp_packet_sdes_get_item),
(gst_rtcp_packet_bye_get_ssrc_count),
(gst_rtcp_packet_bye_get_nth_ssrc), (gst_rtcp_packet_bye_add_ssrc),
(gst_rtcp_packet_bye_add_ssrcs), (get_reason_offset),
(gst_rtcp_packet_bye_get_reason_len),
(gst_rtcp_packet_bye_get_reason), (gst_rtcp_packet_bye_set_reason):
* gst-libs/gst/rtp/gstrtcpbuffer.h:
Add new helper object for parsing and creating RTCP messages.
2007-03-29 16:20:31 +00:00
Philippe Kalaf
b6d7f65463 gst-libs/gst/rtp/gstbasertpaudiopayload.*: olivier.crete@collabora.co.uk.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
Add min-ptime property to RTP base audio payloader. Patch by
olivier.crete@collabora.co.uk.
Fixes #415001

Indentation/whitespace/documentation fixes.
2007-03-14 21:11:18 +00:00
Sébastien Moutte
9caee48ed4 gst-libs/gst/rtp/gstbasertpaudiopayload.c: Use gst_gdouble_to_guint64 for conversions.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:(gst_base_rtp_audio_payload_handle_frame_based_buffer):
Use gst_gdouble_to_guint64 for conversions.
* win32/common/config.h.in:
Add a define for GST_INSTALL_PLUGINS_HELPER
* win32/common/libgstaudio.def:
* win32/common/libgstcdda.def:
* win32/common/libgstnetbuffer.def:
* win32/common/libgstrtp.def:
* win32/common/libgutils.def:
Add new exported functions.
* win32/vs6/gst_plugins_base.dsw:
* win32/vs6/libgstdecodebin.dsp:
* win32/vs6/libgstnetbuffer.dsp:
* win32/vs6/libgstplaybin.dsp:
* win32/vs6/libgstrtp.dsp:
* win32/vs6/libgstvorbis.dsp:
* win32/vs6/libgstcdda.dsp:
* win32/vs6/libgstgdp.dsp:
* win32/vs6/libgstutils.dsp:
Update and add new project files.
2007-02-10 19:27:48 +00:00
Jens Granseuer
595217e840 Declare variables at the beginning of a block. Fixes #383195.
Original commit message from CVS:
Patch by: Jens Granseuer <jensgr at gmx net>
* gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_create):
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_handle_frame_based_buffer),
(gst_base_rtp_audio_payload_handle_sample_based_buffer):
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_fixate):
Declare variables at the beginning of a block. Fixes #383195.
2006-12-09 15:12:38 +00:00
Wim Taymans
351622d028 gst-libs/gst/rtp/: Fix and activate base audio payloader.
Original commit message from CVS:
* gst-libs/gst/rtp/Makefile.am:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_init):
Fix and activate base audio payloader.
2006-10-31 10:49:19 +00:00
Philippe Kalaf
306ab03865 gst-libs/gst/rtp/gstbasertpaudiopayload.c: Removed empty * between paragraphs
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
Removed empty * between paragraphs
2006-09-30 00:14:20 +00:00
Philippe Kalaf
5ba46c0866 gst-libs/gst/rtp/: Moved some documentation into .c file
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/rtp/README:
Moved some documentation into .c file
2006-09-29 23:50:53 +00:00
Philippe Kalaf
214a128382 gst-libs/gst/rtp/gstbasertpaudiopayload.*: Moved AudioCodecType into priv
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
Moved AudioCodecType into priv
Renamed all gst_basertpaudiopayload to gst_base_rtp_audio_payload prefixes
2006-09-27 00:13:29 +00:00
Philippe Kalaf
7e52276a83 gst-libs/gst/rtp/gstbasertpaudiopayload.c: Fixed nasty memory leak
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
Fixed nasty memory leak
2006-06-29 12:21:06 +00:00
Tim-Philipp Müller
114a273f27 Use GST_DEBUG_CATEGORY_STATIC where possible (#342503).
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
* gst-libs/gst/rtp/gstbasertppayload.c:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
* gst/tcp/gstmultifdsink.c:
* gst/tcp/gsttcpclientsink.c:
* gst/tcp/gsttcpclientsrc.c:
* gst/tcp/gsttcpserversink.c:
* gst/tcp/gsttcpserversrc.c:
* gst/videorate/gstvideorate.c:
* gst/videotestsrc/gstvideotestsrc.c:
* sys/v4l/gstv4ljpegsrc.c:
* sys/v4l/gstv4lmjpegsink.c:
* sys/v4l/gstv4lsrc.c:
* tests/examples/seek/scrubby.c:
* tests/examples/seek/seek.c:
Use GST_DEBUG_CATEGORY_STATIC where possible (#342503).
2006-06-23 09:53:09 +00:00
Philippe Kalaf
0e710f94cc gst-libs/gst/rtp/gstbasertpaudiopayload.c: 80 line columns
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
80 line columns
Removed redundant floor()
2006-05-19 17:57:56 +00:00
Philippe Kalaf
8675bc89e4 gst-libs/gst/rtp/README: Some new documentation
Original commit message from CVS:
2006-05-18 Philippe Kalaf <philippe.kalaf@collabora.co.uk>

* gst-libs/gst/rtp/README:
Some new documentation
* gst-libs/gst/rtp/gstrtpbuffer.h:
Added GST_RTP_PAYLOAD_DYNAMIC_STRING for use by children
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
New RTP audio base payloader class. Supports frame or sample based codecs.
Not enabled in Makefile.am until approved.
2006-05-18 23:00:02 +00:00
Thomas Vander Stichele
cccfb086bc doc reparagraphing and DEBUG_FUNCPTRing
Original commit message from CVS:
doc reparagraphing and DEBUG_FUNCPTRing
2006-05-08 15:51:15 +00:00
Philippe Kalaf
a916af7c48 gst-libs/gst/rtp/gstrtpbuffer.h: Added GST_RTP_PAYLOAD_DYNAMIC_STRING for use by children
Original commit message from CVS:
2006-04-12 Philippe Kalaf <philippe.kalaf@collabora.co.uk>

* gst-libs/gst/rtp/gstrtpbuffer.h:
Added GST_RTP_PAYLOAD_DYNAMIC_STRING for use by children
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
New RTP audio base payloader class. Supports frame or sample based codecs
2006-04-13 03:55:12 +00:00