Add Accept header to DESCRIBE request

The Accept header is required by some servers, and we only support SDP.

Issue: google/ExoPlayer#10919
PiperOrigin-RevId: 645361576
This commit is contained in:
claincly 2024-06-21 05:44:56 -07:00 committed by Copybara-Service
parent 52bd9a2815
commit 89fbd0d27a
4 changed files with 12 additions and 2 deletions

View File

@ -548,6 +548,7 @@ package androidx.media3.common {
field public static final String APPLICATION_PGS = "application/pgs";
field @Deprecated public static final String APPLICATION_RAWCC = "application/x-rawcc";
field public static final String APPLICATION_RTSP = "application/x-rtsp";
field public static final String APPLICATION_SDP = "application/sdp";
field public static final String APPLICATION_SS = "application/vnd.ms-sstr+xml";
field public static final String APPLICATION_SUBRIP = "application/x-subrip";
field public static final String APPLICATION_TTML = "application/ttml+xml";

View File

@ -139,6 +139,7 @@ public final class MimeTypes {
public static final String APPLICATION_VOBSUB = BASE_TYPE_APPLICATION + "/vobsub";
public static final String APPLICATION_PGS = BASE_TYPE_APPLICATION + "/pgs";
@UnstableApi public static final String APPLICATION_SCTE35 = BASE_TYPE_APPLICATION + "/x-scte35";
public static final String APPLICATION_SDP = BASE_TYPE_APPLICATION + "/sdp";
@UnstableApi
public static final String APPLICATION_CAMERA_MOTION = BASE_TYPE_APPLICATION + "/x-camera-motion";

View File

@ -39,11 +39,11 @@ import static java.lang.annotation.ElementType.TYPE_USE;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.util.SparseArray;
import androidx.annotation.IntDef;
import androidx.annotation.Nullable;
import androidx.media3.common.C;
import androidx.media3.common.MimeTypes;
import androidx.media3.common.ParserException;
import androidx.media3.common.util.Log;
import androidx.media3.common.util.Util;
@ -384,7 +384,11 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
public void sendDescribeRequest(Uri uri, @Nullable String sessionId) {
sendRequest(
getRequestWithCommonHeaders(
METHOD_DESCRIBE, sessionId, /* additionalHeaders= */ ImmutableMap.of(), uri));
METHOD_DESCRIBE,
sessionId,
/* additionalHeaders= */ ImmutableMap.of(
RtspHeaders.ACCEPT, MimeTypes.APPLICATION_SDP),
uri));
}
public void sendSetupRequest(Uri trackUri, String transport, @Nullable String sessionId) {

View File

@ -15,10 +15,12 @@
*/
package androidx.media3.exoplayer.rtsp;
import static androidx.media3.common.util.Assertions.checkArgument;
import static com.google.common.truth.Truth.assertThat;
import android.net.Uri;
import androidx.annotation.Nullable;
import androidx.media3.common.MimeTypes;
import androidx.media3.common.util.Util;
import androidx.media3.exoplayer.rtsp.RtspClient.PlaybackEventListener;
import androidx.media3.exoplayer.rtsp.RtspClient.SessionInfoListener;
@ -167,6 +169,8 @@ public final class RtspClientTest {
@Override
public RtspResponse getDescribeResponse(Uri requestedUri, RtspHeaders headers) {
checkArgument(
headers.asMultiMap().containsEntry(RtspHeaders.ACCEPT, MimeTypes.APPLICATION_SDP));
return RtspTestUtils.newDescribeResponseWithSdpMessage(
SESSION_DESCRIPTION, rtpPacketStreamDumps, requestedUri);
}