CrackMe.apk
Download file
package com.google.android.exoplayer2.source.rtsp;
import android.net.Uri;
import com.google.android.exoplayer2.source.rtsp.RtspMessageChannel;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DataSpec;
import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.upstream.UdpDataSource;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Util;
import com.google.common.primitives.Ints;
import java.io.IOException;
import java.util.Map;
final class UdpDataSourceRtpDataChannel implements RtpDataChannel {
private static final String DEFAULT_UDP_TRANSPORT_FORMAT = "RTP/AVP;unicast;client_port=%d-%d";
private final UdpDataSource dataSource;
private UdpDataSourceRtpDataChannel rtcpChannel;
public RtspMessageChannel.InterleavedBinaryDataListener getInterleavedBinaryDataListener() {
return null;
}
public /* synthetic */ Map getResponseHeaders() {
return DataSource.CC.$default$getResponseHeaders(this);
}
public UdpDataSourceRtpDataChannel(long j) {
this.dataSource = new UdpDataSource(2000, Ints.checkedCast(j));
}
public String getTransport() {
int localPort = getLocalPort();
Assertions.checkState(localPort != -1);
return Util.formatInvariant(DEFAULT_UDP_TRANSPORT_FORMAT, Integer.valueOf(localPort), Integer.valueOf(localPort + 1));
}
public int getLocalPort() {
int localPort = this.dataSource.getLocalPort();
if (localPort == -1) {
return -1;
}
return localPort;
}
public void addTransferListener(TransferListener transferListener) {
this.dataSource.addTransferListener(transferListener);
}
public long open(DataSpec dataSpec) throws IOException {
return this.dataSource.open(dataSpec);
}
public Uri getUri() {
return this.dataSource.getUri();
}
public void close() {
this.dataSource.close();
UdpDataSourceRtpDataChannel udpDataSourceRtpDataChannel = this.rtcpChannel;
if (udpDataSourceRtpDataChannel != null) {
udpDataSourceRtpDataChannel.close();
}
}
public int read(byte[] bArr, int i, int i2) throws IOException {
try {
return this.dataSource.read(bArr, i, i2);
} catch (UdpDataSource.UdpDataSourceException e) {
if (e.reason == 2002) {
return -1;
}
throw e;
}
}
public void setRtcpChannel(UdpDataSourceRtpDataChannel udpDataSourceRtpDataChannel) {
Assertions.checkArgument(this != udpDataSourceRtpDataChannel);
this.rtcpChannel = udpDataSourceRtpDataChannel;
}
}
Download file