Define the default RTSP character set.

#minor-release

PiperOrigin-RevId: 374433331
This commit is contained in:
claincly 2021-05-18 17:11:32 +01:00 committed by Oliver Woodman
parent 66c1aedeb3
commit e383b0031d
3 changed files with 10 additions and 9 deletions

View File

@ -40,6 +40,7 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import java.nio.charset.Charset;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
@ -47,6 +48,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/** Sends and receives RTSP messages. */ /** Sends and receives RTSP messages. */
/* package */ final class RtspMessageChannel implements Closeable { /* package */ final class RtspMessageChannel implements Closeable {
/** RTSP uses UTF-8 (RFC2326 Section 1.1). */
public static final Charset CHARSET = Charsets.UTF_8;
private static final String TAG = "RtspMessageChannel"; private static final String TAG = "RtspMessageChannel";
/** A listener for received RTSP messages and possible failures. */ /** A listener for received RTSP messages and possible failures. */
@ -383,8 +387,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
&& lineBytes[lineBytes.length - 2] == Ascii.CR && lineBytes[lineBytes.length - 2] == Ascii.CR
&& lineBytes[lineBytes.length - 1] == Ascii.LF); && lineBytes[lineBytes.length - 1] == Ascii.LF);
String line = String line =
new String( new String(lineBytes, /* offset= */ 0, /* length= */ lineBytes.length - 2, CHARSET);
lineBytes, /* offset= */ 0, /* length= */ lineBytes.length - 2, Charsets.UTF_8);
messageLines.add(line); messageLines.add(line);
switch (state) { switch (state) {

View File

@ -37,7 +37,6 @@ import androidx.annotation.Nullable;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ParserException; import com.google.android.exoplayer2.ParserException;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
import com.google.common.base.Charsets;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
@ -139,7 +138,7 @@ import java.util.regex.Pattern;
* removed. * removed.
*/ */
public static byte[] convertMessageToByteArray(List<String> message) { public static byte[] convertMessageToByteArray(List<String> message) {
return Joiner.on("\r\n").join(message).getBytes(Charsets.UTF_8); return Joiner.on("\r\n").join(message).getBytes(RtspMessageChannel.CHARSET);
} }
/** Removes the user info from the supplied {@link Uri}. */ /** Removes the user info from the supplied {@link Uri}. */

View File

@ -20,7 +20,6 @@ import static com.google.common.truth.Truth.assertThat;
import android.net.Uri; import android.net.Uri;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.common.base.Charsets;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@ -219,7 +218,7 @@ public final class RtspMessageUtilTest {
assertThat(messageLines).isEqualTo(expectedLines); assertThat(messageLines).isEqualTo(expectedLines);
assertThat(RtspMessageUtil.convertMessageToByteArray(messageLines)) assertThat(RtspMessageUtil.convertMessageToByteArray(messageLines))
.isEqualTo(expectedRtspMessage.getBytes(Charsets.UTF_8)); .isEqualTo(expectedRtspMessage.getBytes(RtspMessageChannel.CHARSET));
} }
@Test @Test
@ -252,7 +251,7 @@ public final class RtspMessageUtilTest {
+ "\r\n"; + "\r\n";
assertThat(messageLines).isEqualTo(expectedLines); assertThat(messageLines).isEqualTo(expectedLines);
assertThat(RtspMessageUtil.convertMessageToByteArray(messageLines)) assertThat(RtspMessageUtil.convertMessageToByteArray(messageLines))
.isEqualTo(expectedRtspMessage.getBytes(Charsets.UTF_8)); .isEqualTo(expectedRtspMessage.getBytes(RtspMessageChannel.CHARSET));
} }
@Test @Test
@ -317,7 +316,7 @@ public final class RtspMessageUtilTest {
assertThat(messageLines).isEqualTo(expectedLines); assertThat(messageLines).isEqualTo(expectedLines);
assertThat(RtspMessageUtil.convertMessageToByteArray(messageLines)) assertThat(RtspMessageUtil.convertMessageToByteArray(messageLines))
.isEqualTo(expectedRtspMessage.getBytes(Charsets.UTF_8)); .isEqualTo(expectedRtspMessage.getBytes(RtspMessageChannel.CHARSET));
} }
@Test @Test
@ -334,7 +333,7 @@ public final class RtspMessageUtilTest {
assertThat(RtspMessageUtil.serializeResponse(response)).isEqualTo(expectedLines); assertThat(RtspMessageUtil.serializeResponse(response)).isEqualTo(expectedLines);
assertThat(RtspMessageUtil.convertMessageToByteArray(messageLines)) assertThat(RtspMessageUtil.convertMessageToByteArray(messageLines))
.isEqualTo(expectedRtspMessage.getBytes(Charsets.UTF_8)); .isEqualTo(expectedRtspMessage.getBytes(RtspMessageChannel.CHARSET));
} }
@Test @Test