Commit 4c8011a1 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

RTP: when sending to RTP an odd port we need to specify a=rtcp

Otherwise the receiver would -in principle- try to receive RTP on the
next (plus one) even port, whereas the m= line port would be used for
RTCP. We could also pass a=rtcp for the normal even/RTP & odd/RTCP
ports setup, but that can only confuse receivers with no gain.

Note that receivers may not parse the a=rtcp parameter in any case. In
fact, VLC does not parse the a=rtcp field to this day. In any case,
sending RTP to an *even* port is the only safely interoperable option.
(cherry picked from commit ca15fe09)
parent c1474137
......@@ -786,6 +786,9 @@ char *SDPGenerate( const sout_stream_t *p_stream, const char *rtsp_url )
id->psz_enc, id->i_clock_rate, id->i_channels,
id->psz_fmtp);
if( !p_sys->rtcp_mux && (id->i_port & 1) ) /* cf RFC4566 §5.14 */
sdp_AddAttribute ( &psz_sdp, "rtcp", "%u", id->i_port + 1 );
if( rtsp_url != NULL )
{
assert( strlen( rtsp_url ) > 0 );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment