The M bit is part of the common RTP header, but handling is entirely
dependent on the payload format, so we have to pass it somehow.
The pktinfo structure will probably need to be extended to also convey
data from extension headers, e.g. picture orientation or (AV-1) decoding
dependency data.
VLC does not handle negative timestamps so far. So the initial NTP
reference timestamp should be positive enough that the extrapolated
PTS will not end up negative when the RTP packet timestamp is lower
than the reference RTP timestamp. In that case the PTS is lower than
the NTP reference.
While 2^62 was a very safe value in that respect, it lead to integer
overflows in the clock and in time base conversion code. To avoid this,
we pick a default NTP reference value equal to the closest power of two
of the NTP time of this changeset: 2^52 is in 2042 CE, 2^51 in 1971 CE.
This creates an ES only for the packet type (and underlying payload
format) currently used by an RTP source. Consequently, if the session
has more than one packet type, there are no more ghost ES that disrupt
track selection.
Fixes#26283.
max_seq is the *next* expected sequence number, not the last seen
sequence number. Consequently, a perfectly ordered packet will yield a
delta_seq difference of 0. It must be compared against the maximum
dropout, not the minimum negated misorder.
This fixes a regression from a8613e9b92.
This is specified in RFC 4571. However there are no standard ways to
negotiate it without COMEDIA (RFC 4572). Since COMEDIA implies
SDP Offer/Answer, it cannot be used with VLC so far.
Given that there is no and never was a way to send such stream with the
VLC streaming output, it is pretty safe to assume that this was never
used. To make matters worse, the receival code never worked on Windows.
Remove this at least for the time being.
Note: This was meant for transfering RTP/RTCP over dedicated TCP
streams. This was *not* meant to do "interleaved" TCP whereby RTP is
sent over the same TCP stream as RTSP controls.
Re-license almost all the playback modules to LGPLv2.1+ with
authorization from their respective contributors (230+)
This includes:
- access, codec, packetizers, demux
- audio filters, audio mixers, audio output
- video filters, video chroma, video output
- text renderers
- XML parser
- ARM NEON and SSE2 optimisations (mostly for chromas and filters)
Some modules are not concerned:
- BDA and DShow access modules because Manol Manolov is AWOL
- Real RTSP, because it is derived from Xine
- x264 and t140 because they are encoders only
- DLL Loader, because it is derived from MPlayer
- DTS packetizer, because Jon Lech Johansen is AWOL
- Shine and WMAfixed, because they are derived from Rockbox
- Real demuxer, as it is derived from MPlayer and Wang Bo is AWOL
- MPC demuxer, as Yavor Doganov is AWOL
- Tivo demuxer, because it is derived from an MPlayer fork
- Playlist demuxer, (WPL and ZPL parts missing), because suheaven is AWOL
- iOS audio output and video display, because author refuses the license change
- Equalizer and compressor, because Ronald Wright is AWOL
- Mono, Headphone and Dolby, because author refuses the license change
- hqdn3d and yadif, because they are from MPlayer/libavfilter
- remoteosd, because it derives from RealVNC code
- MMX optimisations, because Ollie Lho, from SiS, is AWOL
- Rotate, because it depends on GPL motion
Nota Bene:
- Some modules depend on GPL-only libraries, a LGPL module does not mean
that the resulting binary module will be LGPL.
Libraries affected would include liba52, libdvdcss, libdvdnav, libdvdread,
faad2, libdca, libmad, libmpeg2, libpostproc, SRC, sid, zvbi and probably others.
Jitter computation is, by design, relative to the time of arrival of
packets. Normally, it should be the estimated time of arrival (ETA) of
the missing packet in the sequence, plus a tolerance value computed
from the delay variance (jitter). Unfortunately, we do not know that
ETA since we do not know the RTP timestamp of missing packets.