From 1b6a32f25a269ce78403ac7aaa56aa670b9e03cc Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Wed, 22 Apr 2020 10:33:14 +0100 Subject: [PATCH] Add test for TsExtractor's FLAG_DETECT_ACCESS_UNITS PiperOrigin-RevId: 307777265 --- .../extractor/ts/TsExtractorTest.java | 8 ++++ .../sample_h264_no_access_unit_delimiters.ts | Bin 0 -> 13912 bytes ...e_h264_no_access_unit_delimiters.ts.0.dump | 43 ++++++++++++++++++ ...e_h264_no_access_unit_delimiters.ts.1.dump | 43 ++++++++++++++++++ ...e_h264_no_access_unit_delimiters.ts.2.dump | 43 ++++++++++++++++++ ...e_h264_no_access_unit_delimiters.ts.3.dump | 27 +++++++++++ ...ess_unit_delimiters.ts.unknown_length.dump | 40 ++++++++++++++++ 7 files changed, 204 insertions(+) create mode 100644 testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts create mode 100644 testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.0.dump create mode 100644 testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.1.dump create mode 100644 testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.2.dump create mode 100644 testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.3.dump create mode 100644 testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.unknown_length.dump diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/TsExtractorTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/TsExtractorTest.java index d040c22286..420bd5a3c0 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/TsExtractorTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/TsExtractorTest.java @@ -15,6 +15,7 @@ */ package com.google.android.exoplayer2.extractor.ts; +import static com.google.android.exoplayer2.extractor.ts.DefaultTsPayloadReaderFactory.FLAG_DETECT_ACCESS_UNITS; import static com.google.common.truth.Truth.assertThat; import android.util.SparseArray; @@ -54,6 +55,13 @@ public final class TsExtractorTest { ExtractorAsserts.assertBehavior(TsExtractor::new, "ts/sample_h264_mpeg_audio.ts"); } + @Test + public void sampleWithH264NoAccessUnitDelimiters() throws Exception { + ExtractorAsserts.assertBehavior( + () -> new TsExtractor(FLAG_DETECT_ACCESS_UNITS), + "ts/sample_h264_no_access_unit_delimiters.ts"); + } + @Test public void sampleWithH265() throws Exception { ExtractorAsserts.assertBehavior(TsExtractor::new, "ts/sample_h265.ts"); diff --git a/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts b/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts new file mode 100644 index 0000000000000000000000000000000000000000..a1cc40ba709b3ba9527b1804fd83fed7a5fc73c6 GIT binary patch literal 13912 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 W9&B7RuQ~ixHx16&X|8W9`~Lu+o$KxZ literal 0 HcmV?d00001 diff --git a/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.0.dump b/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.0.dump new file mode 100644 index 0000000000..f3f3d233df --- /dev/null +++ b/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.0.dump @@ -0,0 +1,43 @@ +seekMap: + isSeekable = true + duration = 66733 + getPosition(0) = [[timeUs=0, position=0]] + getPosition(1) = [[timeUs=1, position=0]] + getPosition(33366) = [[timeUs=33366, position=6420]] + getPosition(66733) = [[timeUs=66733, position=13028]] +numberOfTracks = 2 +track 256: + total output bytes = 12451 + sample count = 4 + format 0: + id = 1/256 + sampleMimeType = video/avc + codecs = avc1.64001E + width = 640 + height = 426 + initializationData: + data = length 29, hash 4C2CAE9C + data = length 9, hash D971CD89 + sample 0: + time = 66733 + flags = 0 + data = length 734, hash AF0D9485 + sample 1: + time = 66733 + flags = 1 + data = length 10938, hash 68420875 + sample 2: + time = 133466 + flags = 0 + data = length 6, hash 34E6CF79 + sample 3: + time = 133466 + flags = 0 + data = length 518, hash 546C177 +track 8448: + total output bytes = 0 + sample count = 0 + format 0: + id = 1/8448 + sampleMimeType = application/cea-608 +tracksEnded = true diff --git a/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.1.dump b/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.1.dump new file mode 100644 index 0000000000..94d3d8d3b9 --- /dev/null +++ b/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.1.dump @@ -0,0 +1,43 @@ +seekMap: + isSeekable = true + duration = 66733 + getPosition(0) = [[timeUs=0, position=0]] + getPosition(1) = [[timeUs=1, position=0]] + getPosition(33366) = [[timeUs=33366, position=6420]] + getPosition(66733) = [[timeUs=66733, position=13028]] +numberOfTracks = 2 +track 256: + total output bytes = 12451 + sample count = 4 + format 0: + id = 1/256 + sampleMimeType = video/avc + codecs = avc1.64001E + width = 640 + height = 426 + initializationData: + data = length 29, hash 4C2CAE9C + data = length 9, hash D971CD89 + sample 0: + time = 88977 + flags = 0 + data = length 734, hash AF0D9485 + sample 1: + time = 88977 + flags = 1 + data = length 10938, hash 68420875 + sample 2: + time = 155710 + flags = 0 + data = length 6, hash 34E6CF79 + sample 3: + time = 155710 + flags = 0 + data = length 518, hash 546C177 +track 8448: + total output bytes = 0 + sample count = 0 + format 0: + id = 1/8448 + sampleMimeType = application/cea-608 +tracksEnded = true diff --git a/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.2.dump b/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.2.dump new file mode 100644 index 0000000000..e6e8332462 --- /dev/null +++ b/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.2.dump @@ -0,0 +1,43 @@ +seekMap: + isSeekable = true + duration = 66733 + getPosition(0) = [[timeUs=0, position=0]] + getPosition(1) = [[timeUs=1, position=0]] + getPosition(33366) = [[timeUs=33366, position=6420]] + getPosition(66733) = [[timeUs=66733, position=13028]] +numberOfTracks = 2 +track 256: + total output bytes = 12451 + sample count = 4 + format 0: + id = 1/256 + sampleMimeType = video/avc + codecs = avc1.64001E + width = 640 + height = 426 + initializationData: + data = length 29, hash 4C2CAE9C + data = length 9, hash D971CD89 + sample 0: + time = 111221 + flags = 0 + data = length 734, hash AF0D9485 + sample 1: + time = 111221 + flags = 1 + data = length 10938, hash 68420875 + sample 2: + time = 177954 + flags = 0 + data = length 6, hash 34E6CF79 + sample 3: + time = 177954 + flags = 0 + data = length 518, hash 546C177 +track 8448: + total output bytes = 0 + sample count = 0 + format 0: + id = 1/8448 + sampleMimeType = application/cea-608 +tracksEnded = true diff --git a/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.3.dump b/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.3.dump new file mode 100644 index 0000000000..8710d53411 --- /dev/null +++ b/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.3.dump @@ -0,0 +1,27 @@ +seekMap: + isSeekable = true + duration = 66733 + getPosition(0) = [[timeUs=0, position=0]] + getPosition(1) = [[timeUs=1, position=0]] + getPosition(33366) = [[timeUs=33366, position=6420]] + getPosition(66733) = [[timeUs=66733, position=13028]] +numberOfTracks = 2 +track 256: + total output bytes = 255 + sample count = 0 + format 0: + id = 1/256 + sampleMimeType = video/avc + codecs = avc1.64001E + width = 640 + height = 426 + initializationData: + data = length 29, hash 4C2CAE9C + data = length 9, hash D971CD89 +track 8448: + total output bytes = 0 + sample count = 0 + format 0: + id = 1/8448 + sampleMimeType = application/cea-608 +tracksEnded = true diff --git a/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.unknown_length.dump b/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.unknown_length.dump new file mode 100644 index 0000000000..a23c081a59 --- /dev/null +++ b/testdata/src/test/assets/ts/sample_h264_no_access_unit_delimiters.ts.unknown_length.dump @@ -0,0 +1,40 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=0]] +numberOfTracks = 2 +track 256: + total output bytes = 12451 + sample count = 4 + format 0: + id = 1/256 + sampleMimeType = video/avc + codecs = avc1.64001E + width = 640 + height = 426 + initializationData: + data = length 29, hash 4C2CAE9C + data = length 9, hash D971CD89 + sample 0: + time = 66733 + flags = 0 + data = length 734, hash AF0D9485 + sample 1: + time = 66733 + flags = 1 + data = length 10938, hash 68420875 + sample 2: + time = 133466 + flags = 0 + data = length 6, hash 34E6CF79 + sample 3: + time = 133466 + flags = 0 + data = length 518, hash 546C177 +track 8448: + total output bytes = 0 + sample count = 0 + format 0: + id = 1/8448 + sampleMimeType = application/cea-608 +tracksEnded = true