Commit ef57a061 by Manisha Jajoo

Pass local copy of input to RtpH263ReaderTest's consume method

This change is done to keep the frame data unchanged.
RtpH263Reader changes the header data in input, so to send the same
RTP packet across multiple tests, each test copies the frame data
into a new packet and sends that to the reader.
parent c7fbf343
...@@ -28,6 +28,7 @@ import androidx.media3.test.utils.FakeTrackOutput; ...@@ -28,6 +28,7 @@ import androidx.media3.test.utils.FakeTrackOutput;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.primitives.Bytes; import com.google.common.primitives.Bytes;
import java.util.Arrays;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
...@@ -118,10 +119,10 @@ public final class RtpH263ReaderTest { ...@@ -118,10 +119,10 @@ public final class RtpH263ReaderTest {
h263Reader.createTracks(extractorOutput, /* trackId= */ 0); h263Reader.createTracks(extractorOutput, /* trackId= */ 0);
h263Reader.onReceivingFirstPacket( h263Reader.onReceivingFirstPacket(
FRAME_1_FRAGMENT_1.timestamp, FRAME_1_FRAGMENT_1.sequenceNumber); FRAME_1_FRAGMENT_1.timestamp, FRAME_1_FRAGMENT_1.sequenceNumber);
consume(h263Reader, FRAME_1_FRAGMENT_1); consume(h263Reader, copyPacket(FRAME_1_FRAGMENT_1));
consume(h263Reader, FRAME_1_FRAGMENT_2); consume(h263Reader, FRAME_1_FRAGMENT_2);
consume(h263Reader, FRAME_2_FRAGMENT_1); consume(h263Reader, copyPacket(FRAME_2_FRAGMENT_1));
consume(h263Reader, FRAME_2_FRAGMENT_2); consume(h263Reader, copyPacket(FRAME_2_FRAGMENT_2));
trackOutput = extractorOutput.trackOutputs.get(0); trackOutput = extractorOutput.trackOutputs.get(0);
assertThat(trackOutput.getSampleCount()).isEqualTo(2); assertThat(trackOutput.getSampleCount()).isEqualTo(2);
...@@ -137,9 +138,9 @@ public final class RtpH263ReaderTest { ...@@ -137,9 +138,9 @@ public final class RtpH263ReaderTest {
h263Reader.createTracks(extractorOutput, /* trackId= */ 0); h263Reader.createTracks(extractorOutput, /* trackId= */ 0);
h263Reader.onReceivingFirstPacket( h263Reader.onReceivingFirstPacket(
FRAME_1_FRAGMENT_1.timestamp, FRAME_1_FRAGMENT_1.sequenceNumber); FRAME_1_FRAGMENT_1.timestamp, FRAME_1_FRAGMENT_1.sequenceNumber);
consume(h263Reader, FRAME_1_FRAGMENT_2); consume(h263Reader, copyPacket(FRAME_1_FRAGMENT_2));
consume(h263Reader, FRAME_2_FRAGMENT_1); consume(h263Reader, copyPacket(FRAME_2_FRAGMENT_1));
consume(h263Reader, FRAME_2_FRAGMENT_2); consume(h263Reader, copyPacket(FRAME_2_FRAGMENT_2));
trackOutput = extractorOutput.trackOutputs.get(0); trackOutput = extractorOutput.trackOutputs.get(0);
assertThat(trackOutput.getSampleCount()).isEqualTo(1); assertThat(trackOutput.getSampleCount()).isEqualTo(1);
...@@ -153,9 +154,9 @@ public final class RtpH263ReaderTest { ...@@ -153,9 +154,9 @@ public final class RtpH263ReaderTest {
h263Reader.createTracks(extractorOutput, /* trackId= */ 0); h263Reader.createTracks(extractorOutput, /* trackId= */ 0);
h263Reader.onReceivingFirstPacket( h263Reader.onReceivingFirstPacket(
FRAME_1_FRAGMENT_1.timestamp, FRAME_1_FRAGMENT_1.sequenceNumber); FRAME_1_FRAGMENT_1.timestamp, FRAME_1_FRAGMENT_1.sequenceNumber);
consume(h263Reader, FRAME_1_FRAGMENT_1); consume(h263Reader, copyPacket(FRAME_1_FRAGMENT_1));
consume(h263Reader, FRAME_2_FRAGMENT_1); consume(h263Reader, copyPacket(FRAME_2_FRAGMENT_1));
consume(h263Reader, FRAME_2_FRAGMENT_2); consume(h263Reader, copyPacket(FRAME_2_FRAGMENT_2));
trackOutput = extractorOutput.trackOutputs.get(0); trackOutput = extractorOutput.trackOutputs.get(0);
assertThat(trackOutput.getSampleCount()).isEqualTo(2); assertThat(trackOutput.getSampleCount()).isEqualTo(2);
...@@ -172,10 +173,10 @@ public final class RtpH263ReaderTest { ...@@ -172,10 +173,10 @@ public final class RtpH263ReaderTest {
h263Reader.createTracks(extractorOutput, /* trackId= */ 0); h263Reader.createTracks(extractorOutput, /* trackId= */ 0);
h263Reader.onReceivingFirstPacket( h263Reader.onReceivingFirstPacket(
FRAME_1_FRAGMENT_1.timestamp, FRAME_1_FRAGMENT_1.sequenceNumber); FRAME_1_FRAGMENT_1.timestamp, FRAME_1_FRAGMENT_1.sequenceNumber);
consume(h263Reader, FRAME_1_FRAGMENT_1); consume(h263Reader, copyPacket(FRAME_1_FRAGMENT_1));
consume(h263Reader, FRAME_2_FRAGMENT_1); consume(h263Reader, copyPacket(FRAME_2_FRAGMENT_1));
consume(h263Reader, FRAME_1_FRAGMENT_2); consume(h263Reader, copyPacket(FRAME_1_FRAGMENT_2));
consume(h263Reader, FRAME_2_FRAGMENT_2); consume(h263Reader, copyPacket(FRAME_2_FRAGMENT_2));
trackOutput = extractorOutput.trackOutputs.get(0); trackOutput = extractorOutput.trackOutputs.get(0);
assertThat(trackOutput.getSampleCount()).isEqualTo(2); assertThat(trackOutput.getSampleCount()).isEqualTo(2);
...@@ -195,4 +196,23 @@ public final class RtpH263ReaderTest { ...@@ -195,4 +196,23 @@ public final class RtpH263ReaderTest {
rtpPacket.sequenceNumber, rtpPacket.sequenceNumber,
/* isFrameBoundary= */ rtpPacket.marker); /* isFrameBoundary= */ rtpPacket.marker);
} }
private static RtpPacket copyPacket(RtpPacket packet) {
RtpPacket.Builder builder =
new RtpPacket.Builder()
.setPadding(packet.padding)
.setMarker(packet.marker)
.setPayloadType(packet.payloadType)
.setSequenceNumber(packet.sequenceNumber)
.setTimestamp(packet.timestamp)
.setSsrc(packet.ssrc);
if (packet.csrc.length > 0) {
builder.setCsrc(Arrays.copyOf(packet.csrc, packet.csrc.length));
}
if (packet.payloadData.length > 0) {
builder.setPayloadData(Arrays.copyOf(packet.payloadData, packet.payloadData.length));
}
return builder.build();
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment