Commit graph

28 commits

Author SHA1 Message Date
Alex Henrie
a1fbb9e186 Allow any RTP/AVP payload type to be dynamically assigned
The Bosch FLEXIDOME 4000i camera sets the RTP payload type to 35 for
H264, which causes MistServer to output "FAIL: Payload type 35 not
supported!"

The camera probably uses 35 for H264 because the ATSC standard requires
it. A/153 Part 7 states: [1]

> In addition, for RTP packets that carry AVC video elementary stream,
> the payload_type field in the RTP header shall have value 35.

The camera also sends "a=rtpmap:35 H264/90000" to explicitly map the
value 35 to H264. This is perfectly valid; although payload types 96
through 127 are recommended for dynamic use, the RTP protocol allows any
AVP payload type to be dynamically reassigned. The relevant section of
RFC 3551 states: [2]

> This profile reserves payload type numbers in the range 96-127
> exclusively for dynamic assignment.  Applications SHOULD first use
> values in this range for dynamic payload types.  Those applications
> which need to define more than 32 dynamic payload types MAY bind
> codes below 96, in which case it is RECOMMENDED that unassigned
> payload type numbers be used first.  However, the statically assigned
> payload types are default bindings and MAY be dynamically bound to
> new encodings if needed.  Redefining payload types below 96 may cause
> incorrect operation if an attempt is made to join a session without
> obtaining session description information that defines the dynamic
> payload types.

If the payload type is not recognized, assume that an rtpmap line will
follow that defines it. If in the end there is no rtpmap line, error out
in the same way whether the payload type is between 96 and 127 inclusive
or whether it is outside of that range.

[1] https://prdatsc.wpenginepowered.com/wp-content/uploads/2021/04/A153-Part-7-2012.pdf#page=14
[2] https://datatracker.ietf.org/doc/html/rfc3551#page-6
2024-05-16 16:39:13 +02:00
Marco van Dijk
e0eb624e53 Change "always on" behaviour to simulate always having viewers rather than forcibly keeping inputs active 2023-07-06 13:06:18 +02:00
Thulinma
4181b52857 Silence more compile warnings, fix compilation on MacOS 2022-10-27 14:50:38 +02:00
Thulinma
1c6a483e49 Fix 32-bit compilation 2022-06-24 23:50:02 +02:00
Marco
3e73508a6a Added SDP input 2022-02-21 15:51:09 +01:00
Marco
dd2382e858 Added SDP output 2022-02-21 15:30:16 +01:00
Thulinma
6733bf2a20 Fixed all ARM-related issues/warnings/etc 2021-11-04 18:49:27 +01:00
Thulinma
f4051b5916 Fixed RTSP input in newMeta build 2021-10-19 22:29:41 +02:00
Thulinma
26de8c0389 VP8 fixed 2021-10-19 22:29:40 +02:00
Thulinma
0af992d405 Various fixes, among which:
- Fixed segfault when attempting to initialseek on disconnected streams
- Fix 100% CPU bug in controller's stats code
- WebRTC UDP bind socket improvements
- Several segfault fixes
- Increased packet reordering buffer size from 30 to 150 packets
- Tweaks to default output/buffer behaviour for incoming pushes
- Added message for load balancer checks
- Fixed HLS content type
- Stats fixes
- Exit reason fixes
- Fixed socket IP address detection
- Fixed non-string arguments for stream settings
- Added caching for getConnectedBinHost()
- Added WebRTC playback rate control
- Added/completed VP8/VP9 support to WebRTC/RTSP
- Added live seek option to WebRTC
- Fixed seek to exactly newest timestamp
- Fixed HLS input

# Conflicts:
#	lib/defines.h
#	src/input/input.cpp
2021-10-19 22:29:40 +02:00
Phencys
2b99f2f5ea New Meta commit 2021-10-19 22:29:40 +02:00
DDVTech
fccf66fba2 Restyle 2021-10-19 22:29:40 +02:00
Thulinma
eb8694052d Merge branch 'development' into LTS_development
# Conflicts:
#	lib/http_parser.cpp
2020-03-03 17:04:10 +01:00
Thulinma
01d43796ad 32-bit fixes 2019-01-26 00:51:30 +01:00
Thulinma
7a03d3e96c RTP rewrite using generic RTP::toDTSC class 2018-12-06 11:07:07 +01:00
Thulinma
4d9f11fd8b Fix RTSP input 2018-09-08 16:16:00 +02:00
Erik Zandvliet
493e5bebfa AVCCBox.multiplyPPS(), allow for multiple SPS/PPS in AVCC Box 2018-08-30 18:59:03 +02:00
Thulinma
aae6101c3d Fixed RTSP input, added support for non-standard "PCM" RTP profile, improving IP cam compatibility. 2018-07-26 11:21:35 +02:00
Thulinma
e3886c8acf RTP rework: added sorter class, updated RTSP input/output/analyser to be compatible with it 2018-07-04 12:04:26 +02:00
Thulinma
72bae90ead Fixed compatibility with broken RTSP implementation of Larix 2018-05-31 17:17:43 +02:00
Thulinma
0c6cd9bfc6 Added crappy "HiIpcam" IP cam support 2018-01-16 11:18:59 +01:00
Thulinma
4cf90aa8d9 Fixed RTSP input VLC compatibility 2018-01-04 12:36:30 +01:00
Thulinma
66d64317c9 Fixed ffmpeg compatibility with urlencoding library in SDP lib 2017-11-04 13:48:56 +01:00
Thulinma
f8766b0567 Added Mu-law support to RTSP and WAV 2017-10-24 14:10:16 +02:00
Thulinma
f5c1e6b573 RTSP pull input
Includes TCP, UDP and authentication support
2017-10-24 14:10:12 +02:00
Thulinma
df6735e92f Implemented RTSP Receiver Report 2017-09-24 18:33:52 +02:00
Ramoe
d2d80c7360 Fixed RTSP/SDP control track selection 2017-08-03 15:09:08 +02:00
Thulinma
54a8803f29 RTP cleanup + RTSP analyser + RTP MPEG2/MP2/HEVC support 2017-07-28 18:40:37 +02:00