1. 26 Apr, 2015 1 commit
  2. 27 Feb, 2014 1 commit
  3. 03 Jan, 2014 1 commit
    • Julien Isorce's avatar
      rtpmanager: add new rtprtxsend / rtprtxreceive elements · 5a1aa759
      Julien Isorce authored
      The purpose of the sender RTX object is to keep a history
      of RTP packets up to a configurable limit (in time). It will
      listen for custom retransmission events from downstream. When
      it receives a request for retransmission, it will look up the
      requested seqnum in its list of stored packets. If the packet
      is available, it will create a RTX packet according to RFC 4588
      and send this as an auxiliary stream.
      
      The receiver will listen to the custom retransmission events
      from the downstream jitterbuffer and will remember the SSRC1
      of the stream and seqnum that was requested. When it sees a
      packet with one of the stored seqnum, it associates the SSRC2
      of the stream with the SSRC1 of the master stream. From then
      on it knows that SSRC2 is the retransmission stream of SSRC1.
      This algorithm is stated in RFC 4588. For this algorithm to
      work, RFC4588 also states that no two pending retransmission
      requests can exist for the same seqnum and different SSRCs or
      else it would be impossible to associate the retransmission with
      the original requester SSRC.
      When the RTX receiver has associated the retransmission packets,
      it can depayload and forward them to the source pad of the element.
      
      RTX is SSRC-multiplexed
      
      Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711084
      5a1aa759
  4. 19 Aug, 2013 1 commit
  5. 04 Aug, 2013 1 commit
  6. 15 Apr, 2013 1 commit
  7. 16 Dec, 2012 1 commit
  8. 04 Apr, 2012 1 commit
  9. 01 Feb, 2012 1 commit
  10. 03 Nov, 2011 1 commit
  11. 10 Apr, 2011 1 commit
  12. 10 Mar, 2010 1 commit
    • Benjamin Otte's avatar
      Update for recent changes to common submodule · 21f66635
      Benjamin Otte authored
      This just replaces every "$ERROR_CFLAGS" usage with a usage of
      "$WARNING_CFLAGS $ERROR_CFLAGS" to get the same functionality as
      previously.
      
      Actually using that separation will happen later.
      21f66635
  13. 16 Oct, 2009 1 commit
  14. 11 Aug, 2009 9 commits
    • Wim Taymans's avatar
      rtpbin: removed old gstrtpclient · d8496fb1
      Wim Taymans authored
      d8496fb1
    • Stefan Kost's avatar
      Don't install static libs for plugins. Fixes #550851 for -bad. · b8352968
      Stefan Kost authored
      Original commit message from CVS:
      * ext/alsaspdif/Makefile.am:
      * ext/amrwb/Makefile.am:
      * ext/apexsink/Makefile.am:
      * ext/arts/Makefile.am:
      * ext/artsd/Makefile.am:
      * ext/audiofile/Makefile.am:
      * ext/audioresample/Makefile.am:
      * ext/bz2/Makefile.am:
      * ext/cdaudio/Makefile.am:
      * ext/celt/Makefile.am:
      * ext/dc1394/Makefile.am:
      * ext/dirac/Makefile.am:
      * ext/directfb/Makefile.am:
      * ext/divx/Makefile.am:
      * ext/dts/Makefile.am:
      * ext/faac/Makefile.am:
      * ext/faad/Makefile.am:
      * ext/gsm/Makefile.am:
      * ext/hermes/Makefile.am:
      * ext/ivorbis/Makefile.am:
      * ext/jack/Makefile.am:
      * ext/jp2k/Makefile.am:
      * ext/ladspa/Makefile.am:
      * ext/lcs/Makefile.am:
      * ext/libfame/Makefile.am:
      * ext/libmms/Makefile.am:
      * ext/metadata/Makefile.am:
      * ext/mpeg2enc/Makefile.am:
      * ext/mplex/Makefile.am:
      * ext/musepack/Makefile.am:
      * ext/musicbrainz/Makefile.am:
      * ext/mythtv/Makefile.am:
      * ext/nas/Makefile.am:
      * ext/neon/Makefile.am:
      * ext/ofa/Makefile.am:
      * ext/polyp/Makefile.am:
      * ext/resindvd/Makefile.am:
      * ext/sdl/Makefile.am:
      * ext/shout/Makefile.am:
      * ext/snapshot/Makefile.am:
      * ext/sndfile/Makefile.am:
      * ext/soundtouch/Makefile.am:
      * ext/spc/Makefile.am:
      * ext/swfdec/Makefile.am:
      * ext/tarkin/Makefile.am:
      * ext/theora/Makefile.am:
      * ext/timidity/Makefile.am:
      * ext/twolame/Makefile.am:
      * ext/x264/Makefile.am:
      * ext/xine/Makefile.am:
      * ext/xvid/Makefile.am:
      * gst-libs/gst/app/Makefile.am:
      * gst-libs/gst/dshow/Makefile.am:
      * gst/aiffparse/Makefile.am:
      * gst/app/Makefile.am:
      * gst/audiobuffer/Makefile.am:
      * gst/bayer/Makefile.am:
      * gst/cdxaparse/Makefile.am:
      * gst/chart/Makefile.am:
      * gst/colorspace/Makefile.am:
      * gst/dccp/Makefile.am:
      * gst/deinterlace/Makefile.am:
      * gst/deinterlace2/Makefile.am:
      * gst/dvdspu/Makefile.am:
      * gst/festival/Makefile.am:
      * gst/filter/Makefile.am:
      * gst/flacparse/Makefile.am:
      * gst/flv/Makefile.am:
      * gst/games/Makefile.am:
      * gst/h264parse/Makefile.am:
      * gst/librfb/Makefile.am:
      * gst/mixmatrix/Makefile.am:
      * gst/modplug/Makefile.am:
      * gst/mpeg1sys/Makefile.am:
      * gst/mpeg4videoparse/Makefile.am:
      * gst/mpegdemux/Makefile.am:
      * gst/mpegtsmux/Makefile.am:
      * gst/mpegvideoparse/Makefile.am:
      * gst/mve/Makefile.am:
      * gst/nsf/Makefile.am:
      * gst/nuvdemux/Makefile.am:
      * gst/overlay/Makefile.am:
      * gst/passthrough/Makefile.am:
      * gst/pcapparse/Makefile.am:
      * gst/playondemand/Makefile.am:
      * gst/rawparse/Makefile.am:
      * gst/real/Makefile.am:
      * gst/rtjpeg/Makefile.am:
      * gst/rtpmanager/Makefile.am:
      * gst/scaletempo/Makefile.am:
      * gst/sdp/Makefile.am:
      * gst/selector/Makefile.am:
      * gst/smooth/Makefile.am:
      * gst/smoothwave/Makefile.am:
      * gst/speed/Makefile.am:
      * gst/speexresample/Makefile.am:
      * gst/stereo/Makefile.am:
      * gst/subenc/Makefile.am:
      * gst/tta/Makefile.am:
      * gst/vbidec/Makefile.am:
      * gst/videodrop/Makefile.am:
      * gst/videosignal/Makefile.am:
      * gst/virtualdub/Makefile.am:
      * gst/vmnc/Makefile.am:
      * gst/y4m/Makefile.am:
      * sys/acmenc/Makefile.am:
      * sys/cdrom/Makefile.am:
      * sys/dshowdecwrapper/Makefile.am:
      * sys/dshowsrcwrapper/Makefile.am:
      * sys/dvb/Makefile.am:
      * sys/dxr3/Makefile.am:
      * sys/fbdev/Makefile.am:
      * sys/oss4/Makefile.am:
      * sys/qcam/Makefile.am:
      * sys/qtwrapper/Makefile.am:
      * sys/vcd/Makefile.am:
      * sys/wininet/Makefile.am:
      * win32/common/config.h:
      Don't install static libs for plugins. Fixes #550851 for -bad.
      b8352968
    • Jan Schmidt's avatar
      docs/Makefile.am: Don't attempt to build plugin docs when they're disabled. · 4e5347c8
      Jan Schmidt authored
      Original commit message from CVS:
      * docs/Makefile.am:
      Don't attempt to build plugin docs when they're disabled.
      * gst/bayer/Makefile.am:
      Add libgstvideo to the link.
      * gst/rtpmanager/Makefile.am:
      Fix link order, and move LIBS things to _LIBS
      4e5347c8
    • Wim Taymans's avatar
      gst/rtpmanager/: Remove complicated async queue and replace with more simple... · cdd82f2a
      Wim Taymans authored
      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.
      cdd82f2a
    • Wim Taymans's avatar
      configure.ac: Disable rtpmanager for now because it depends on CVS -base. · 54b3dec1
      Wim Taymans authored
      Original commit message from CVS:
      * configure.ac:
      Disable rtpmanager for now because it depends on CVS -base.
      * gst/rtpmanager/Makefile.am:
      Added new files for session manager.
      * gst/rtpmanager/gstrtpjitterbuffer.h:
      * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
      (create_stream), (pt_map_requested), (new_ssrc_pad_found):
      Some cleanups.
      the session manager can now also request a pt-map.
      * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_base_init),
      (gst_rtp_session_class_init), (gst_rtp_session_init),
      (gst_rtp_session_finalize), (rtcp_thread), (start_rtcp_thread),
      (stop_rtcp_thread), (gst_rtp_session_change_state),
      (gst_rtp_session_process_rtp), (gst_rtp_session_send_rtp),
      (gst_rtp_session_send_rtcp), (gst_rtp_session_clock_rate),
      (gst_rtp_session_get_time), (gst_rtp_session_event_recv_rtp_sink),
      (gst_rtp_session_chain_recv_rtp),
      (gst_rtp_session_event_recv_rtcp_sink),
      (gst_rtp_session_chain_recv_rtcp),
      (gst_rtp_session_event_send_rtp_sink),
      (gst_rtp_session_chain_send_rtp), (create_send_rtcp_src),
      (gst_rtp_session_request_new_pad):
      * gst/rtpmanager/gstrtpsession.h:
      We can ask for pt-map now too when the session manager needs it.
      Hook up to the new session manager, implement the needed callbacks for
      pushing data, getting clock time and requesting clock-rates.
      Rename rtcp_src to send_rtcp_src to make it clear that this RTCP is to
      be send to clients.
      Add code to start and stop the thread that will schedule RTCP through
      the session manager.
      * gst/rtpmanager/rtpsession.c: (rtp_session_class_init),
      (rtp_session_init), (rtp_session_finalize),
      (rtp_session_set_property), (rtp_session_get_property),
      (on_new_ssrc), (on_ssrc_collision), (on_ssrc_validated),
      (on_bye_ssrc), (rtp_session_new), (rtp_session_set_callbacks),
      (rtp_session_set_bandwidth), (rtp_session_get_bandwidth),
      (rtp_session_set_rtcp_bandwidth), (rtp_session_get_rtcp_bandwidth),
      (source_push_rtp), (source_clock_rate), (check_collision),
      (obtain_source), (rtp_session_add_source),
      (rtp_session_get_num_sources),
      (rtp_session_get_num_active_sources),
      (rtp_session_get_source_by_ssrc),
      (rtp_session_get_source_by_cname), (rtp_session_create_source),
      (update_arrival_stats), (rtp_session_process_rtp),
      (rtp_session_process_sr), (rtp_session_process_rr),
      (rtp_session_process_sdes), (rtp_session_process_bye),
      (rtp_session_process_app), (rtp_session_process_rtcp),
      (rtp_session_send_rtp), (rtp_session_get_rtcp_interval),
      (rtp_session_produce_rtcp):
      * gst/rtpmanager/rtpsession.h:
      The advanced beginnings of the main session manager that handles the
      participant database of RTPSources, SSRC probation, SSRC collisions,
      parse RTCP to update source stats. etc..
      * gst/rtpmanager/rtpsource.c: (rtp_source_class_init),
      (rtp_source_init), (rtp_source_finalize), (rtp_source_new),
      (rtp_source_set_callbacks), (rtp_source_set_as_csrc),
      (rtp_source_set_rtp_from), (rtp_source_set_rtcp_from),
      (push_packet), (get_clock_rate), (calculate_jitter),
      (rtp_source_process_rtp), (rtp_source_process_bye),
      (rtp_source_send_rtp), (rtp_source_process_sr),
      (rtp_source_process_rb):
      * gst/rtpmanager/rtpsource.h:
      Object that encapsulates an SSRC and its state in the database.
      Calculates the jitter and transit times of data packets.
      * gst/rtpmanager/rtpstats.c: (rtp_stats_init_defaults),
      (rtp_stats_calculate_rtcp_interval), (rtp_stats_add_rtcp_jitter):
      * gst/rtpmanager/rtpstats.h:
      Various stats regarding the session and sources.
      Used to calculate the RTCP interval.
      54b3dec1
    • Wim Taymans's avatar
      gst/rtpmanager/: Added custom marshallers for signals. · 8c67b5d7
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/.cvsignore:
      * gst/rtpmanager/Makefile.am:
      * gst/rtpmanager/gstrtpbin-marshal.list:
      Added custom marshallers for signals.
      * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init):
      * gst/rtpmanager/gstrtpbin.h:
      Prepare for emiting pt map signals.
      * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init):
      * gst/rtpmanager/gstrtpssrcdemux.c:
      (gst_rtp_ssrc_demux_class_init):
      Fix signals.
      8c67b5d7
    • Wim Taymans's avatar
      gst/rtpmanager/: Added simple SSRC demuxer. · a9d14ed3
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/Makefile.am:
      * gst/rtpmanager/gstrtpmanager.c: (plugin_init):
      * gst/rtpmanager/gstrtpssrcdemux.c: (find_pad_for_ssrc),
      (create_pad_for_ssrc), (gst_rtp_ssrc_demux_base_init),
      (gst_rtp_ssrc_demux_class_init), (gst_rtp_ssrc_demux_init),
      (gst_rtp_ssrc_demux_finalize), (gst_rtp_ssrc_demux_sink_event),
      (gst_rtp_ssrc_demux_chain), (gst_rtp_ssrc_demux_src_event),
      (gst_rtp_ssrc_demux_change_state):
      * gst/rtpmanager/gstrtpssrcdemux.h:
      Added simple SSRC demuxer.
      a9d14ed3
    • Wim Taymans's avatar
      gst/rtpmanager/Makefile.am: Add .h file so it can be disted properly. · fdae491d
      Wim Taymans authored
      Original commit message from CVS:
      * gst/rtpmanager/Makefile.am:
      Add .h file so it can be disted properly.
      fdae491d
    • Wim Taymans's avatar
      Add RTP session management elements. Still in progress. · f0d1ab1c
      Wim Taymans authored
      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.
      f0d1ab1c