gstreamer/gst
Marc Leeman 3ef737605a rtpmanagerbad: add RTP streaming elements
This is a re-implementation of the RTP elements that are submitted in
2013 to handle RTP streams. The elements handle a correct connection
for the bi-directional use of the RTCP sockets.

https://bugzilla.gnome.org/show_bug.cgi?id=703111

The rtpsink and rtpsrc elements add an URI interface so that streams
can be decoded with decodebin using the rtp:// interface.

The code can be used as follows

```
gst-launch-1.0 videotestsrc ! x264enc ! rtph264pay config-interval=3 ! rtpsink uri=rtp://239.1.1.1:1234

gst-launch-1.0 videotestsrc ! x264enc ! rtph264pay config-interval=1 ! rtpsink uri=rtp://239.1.2.3:5000
gst-launch-1.0 rtpsrc uri=rtp://239.1.2.3:5000?encoding-name=H264 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink

gst-launch-1.0 videotestsrc ! avenc_mpeg4 ! rtpmp4vpay config-interval=1 ! rtpsink uri=rtp://239.1.2.3:5000
gst-launch-1.0 rtpsrc uri=rtp://239.1.2.3:5000?encoding-name=MP4V-ES ! rtpmp4vdepay ! avdec_mpeg4 ! videoconvert ! xvimagesink
```

rtpmanagerbad: add pkg-config
rtpmanagerbad: Rtp should be uppercase
rtpmanagerbad: add G_OS_WIN32 for shielding unix headers
rtpmanagerbad: remove Since from documentation
rtpmanagerbad: rename lib name from nrtp to rtpmanagerbad
rtpmanagerbad: sync meson.build with other modules
rtpmanagerbad: add Makefile.am
rtpmanagerbad: use GstElement to count pads
rtpmanagerbad: use gst_bin_set_suppressed_flags
rtpmanagerbad: check element creation
rtpmanagerbad: post message when trying to access missing rtpbin
rtpmanagerbad: return FALSE with g_return tests
rtpmanagerbad: use gsocket multicast check
rtpmanagerbad: use gst_caps_new_empty_simple iso gst_caps_from_string
rtpmanagerbad: sync with gstrtppayloads.h
rtpmanagerbad: correct media type X-GST
rtpmanagerbad: test if a compatible pad was found
rtpmanagerbad: remove evil copy of GstRTPPayloadInfo
rtpmanagerbad: add gio_dep to meson
rtpmanagerbad: revert to old glib boilerplate

GStreamer 1.16 does not yet support the newer GLib templates, so revert.

rtpmanagerbad: return GST_STATE_CHANGE_NO_PREROLL for live sources

for live sources, NO_PREROLL should be returned for PLAYING->PAUSED and
READY->PAUSED transitions.

rtpmanagerbad: use GstElement pad counting
rtpmanagerbad: just use template name to request pad
rtpmanagerbad: remove commented code
rtpmanagerbad: use funnel to send multiple streams on one socket
rtpmanagerbad: avoid beaches

beaches should only be used during the summer, so rewrite the code to
return explicitly and avoid beaches during the winter.

rtpmanagerbad: add copyright to test code
rtpmanagerbad: g_free is NULL safe
rtpmanagerbad: do not trace rtpbin
rtpmanagerbad: return NULL explitly
rtpmanagerbad: warn when data port is not even

According to RFC 3550, RTP data should be sent on even ports, while RTCP
is sent on the following odd port.

rtpmanagerbad: document port allocation in rtpsink/src
rtpmanagerbad: improve uri description
rtpmanagerbad: add comment re-use socket
rtpmanagerbad: rename gst_object_set_properties_from_uri_query
rtpmanagerbad: loan prop/val setter from rist
rtpmanagerbad: rtpsrc: fix unitialised pointer
rtpmanagerbad: fix silly typo
rtpmanagerbad: test for empty key/value
rtpmanagerbad: rtpsrc: deprecate ssrc collision to INFO
rtpmanagerbad: sync debug with rist
rtpmanagerbad: small strings allocated on stack
rtpmanagerbad: correct rename
rtpmanagerbad: add locking on prop setters/getters

Locking is added because the URI allows to access the properties too.

rtpmanagerbad: allow for RTCP through NAT
rtpmanagerbad: move gio to header file
rtpmanagerbad: free small strings too
rtpmanagerbad: ttl_mc for ttl on dynudpsink
rtpmanagerbad: add comments on the URI registered
rtpmanagerbad: correct macro after file rename
rtpmanagerbad: code style
rtpmanagerbad: handle wrong URIs in setter
rtpmanagerbad: nit URI notation correction

In an URI, the first key/value pair should not have an ampersand, the
parser did not die though.
2019-06-03 20:08:23 +00:00
..
accurip docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
adpcmdec docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
adpcmenc docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
aiff docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
asfmux docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
audiobuffersplit docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
audiofxbad docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
audiolatency meson: add more plugins to plugins list 2019-05-30 20:41:57 +02:00
audiomixmatrix docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
audiovisualizers docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
autoconvert doc: fix element section documentations 2019-05-25 16:58:13 +02:00
bayer docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
camerabin2 doc: fix element section documentations 2019-05-25 16:58:13 +02:00
coloreffects docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
debugutils docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
dvbsuboverlay docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
dvdspu docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
faceoverlay doc: remove xml from comments 2019-05-29 22:58:08 +02:00
festival doc: remove xml from comments 2019-05-29 22:58:08 +02:00
fieldanalysis docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
freeverb docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
frei0r docs: Make sure frei0r plugins properties default are stable 2019-05-14 10:47:19 -04:00
gaudieffects docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
gdp docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
geometrictransform docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
id3tag docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
inter docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
interlace docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
ivfparse ivfparse: Check the data size against IVF_FRAME_HEADER_SIZE 2019-05-22 12:37:29 +08:00
ivtc docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
jp2kdecimator docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
jpegformat docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
librfb docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
midi docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
mpegdemux docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
mpegpsmux docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
mpegtsdemux docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
mpegtsmux basetsmux: don't reset pad on flush_stop 2019-05-30 17:20:49 +02:00
mxf docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
netsim docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
onvif docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
pcapparse docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
pnm docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
proxy proxy: Forward queries/events sent directly to the element correctly 2019-05-22 07:48:33 +00:00
rawparse docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
removesilence docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
rist rist: Add combined bonding-method support 2019-05-21 18:49:17 +00:00
rtp rtpmanagerbad: add RTP streaming elements 2019-06-03 20:08:23 +00:00
sdp docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
segmentclip docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
siren docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
smooth docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
speed docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
subenc docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
timecode avwait: Don't print warnings for every buffer passed 2019-05-31 18:47:03 +03:00
videofilters docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
videoframe_audiolevel docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
videoparsers docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
videosignal doc: fix element section documentations 2019-05-25 16:58:13 +02:00
vmnc docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
y4m docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
yadif docs: Build documentation with hotdoc 2019-05-13 17:00:00 -04:00
Makefile.am build: build plugins and examples in parallel where possible, if make -jN is used 2010-03-30 01:17:15 +01:00
meson.build rtpmanagerbad: add RTP streaming elements 2019-06-03 20:08:23 +00:00