Commit graph

268 commits

Author SHA1 Message Date
Wim Taymans
6835b966ec gst/rtpmanager/gstrtpjitterbuffer.c: When synchronizing buffers, take peer latency into account.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_change_state), (gst_rtp_jitter_buffer_loop),
(gst_rtp_jitter_buffer_query):
When synchronizing buffers, take peer latency into account.
Don't try to add our latency to invalid peer max latency values.
2009-08-11 02:30:29 +01:00
Tim-Philipp Müller
10d6ba4d61 Rename all GstRTPFoo structs to GstRtpFoo so that GST_BOILERPLATE registers a GType that's different than the GstRTPF...
Original commit message from CVS:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/gst-plugins-bad-plugins.hierarchy:
* docs/plugins/gst-plugins-bad-plugins.interfaces:
* docs/plugins/gst-plugins-bad-plugins.signals:
* gst/rtpmanager/gstrtpbin.c:
* gst/rtpmanager/gstrtpbin.h:
* gst/rtpmanager/gstrtpclient.c:
* gst/rtpmanager/gstrtpclient.h:
* gst/rtpmanager/gstrtpjitterbuffer.c:
* gst/rtpmanager/gstrtpjitterbuffer.h:
* gst/rtpmanager/gstrtpptdemux.c:
* gst/rtpmanager/gstrtpptdemux.h:
* gst/rtpmanager/gstrtpsession.c:
* gst/rtpmanager/gstrtpsession.h:
* gst/rtpmanager/gstrtpssrcdemux.c:
* gst/rtpmanager/gstrtpssrcdemux.h:
Rename all GstRTPFoo structs to GstRtpFoo so that GST_BOILERPLATE
registers a GType that's different than the GstRTPFoo types that
farsight registers (luckily GType names are case sensitive). Should
finally fix #430664.
2009-08-11 02:30:29 +01:00
Wim Taymans
f13ad91c77 gst/rtpmanager/gstrtpjitterbuffer.c: When drop-on-latency is set but we have no latency configured, just push the buf...
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_chain),
(gst_rtp_jitter_buffer_set_property):
When drop-on-latency is set but we have no latency configured, just push
the buffer as fast as possible.
Fix typo in comment.
2009-08-11 02:30:29 +01:00
Wim Taymans
076da98efb gst/rtpmanager/gstrtpjitterbuffer.c: Fix EOS handling.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_chain),
(gst_rtp_jitter_buffer_loop):
Fix EOS handling.
Convert some DEBUG into WARNINGs.
Pause task when flushing.
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
(rtcp_thread), (gst_rtp_session_event_recv_rtcp_sink):
Use system clock for RTCP session management timeouts.
* gst/rtpmanager/rtpsession.c: (on_new_ssrc), (on_ssrc_collision),
(on_ssrc_validated), (on_bye_ssrc), (on_bye_timeout), (on_timeout):
Release the session lock when emiting signals.
2009-08-11 02:30:28 +01:00
Wim Taymans
cdd82f2a95 gst/rtpmanager/: Remove complicated async queue and replace with more simple jitterbuffer code while also fixing some...
Original commit message from CVS:
* gst/rtpmanager/Makefile.am:
* gst/rtpmanager/async_jitter_queue.c:
* gst/rtpmanager/async_jitter_queue.h:
* gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_class_init),
(rtp_jitter_buffer_init), (rtp_jitter_buffer_finalize),
(rtp_jitter_buffer_new), (compare_seqnum),
(rtp_jitter_buffer_insert), (rtp_jitter_buffer_pop),
(rtp_jitter_buffer_flush), (rtp_jitter_buffer_num_packets),
(rtp_jitter_buffer_get_ts_diff):
* gst/rtpmanager/rtpjitterbuffer.h:
Remove complicated async queue and replace with more simple jitterbuffer
code while also fixing some bugs.
* gst/rtpmanager/gstrtpbin-marshal.list:
* gst/rtpmanager/gstrtpbin.c: (on_new_ssrc), (on_ssrc_collision),
(on_ssrc_validated), (on_bye_ssrc), (on_bye_timeout), (on_timeout),
(create_session), (gst_rtp_bin_class_init), (create_recv_rtp),
(create_send_rtp):
* gst/rtpmanager/gstrtpbin.h:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_dispose),
(gst_jitter_buffer_sink_parse_caps),
(gst_rtp_jitter_buffer_flush_start),
(gst_rtp_jitter_buffer_flush_stop),
(gst_rtp_jitter_buffer_change_state),
(gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_chain),
(gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_set_property):
* gst/rtpmanager/gstrtpsession.c: (on_new_ssrc),
(on_ssrc_collision), (on_ssrc_validated), (on_bye_ssrc),
(on_bye_timeout), (on_timeout), (gst_rtp_session_class_init),
(gst_rtp_session_init):
* gst/rtpmanager/gstrtpsession.h:
* gst/rtpmanager/rtpsession.c: (on_bye_ssrc), (session_cleanup):
Use new jitterbuffer code.
Expose some new signals in preparation for handling EOS.
2009-08-11 02:30:28 +01:00
Stefan Kost
366a756552 Add stdlib include (free, atoi, exit).
Original commit message from CVS:
* examples/app/appsrc_ex.c:
* examples/switch/switcher.c:
* ext/neon/gstneonhttpsrc.c:
* ext/timidity/gstwildmidi.c:
* ext/x264/gstx264enc.c:
* gst/mve/mveaudioenc.c: (mve_compress_audio):
* gst/rtpmanager/gstrtpclient.c:
* gst/rtpmanager/gstrtpjitterbuffer.c:
* gst/spectrum/demo-audiotest.c:
* gst/spectrum/demo-osssrc.c:
* sys/dvb/gstdvbsrc.c:
Add stdlib include (free, atoi, exit).
2009-08-11 02:30:28 +01:00
Jens Granseuer
31571c8cb2 gst/: Build fixes for gcc-2.9x (no mid-block variable declarations etc.).
Original commit message from CVS:
Patch by: Jens Granseuer  <jensgr at gmx net>
* gst/equalizer/gstiirequalizer.c:
* gst/equalizer/gstiirequalizer10bands.c:
* gst/equalizer/gstiirequalizer3bands.c:
* gst/equalizer/gstiirequalizernbands.c:
* gst/rtpmanager/async_jitter_queue.c:
(async_jitter_queue_push_sorted):
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_chain):
* gst/switch/gstswitch.c: (gst_switch_chain):
Build fixes for gcc-2.9x (no mid-block variable declarations etc.).
Fixes #450185.
2009-08-11 02:30:28 +01:00
Wim Taymans
0c4fe985b6 Rename elements to avoid conflict with farsight elements with the same name. Fixes #430664.
Original commit message from CVS:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* gst/rtpmanager/gstrtpbin.c: (create_session), (create_stream),
(gst_rtp_bin_class_init), (create_recv_rtp), (create_recv_rtcp),
(create_send_rtp), (create_rtcp), (gst_rtp_bin_request_new_pad):
* gst/rtpmanager/gstrtpclient.c: (create_stream),
(gst_rtp_client_request_new_pad):
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_clear_pt_map), (gst_rtp_jitter_buffer_loop):
* gst/rtpmanager/gstrtpmanager.c: (plugin_init):
* gst/rtpmanager/gstrtpptdemux.c:
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
(gst_rtp_session_request_new_pad):
* gst/rtpmanager/gstrtpssrcdemux.c:
Rename elements to avoid conflict with farsight elements with the same
name. Fixes #430664.
2009-08-11 02:30:28 +01:00
Wim Taymans
2a8cfc6410 Document stuff.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init):
* gst/rtpmanager/gstrtpbin.h:
* gst/rtpmanager/gstrtpclient.c:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_class_init),
(gst_rtp_jitter_buffer_clear_pt_map), (gst_rtp_jitter_buffer_loop):
* gst/rtpmanager/gstrtpjitterbuffer.h:
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init),
(gst_rtp_pt_demux_clear_pt_map):
* gst/rtpmanager/gstrtpptdemux.h:
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
(rtcp_thread), (gst_rtp_session_clear_pt_map):
* gst/rtpmanager/gstrtpsession.h:
* gst/rtpmanager/gstrtpssrcdemux.c:
(gst_rtp_ssrc_demux_class_init):
Document stuff.
Add clear-pt-map action signal where needed.
2009-08-11 02:30:27 +01:00
Wim Taymans
62d401eb93 gst/rtpmanager/async_jitter_queue.c: Fix leak when flushing.
Original commit message from CVS:
* gst/rtpmanager/async_jitter_queue.c:
(async_jitter_queue_set_flushing_unlocked):
Fix leak when flushing.
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_clear_pt_map),
(gst_rtp_bin_class_init):
* gst/rtpmanager/gstrtpbin.h:
Add clear-pt-map signal.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_flush_stop),
(gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_loop):
Init clock-rate to -1 to mark unknow clock rate.
Fix flushing.
2009-08-11 02:30:27 +01:00
Wim Taymans
88f2441722 gst/rtpmanager/gstrtpjitterbuffer.c: Pass queries upstream.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_query):
Pass queries upstream.
2009-08-11 02:30:27 +01:00
Wim Taymans
a241c62ecb gst/rtpmanager/gstrtpjitterbuffer.c: Add some debug info.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_query):
Add some debug info.
* gst/rtpmanager/rtpsession.c: (rtp_session_init),
(rtp_session_send_rtp):
Store real user name in the session.
2009-08-11 02:30:27 +01:00
Wim Taymans
333764307d gst/rtpmanager/gstrtpbin.*: Make default jitterbuffer latency configurable.
Original commit message from CVS:
reviewed by: <delete if not using a buddy>
* gst/rtpmanager/gstrtpbin.c: (create_stream),
(gst_rtp_bin_class_init), (gst_rtp_bin_set_property),
(gst_rtp_bin_get_property):
* gst/rtpmanager/gstrtpbin.h:
Make default jitterbuffer latency configurable.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_class_init),
(gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_loop),
(gst_rtp_jitter_buffer_set_property),
(gst_rtp_jitter_buffer_get_property):
Debuging cleanups.
2009-08-11 02:30:26 +01:00
Wim Taymans
ae536e0c89 gst/rtpmanager/gstrtpjitterbuffer.c: Report NO_PREROLL when going to PAUSED.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_change_state):
Report NO_PREROLL when going to PAUSED.
* gst/rtpmanager/gstrtpsession.c: (rtcp_thread):
Don't send RTCP right before we are shutting down.
* gst/rtpmanager/rtpsession.c: (rtp_session_process_rtp),
(rtp_session_process_sr), (session_report_blocks),
(rtp_session_perform_reporting):
Improve report blocks.
* gst/rtpmanager/rtpsource.c: (calculate_jitter), (init_seq),
(rtp_source_process_rtp), (rtp_source_process_sr),
(rtp_source_process_rb), (rtp_source_get_last_sr),
(rtp_source_get_last_rb):
* gst/rtpmanager/rtpsource.h:
* gst/rtpmanager/rtpstats.h:
Cleanups, add methods to access stats.
2009-08-11 02:30:25 +01:00
Wim Taymans
8bbea77a41 gst/rtpmanager/gstrtpbin.c: Emit pt map requests and cache results.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
(create_stream), (gst_rtp_bin_class_init), (pt_map_requested):
Emit pt map requests and cache results.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_class_init),
(gst_jitter_buffer_sink_parse_caps),
(gst_jitter_buffer_sink_setcaps),
(gst_rtp_jitter_buffer_get_clock_rate),
(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
* gst/rtpmanager/gstrtpjitterbuffer.h:
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
Emit request-pt-map signals.
2009-08-11 02:30:25 +01:00
Wim Taymans
03bf43d50e gst/rtpmanager/gstrtpbin-marshal.list: Some more custom marshallers.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin-marshal.list:
Some more custom marshallers.
* gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
(clock_rate_request), (create_stream), (gst_rtp_bin_class_init),
(pt_map_requested), (new_ssrc_pad_found), (create_recv_rtp):
* gst/rtpmanager/gstrtpbin.h:
Prepare for caching pt maps.
Connect to signals to collect pt maps.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_class_init),
(gst_jitter_buffer_sink_setcaps), (gst_rtp_jitter_buffer_loop):
* gst/rtpmanager/gstrtpjitterbuffer.h:
Add request_clock_rate signal.
Use scale insteat of scale_int because the later does not deal with
negative numbers.
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init),
(gst_rtp_pt_demux_chain):
* gst/rtpmanager/gstrtpptdemux.h:
Implement request-pt-map signal.
2009-08-11 02:30:24 +01:00
Wim Taymans
63dbc75734 gst/rtpmanager/gstrtpjitterbuffer.c: Add some debug and comments.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_jitter_buffer_sink_setcaps), (gst_rtp_jitter_buffer_chain),
(gst_rtp_jitter_buffer_loop):
Add some debug and comments.
Fix double unref() in error cases.
2009-08-11 02:30:24 +01:00
Wim Taymans
f0d1ab1c1f Add RTP session management elements. Still in progress.
Original commit message from CVS:
* configure.ac:
* gst/rtpmanager/Makefile.am:
* gst/rtpmanager/async_jitter_queue.c: (async_jitter_queue_new),
(signal_waiting_threads), (async_jitter_queue_ref),
(async_jitter_queue_ref_unlocked),
(async_jitter_queue_set_low_threshold),
(async_jitter_queue_set_high_threshold),
(async_jitter_queue_set_max_queue_length),
(async_jitter_queue_get_g_queue), (calculate_ts_diff),
(async_jitter_queue_length_ts_units_unlocked),
(async_jitter_queue_unref_and_unlock), (async_jitter_queue_unref),
(async_jitter_queue_lock), (async_jitter_queue_unlock),
(async_jitter_queue_push), (async_jitter_queue_push_unlocked),
(async_jitter_queue_push_sorted),
(async_jitter_queue_push_sorted_unlocked),
(async_jitter_queue_insert_after_unlocked),
(async_jitter_queue_pop_intern_unlocked), (async_jitter_queue_pop),
(async_jitter_queue_pop_unlocked), (async_jitter_queue_length),
(async_jitter_queue_length_unlocked),
(async_jitter_queue_set_flushing_unlocked),
(async_jitter_queue_unset_flushing_unlocked),
(async_jitter_queue_set_blocking_unlocked):
* gst/rtpmanager/async_jitter_queue.h:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_base_init),
(gst_rtp_bin_class_init), (gst_rtp_bin_init),
(gst_rtp_bin_finalize), (gst_rtp_bin_set_property),
(gst_rtp_bin_get_property), (gst_rtp_bin_change_state),
(gst_rtp_bin_request_new_pad), (gst_rtp_bin_release_pad):
* gst/rtpmanager/gstrtpbin.h:
* gst/rtpmanager/gstrtpclient.c: (new_pad), (create_stream),
(free_stream), (find_stream_by_ssrc), (gst_rtp_client_base_init),
(gst_rtp_client_class_init), (gst_rtp_client_init),
(gst_rtp_client_finalize), (gst_rtp_client_set_property),
(gst_rtp_client_get_property), (gst_rtp_client_change_state),
(gst_rtp_client_request_new_pad), (gst_rtp_client_release_pad):
* gst/rtpmanager/gstrtpclient.h:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_base_init),
(gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_init),
(gst_rtp_jitter_buffer_dispose), (gst_rtp_jitter_buffer_getcaps),
(gst_jitter_buffer_sink_setcaps), (free_func),
(gst_rtp_jitter_buffer_flush_start),
(gst_rtp_jitter_buffer_flush_stop),
(gst_rtp_jitter_buffer_src_activate_push),
(gst_rtp_jitter_buffer_change_state), (priv_compare_rtp_seq_lt),
(compare_rtp_buffers_seq_num), (gst_rtp_jitter_buffer_sink_event),
(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop),
(gst_rtp_jitter_buffer_query),
(gst_rtp_jitter_buffer_set_property),
(gst_rtp_jitter_buffer_get_property):
* gst/rtpmanager/gstrtpjitterbuffer.h:
* gst/rtpmanager/gstrtpmanager.c: (plugin_init):
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_base_init),
(gst_rtp_pt_demux_class_init), (gst_rtp_pt_demux_init),
(gst_rtp_pt_demux_finalize), (gst_rtp_pt_demux_chain),
(gst_rtp_pt_demux_getcaps), (find_pad_for_pt),
(gst_rtp_pt_demux_setup), (gst_rtp_pt_demux_release),
(gst_rtp_pt_demux_change_state):
* gst/rtpmanager/gstrtpptdemux.h:
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_base_init),
(gst_rtp_session_class_init), (gst_rtp_session_init),
(gst_rtp_session_finalize), (gst_rtp_session_set_property),
(gst_rtp_session_get_property), (gst_rtp_session_change_state),
(gst_rtp_session_chain_recv_rtp),
(gst_rtp_session_chain_recv_rtcp),
(gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
(create_recv_rtcp_sink), (create_send_rtp_sink), (create_rtcp_src),
(gst_rtp_session_request_new_pad), (gst_rtp_session_release_pad):
* gst/rtpmanager/gstrtpsession.h:
Add RTP session management elements. Still in progress.
2009-08-11 02:30:23 +01:00