Skip to content

Commit dfef2d1

Browse files
committed
Some minor cleanup in RTPMpeg4Reader
1 parent 743437e commit dfef2d1

2 files changed

Lines changed: 21 additions & 24 deletions

File tree

libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaTrack.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
// Format specific parameter names.
4646
private static final String PARAMETER_PROFILE_LEVEL_ID = "profile-level-id";
4747
private static final String PARAMETER_SPROP_PARAMS = "sprop-parameter-sets";
48-
private static final String PARAMETER_CONFIG = "config";
48+
private static final String PARAMETER_MP4V_CONFIG = "config";
4949

5050
/** Prefix for the RFC6381 codecs string for AAC formats. */
5151
private static final String AAC_CODECS_PREFIX = "mp4a.40.";
@@ -171,7 +171,7 @@ private static void processAacFmtpAttribute(
171171

172172
private static void processMPEG4FmtpAttribute(
173173
Format.Builder formatBuilder, ImmutableMap<String, String> fmtpAttributes) {
174-
@Nullable String configInput = fmtpAttributes.get(PARAMETER_CONFIG);
174+
@Nullable String configInput = fmtpAttributes.get(PARAMETER_MP4V_CONFIG);
175175
if (configInput != null) {
176176
byte[] csd = Util.getBytesFromHexString(configInput);
177177
ImmutableList<byte[]> initializationData = ImmutableList.of(csd);

libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpMPEG4Reader.java

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
3131

3232
/**
33-
* Parses an H265 byte stream carried on RTP packets, and extracts H265 Access Units. Refer to
33+
* Parses an MPEG4 byte stream carried on RTP packets, and extracts MPEG4 Access Units. Refer to
3434
* RFC6416 for more details.
3535
*/
3636
/* package */ final class RtpMPEG4Reader implements RtpPayloadReader {
@@ -44,16 +44,11 @@
4444
private static final int I_VOP = 0;
4545

4646
private final RtpPayloadFormat payloadFormat;
47-
4847
private @MonotonicNonNull TrackOutput trackOutput;
4948
@C.BufferFlags private int bufferFlags;
50-
5149
private long firstReceivedTimestamp;
52-
5350
private int previousSequenceNumber;
54-
5551
private long startTimeOffsetUs;
56-
5752
private int sampleLength;
5853

5954
/** Creates an instance. */
@@ -64,15 +59,6 @@ public RtpMPEG4Reader(RtpPayloadFormat payloadFormat) {
6459
sampleLength = 0;
6560
}
6661

67-
private static long toSampleUs(
68-
long startTimeOffsetUs, long rtpTimestamp, long firstReceivedRtpTimestamp) {
69-
return startTimeOffsetUs
70-
+ Util.scaleLargeTimestamp(
71-
(rtpTimestamp - firstReceivedRtpTimestamp),
72-
/* multiplier= */ C.MICROS_PER_SECOND,
73-
/* divisor= */ MEDIA_CLOCK_FREQUENCY);
74-
}
75-
7662
@Override
7763
public void createTracks(ExtractorOutput extractorOutput, int trackId) {
7864
trackOutput = extractorOutput.track(trackId, C.TRACK_TYPE_VIDEO);
@@ -113,6 +99,15 @@ public void consume(ParsableByteArray data, long timestamp, int sequenceNumber,
11399
previousSequenceNumber = sequenceNumber;
114100
}
115101

102+
@Override
103+
public void seek(long nextRtpTimestamp, long timeUs) {
104+
firstReceivedTimestamp = nextRtpTimestamp;
105+
startTimeOffsetUs = timeUs;
106+
sampleLength = 0;
107+
}
108+
109+
// Internal methods.
110+
116111
/**
117112
* Parses VOP Coding type
118113
*
@@ -130,15 +125,17 @@ private void parseVopType(ParsableByteArray data) {
130125
}
131126
}
132127

128+
private static long toSampleUs(
129+
long startTimeOffsetUs, long rtpTimestamp, long firstReceivedRtpTimestamp) {
130+
return startTimeOffsetUs
131+
+ Util.scaleLargeTimestamp(
132+
(rtpTimestamp - firstReceivedRtpTimestamp),
133+
/* multiplier= */ C.MICROS_PER_SECOND,
134+
/* divisor= */ MEDIA_CLOCK_FREQUENCY);
135+
}
136+
133137
@C.BufferFlags
134138
private static int getBufferFlagsFromVopType(int vopType) {
135139
return vopType == I_VOP ? C.BUFFER_FLAG_KEY_FRAME : 0;
136140
}
137-
138-
@Override
139-
public void seek(long nextRtpTimestamp, long timeUs) {
140-
firstReceivedTimestamp = nextRtpTimestamp;
141-
startTimeOffsetUs = timeUs;
142-
sampleLength = 0;
143-
}
144141
}

0 commit comments

Comments
 (0)