-
Notifications
You must be signed in to change notification settings - Fork 6k
Closed
Labels
Description
public RtspMediaTrack(MediaDescription mediaDescription, Uri sessionUri) {
checkArgument(mediaDescription.attributes.containsKey(ATTR_CONTROL));
payloadFormat = generatePayloadFormat(mediaDescription);
uri =
sessionUri
.buildUpon()
.appendEncodedPath(castNonNull(mediaDescription.attributes.get(ATTR_CONTROL)))
.build();
}
If mediaDescription.attributes.get(ATTR_CONTROL) - returns absolute path (started with rtsp://) we have invalid path.
So, I have made little checking to handle this case:
public RtspMediaTrack(MediaDescription mediaDescription, Uri sessionUri) {
checkArgument(mediaDescription.attributes.containsKey(ATTR_CONTROL));
payloadFormat = generatePayloadFormat(mediaDescription);
uri = absoluteUri(sessionUri, castNonNull(mediaDescription.attributes.get(ATTR_CONTROL)));
}
private static Uri absoluteUri(Uri sessionUri, String trackId) {
if (trackId.startsWith("rtsp://") || trackId.startsWith("rtsps://")) {
return Uri.parse(trackId);
} else {
return sessionUri
.buildUpon()
.appendEncodedPath(trackId)
.build();
}
}