From 544d88ca56ea5c0e2a73d8cea16c5c3d842c7058 Mon Sep 17 00:00:00 2001 From: eguven Date: Wed, 8 Jun 2016 08:38:14 -0700 Subject: [PATCH] PsExtractorTest ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=124355441 --- library/src/androidTest/assets/ts/sample.ps | Bin 0 -> 49152 bytes .../src/androidTest/assets/ts/sample.ps.dump | 79 ++++++++++++++++++ .../assets/ts/{sample.mpeg => sample.ts} | Bin .../ts/{sample.mpeg.dump => sample.ts.dump} | 0 .../extractor/ts/PsExtractorTest.java | 37 ++++++++ .../extractor/ts/TsExtractorTest.java | 2 +- 6 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 library/src/androidTest/assets/ts/sample.ps create mode 100644 library/src/androidTest/assets/ts/sample.ps.dump rename library/src/androidTest/assets/ts/{sample.mpeg => sample.ts} (100%) rename library/src/androidTest/assets/ts/{sample.mpeg.dump => sample.ts.dump} (100%) create mode 100644 library/src/androidTest/java/com/google/android/exoplayer/extractor/ts/PsExtractorTest.java diff --git a/library/src/androidTest/assets/ts/sample.ps b/library/src/androidTest/assets/ts/sample.ps new file mode 100644 index 0000000000000000000000000000000000000000..f7a2d96db5f5bb9eda078f9e257ab0313df0ba43 GIT binary patch literal 49152 zcmeFZcUTn7)-PH;GYm5@LkDVipaKd40wOsnAWi?hU)6-T2^J@A=lrJy{?h{g_gdf|{D0_g{y)Y%4>zzW0;YNqPQY{@;-G$EAngB%G*rmV zV2qKF>!&znb)bOw(^pXc_qml5* zB`Bd8=%Jj=l@(a#bH9t5dJUWzl|~g%&}PhN`%ObZl=A+`vZ8#)@!{OPn`Q$#cKI@# z{;7GonHEWW9)`y){}JmrDlBvRXbdLm>t88{GsH8rHH+6LsB9N^)v64qShy!x-Jbb= zNYUw|^RVr#RKI!eqr$JjcW>@%w*KS$<&W<~(XlUop8TwTu=n}xIbpX4MJ3ZhcKh9~ zmfpSn(yRX7rsvDpj{Q%kgAy>!(aS3Vl)*fKM(tYd5B!PV*nyFoybey4LS7*Ubw3Mf zK6`$@*};4}c}OuB+v#00^Nl~%y^zT3C8YV7Kf_DFK``y?>!c#R+8|H+JtkIB0YYVupnpGC# z+>YN&k~zC@f`arvN_KHn4TwXB<8n+gg=9WkUE8euAurH_@vfxqwIoc zt7gRA5;SAwg@QV<;_tw3XiPwQE8bnXcXAIIM{$BLqA?s@uU9eEq=)+} zK?deWEE;r@u;22Ei)HrGzB~vFf;ez?1bFVMA%5vbEd`ax0fd3)DK1t#1+G>K1TJ9s zj|(Eto{Sz_uc?C6*kCp~1>S9TOxEQ^!_IWmtg_j7^@_4R+H;~-GKM-f2pU}fLPKir zc3j!r&g*y(y|=j!6*|s$d6_=q6`|(#8Jo8JOAQ<3q?*vvv6^CV#Ht5d?6#|DHX-R+ zm*w+yEq=@Ao5}oEPYS=)EbZ&~##gql@8ElrlYd3Lw!~r~+x_L;Sg!`U82@ zz2WwGw~p-1ER)$=dCOCxFL}1`t0bSn6RyP^g(ppgt>^gTZfV(9-O{qtos{Uj<%0yy zp!f?CgGgw05Vgl&oUq5ABmTErD&zm8GFF+C7{EJ;dIbj*$o+WeHJvA~j1n&f%$CJ@oT%u!u6V5eHZHvBiY2TrGKL*vgU{Mlb0vEeesQ2ditMl*SQ8iRkWWr| z_56&S-RJOBW*2do9&4j06?^e1|GnBtfTL5e;G!AZw}wJ}mbLl)VXKCV`7&Hj3@t?4 zWeh!^A&BudwAlSD)80zkf_!~;EVoZ*{An6OBz`l@qIUE z3!C~52|u1Ke6zx>rXLpZJw=V*)3eTTt^UpC(rm)fl0Uw4!kHx@ULjtaUg{o&v$JK$ zU+L_FqPK5LJ`V&3)Vy^5?mvxOonM(qui4tSI-u@0dnLa#nqPizS50-_{-j&xd!t`Y z->3Hr1YD;Ld`zGZ=-DG9_{GffeyqK=`~Jr>YsAP~)&s=ikb}g?^r-DS+gZLxi}SUq zXZlt{+ANUdv7>+G-#XqkC!^mlaG_TCW$N{ew;jm5!hSTeTxsPxZBT!JnCGo6FSEB? z`DtJ6>E5^QEl=}$o}%{$^W8jpdu9c#eC? li}se9=f#;B&c$XGX%4YRfW!Izbv5 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�G}b#8Ce(8zXXYWdW$;dI_cb+Rphb9HiKP9z7E( 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 EUm25v-v9sr literal 0 HcmV?d00001 diff --git a/library/src/androidTest/assets/ts/sample.ps.dump b/library/src/androidTest/assets/ts/sample.ps.dump new file mode 100644 index 0000000000..7e970a4a60 --- /dev/null +++ b/library/src/androidTest/assets/ts/sample.ps.dump @@ -0,0 +1,79 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = 0 +numberOfTracks = 2 +track 192: + format: + bitrate = -1 + id = null + containerMimeType = null + sampleMimeType = audio/mpeg-L2 + maxInputSize = 4096 + requiresSecureDecryption = false + width = -1 + height = -1 + frameRate = -1.0 + rotationDegrees = -1 + pixelWidthHeightRatio = -1.0 + channelCount = 1 + sampleRate = 44100 + pcmEncoding = -1 + encoderDelay = -1 + encoderPadding = -1 + subsampleOffsetUs = 9223372036854775807 + selectionFlags = 0 + language = null + drmInitData = - + initializationData: + sample count = 4 + sample 0: + time = 29088 + flags = 1 + data = length 417, hash 5C710F78 + sample 1: + time = 55210 + flags = 1 + data = length 418, hash 79CF71F8 + sample 2: + time = 81332 + flags = 1 + data = length 418, hash 79CF71F8 + sample 3: + time = 107454 + flags = 1 + data = length 418, hash 79CF71F8 +track 224: + format: + bitrate = -1 + id = null + containerMimeType = null + sampleMimeType = video/mpeg2 + maxInputSize = -1 + requiresSecureDecryption = false + width = 640 + height = 426 + frameRate = -1.0 + rotationDegrees = -1 + pixelWidthHeightRatio = 1.0 + channelCount = -1 + sampleRate = -1 + pcmEncoding = -1 + encoderDelay = -1 + encoderPadding = -1 + subsampleOffsetUs = 9223372036854775807 + selectionFlags = 0 + language = null + drmInitData = - + initializationData: + data = length 22, hash 743CC6F8 + sample count = 2 + sample 0: + time = 40000 + flags = 1 + data = length 20616, hash CA38A5B5 + sample 1: + time = 80000 + flags = 0 + data = length 17831, hash 5C5A57F5 +tracksEnded = true diff --git a/library/src/androidTest/assets/ts/sample.mpeg b/library/src/androidTest/assets/ts/sample.ts similarity index 100% rename from library/src/androidTest/assets/ts/sample.mpeg rename to library/src/androidTest/assets/ts/sample.ts diff --git a/library/src/androidTest/assets/ts/sample.mpeg.dump b/library/src/androidTest/assets/ts/sample.ts.dump similarity index 100% rename from library/src/androidTest/assets/ts/sample.mpeg.dump rename to library/src/androidTest/assets/ts/sample.ts.dump diff --git a/library/src/androidTest/java/com/google/android/exoplayer/extractor/ts/PsExtractorTest.java b/library/src/androidTest/java/com/google/android/exoplayer/extractor/ts/PsExtractorTest.java new file mode 100644 index 0000000000..634c0f0354 --- /dev/null +++ b/library/src/androidTest/java/com/google/android/exoplayer/extractor/ts/PsExtractorTest.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.android.exoplayer.extractor.ts; + +import com.google.android.exoplayer.extractor.Extractor; +import com.google.android.exoplayer.testutil.TestUtil; + +import android.test.InstrumentationTestCase; + +/** + * Unit test for {@link PsExtractor}. + */ +public final class PsExtractorTest extends InstrumentationTestCase { + + public void testSample() throws Exception { + TestUtil.assertOutput(new TestUtil.ExtractorFactory() { + @Override + public Extractor create() { + return new PsExtractor(); + } + }, "ts/sample.ps", getInstrumentation()); + } + +} diff --git a/library/src/androidTest/java/com/google/android/exoplayer/extractor/ts/TsExtractorTest.java b/library/src/androidTest/java/com/google/android/exoplayer/extractor/ts/TsExtractorTest.java index f49c3d49e1..85f4cc1a91 100644 --- a/library/src/androidTest/java/com/google/android/exoplayer/extractor/ts/TsExtractorTest.java +++ b/library/src/androidTest/java/com/google/android/exoplayer/extractor/ts/TsExtractorTest.java @@ -31,7 +31,7 @@ public final class TsExtractorTest extends InstrumentationTestCase { public Extractor create() { return new TsExtractor(); } - }, "ts/sample.mpeg", getInstrumentation()); + }, "ts/sample.ts", getInstrumentation()); } }