Supports RTCP XR.

fix-message-formatting 5256
Lyubomir Marinov 11 years ago
parent 61d0d5ef8f
commit bcc8960261

Binary file not shown.

@ -21,6 +21,7 @@
import org.jitsi.service.neomedia.*;
import org.jitsi.service.neomedia.device.*;
import org.jitsi.service.neomedia.format.*;
import org.jitsi.service.neomedia.rtp.*;
import ch.imvs.sdes4j.srtp.*;
@ -244,10 +245,31 @@ private Vector<MediaDescription> createMediaDescriptions()
try
{
// If we have a video preset, let's send info about the
// desired frame rate.
if (mediaType.equals(MediaType.VIDEO)
&& (receiveQualityPreset != null))
switch (mediaType)
{
case AUDIO:
/*
* Let the remote peer know that we support RTCP XR
* in general and VoIP Metrics Report Block in
* particular.
*/
String rtcpxr
= md.getAttribute(
RTCPExtendedReport.SDP_ATTRIBUTE);
if (rtcpxr == null)
{
md.setAttribute(
RTCPExtendedReport.SDP_ATTRIBUTE,
RTCPExtendedReport
.VoIPMetricsReportBlock
.SDP_PARAMETER);
}
break;
case VIDEO:
// If we have a video preset, let's send info about
// the desired frame rate.
if (receiveQualityPreset != null)
{
// doing only int frame rate for now
int frameRate
@ -260,6 +282,10 @@ private Vector<MediaDescription> createMediaDescriptions()
String.valueOf(frameRate));
}
}
break;
default:
break;
}
}
catch(SdpException e)
{
@ -708,6 +734,44 @@ else if(mediaType.equals(MediaType.VIDEO)
md,
mediaDescription);
// RTCP XR
String rtcpxr;
try
{
/*
* We support the receiving of RTCP XR so we will answer the
* offer of the remote peer.
*/
rtcpxr
= mediaDescription.getAttribute(
RTCPExtendedReport.SDP_ATTRIBUTE);
if (rtcpxr != null)
{
/*
* However, we support the receiving and sending of VoIP
* Metrics Report Block only.
*/
if (rtcpxr.contains(
RTCPExtendedReport.VoIPMetricsReportBlock
.SDP_PARAMETER))
{
rtcpxr
= RTCPExtendedReport.VoIPMetricsReportBlock
.SDP_PARAMETER;
}
else
{
rtcpxr = "";
}
md.setAttribute(RTCPExtendedReport.SDP_ATTRIBUTE, rtcpxr);
}
}
catch (SdpException se)
{
rtcpxr = null;
}
// create the corresponding stream...
MediaFormat fmt
= findMediaFormat(
@ -733,9 +797,20 @@ else if(mediaType.equals(MediaType.VIDEO)
}
}
initStream(connector, dev, fmt, target, direction, rtpExtensions,
MediaStream stream
= initStream(
connector,
dev,
fmt,
target,
direction,
rtpExtensions,
masterStream);
// RTCP XR
if (stream != null)
stream.setProperty(RTCPExtendedReport.SDP_ATTRIBUTE, rtcpxr);
// create the answer description
answerDescriptions.add(md);
@ -1471,7 +1546,8 @@ private void doNonSynchronisedProcessAnswer(SessionDescription answer)
}
// create the corresponding stream...
initStream(
MediaStream stream
= initStream(
connector,
dev,
supportedFormats.get(0),
@ -1479,6 +1555,24 @@ private void doNonSynchronisedProcessAnswer(SessionDescription answer)
direction,
rtpExtensions,
masterStream);
// RTCP XR
if (stream != null)
{
String rtcpxr;
try
{
rtcpxr
= mediaDescription.getAttribute(
RTCPExtendedReport.SDP_ATTRIBUTE);
}
catch (SdpException se)
{
rtcpxr = null;
}
stream.setProperty(RTCPExtendedReport.SDP_ATTRIBUTE, rtcpxr);
}
}
}

Loading…
Cancel
Save