Skip to content

RtspMediaTrack absolute path (URI) for track #9183

@a-blekot

Description

@a-blekot
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();
    }
  }

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions