FakeExtractorOutput dump() and assertEquals(..., String dumpFile) methods to facilitate extractor test writing.

Changed OggExtractorFileTests to use dump files.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123407516
This commit is contained in:
eguven 2016-05-27 04:12:00 -07:00 committed by Oliver Woodman
parent abc5c41ff4
commit ccfb6beb30
13 changed files with 4621 additions and 48 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,163 @@
seekMap:
isSeekable = true
duration = 2741000
getPosition(0) = 8457
numberOfTracks = 1
track 0:
format:
bitrate = -1
id = null
containerMimeType = null
sampleMimeType = audio/x-flac
maxInputSize = 768000
requiresSecureDecryption = false
width = -1
height = -1
frameRate = -1.0
rotationDegrees = -1
pixelWidthHeightRatio = -1.0
channelCount = 2
sampleRate = 48000
pcmEncoding = -1
encoderDelay = -1
encoderPadding = -1
subsampleOffsetUs = 9223372036854775807
selectionFlags = 0
language = null
drmInitData = -
initializationData:
data = length 42, hash 83F6895
sample count = 33
sample 0:
time = 0
flags = 1
data = length 5030, hash D2B60530
sample 1:
time = 85333
flags = 1
data = length 5066, hash 4C932A54
sample 2:
time = 170666
flags = 1
data = length 5112, hash 7E5A7B61
sample 3:
time = 256000
flags = 1
data = length 5044, hash 7EF93F13
sample 4:
time = 341333
flags = 1
data = length 4943, hash DE7E27F8
sample 5:
time = 426666
flags = 1
data = length 5121, hash 6D0D0B40
sample 6:
time = 512000
flags = 1
data = length 5068, hash 9924644F
sample 7:
time = 597333
flags = 1
data = length 5143, hash 6C34F0CE
sample 8:
time = 682666
flags = 1
data = length 5109, hash E3B7BEFB
sample 9:
time = 768000
flags = 1
data = length 5129, hash 44111D9B
sample 10:
time = 853333
flags = 1
data = length 5031, hash 9D55EA53
sample 11:
time = 938666
flags = 1
data = length 5119, hash E1CB9BA6
sample 12:
time = 1024000
flags = 1
data = length 5360, hash 17265C5D
sample 13:
time = 1109333
flags = 1
data = length 5340, hash A90FDDF1
sample 14:
time = 1194666
flags = 1
data = length 5162, hash 31F65AD5
sample 15:
time = 1280000
flags = 1
data = length 5168, hash F2394F2D
sample 16:
time = 1365333
flags = 1
data = length 5776, hash 58437AB3
sample 17:
time = 1450666
flags = 1
data = length 5394, hash EBAB20A8
sample 18:
time = 1536000
flags = 1
data = length 5168, hash BF37C7A5
sample 19:
time = 1621333
flags = 1
data = length 5324, hash 59546B7B
sample 20:
time = 1706666
flags = 1
data = length 5172, hash 6036EF0B
sample 21:
time = 1792000
flags = 1
data = length 5102, hash 5A131071
sample 22:
time = 1877333
flags = 1
data = length 5111, hash 3D9EBB3B
sample 23:
time = 1962666
flags = 1
data = length 5113, hash 61101D4F
sample 24:
time = 2048000
flags = 1
data = length 5229, hash D2E55742
sample 25:
time = 2133333
flags = 1
data = length 5162, hash 7F2E97FA
sample 26:
time = 2218666
flags = 1
data = length 5255, hash D92A782
sample 27:
time = 2304000
flags = 1
data = length 5196, hash 98FE5138
sample 28:
time = 2389333
flags = 1
data = length 5214, hash 3D35C38C
sample 29:
time = 2474666
flags = 1
data = length 5211, hash 7E25420F
sample 30:
time = 2560000
flags = 1
data = length 5230, hash 2AD96FBC
sample 31:
time = 2645333
flags = 1
data = length 3384, hash 938BCDD9
sample 32:
time = 2730666
flags = 1
data = length 445, hash A388E3D6
tracksEnded = true

View File

@ -0,0 +1,163 @@
seekMap:
isSeekable = true
duration = 2741000
getPosition(0) = 8457
numberOfTracks = 1
track 0:
format:
bitrate = -1
id = null
containerMimeType = null
sampleMimeType = audio/x-flac
maxInputSize = 768000
requiresSecureDecryption = false
width = -1
height = -1
frameRate = -1.0
rotationDegrees = -1
pixelWidthHeightRatio = -1.0
channelCount = 2
sampleRate = 48000
pcmEncoding = -1
encoderDelay = -1
encoderPadding = -1
subsampleOffsetUs = 9223372036854775807
selectionFlags = 0
language = null
drmInitData = -
initializationData:
data = length 42, hash 83F6895
sample count = 33
sample 0:
time = 0
flags = 1
data = length 5030, hash D2B60530
sample 1:
time = 85333
flags = 1
data = length 5066, hash 4C932A54
sample 2:
time = 170666
flags = 1
data = length 5112, hash 7E5A7B61
sample 3:
time = 256000
flags = 1
data = length 5044, hash 7EF93F13
sample 4:
time = 341333
flags = 1
data = length 4943, hash DE7E27F8
sample 5:
time = 426666
flags = 1
data = length 5121, hash 6D0D0B40
sample 6:
time = 512000
flags = 1
data = length 5068, hash 9924644F
sample 7:
time = 597333
flags = 1
data = length 5143, hash 6C34F0CE
sample 8:
time = 682666
flags = 1
data = length 5109, hash E3B7BEFB
sample 9:
time = 768000
flags = 1
data = length 5129, hash 44111D9B
sample 10:
time = 853333
flags = 1
data = length 5031, hash 9D55EA53
sample 11:
time = 938666
flags = 1
data = length 5119, hash E1CB9BA6
sample 12:
time = 1024000
flags = 1
data = length 5360, hash 17265C5D
sample 13:
time = 1109333
flags = 1
data = length 5340, hash A90FDDF1
sample 14:
time = 1194666
flags = 1
data = length 5162, hash 31F65AD5
sample 15:
time = 1280000
flags = 1
data = length 5168, hash F2394F2D
sample 16:
time = 1365333
flags = 1
data = length 5776, hash 58437AB3
sample 17:
time = 1450666
flags = 1
data = length 5394, hash EBAB20A8
sample 18:
time = 1536000
flags = 1
data = length 5168, hash BF37C7A5
sample 19:
time = 1621333
flags = 1
data = length 5324, hash 59546B7B
sample 20:
time = 1706666
flags = 1
data = length 5172, hash 6036EF0B
sample 21:
time = 1792000
flags = 1
data = length 5102, hash 5A131071
sample 22:
time = 1877333
flags = 1
data = length 5111, hash 3D9EBB3B
sample 23:
time = 1962666
flags = 1
data = length 5113, hash 61101D4F
sample 24:
time = 2048000
flags = 1
data = length 5229, hash D2E55742
sample 25:
time = 2133333
flags = 1
data = length 5162, hash 7F2E97FA
sample 26:
time = 2218666
flags = 1
data = length 5255, hash D92A782
sample 27:
time = 2304000
flags = 1
data = length 5196, hash 98FE5138
sample 28:
time = 2389333
flags = 1
data = length 5214, hash 3D35C38C
sample 29:
time = 2474666
flags = 1
data = length 5211, hash 7E25420F
sample 30:
time = 2560000
flags = 1
data = length 5230, hash 2AD96FBC
sample 31:
time = 2645333
flags = 1
data = length 3384, hash 938BCDD9
sample 32:
time = 2730666
flags = 1
data = length 445, hash A388E3D6
tracksEnded = true

View File

@ -0,0 +1,163 @@
seekMap:
isSeekable = true
duration = 2741000
getPosition(0) = 8407
numberOfTracks = 1
track 0:
format:
bitrate = -1
id = null
containerMimeType = null
sampleMimeType = audio/x-flac
maxInputSize = 768000
requiresSecureDecryption = false
width = -1
height = -1
frameRate = -1.0
rotationDegrees = -1
pixelWidthHeightRatio = -1.0
channelCount = 2
sampleRate = 48000
pcmEncoding = -1
encoderDelay = -1
encoderPadding = -1
subsampleOffsetUs = 9223372036854775807
selectionFlags = 0
language = null
drmInitData = -
initializationData:
data = length 42, hash 83F6895
sample count = 33
sample 0:
time = 0
flags = 1
data = length 5030, hash D2B60530
sample 1:
time = 85333
flags = 1
data = length 5066, hash 4C932A54
sample 2:
time = 170666
flags = 1
data = length 5112, hash 7E5A7B61
sample 3:
time = 256000
flags = 1
data = length 5044, hash 7EF93F13
sample 4:
time = 341333
flags = 1
data = length 4943, hash DE7E27F8
sample 5:
time = 426666
flags = 1
data = length 5121, hash 6D0D0B40
sample 6:
time = 512000
flags = 1
data = length 5068, hash 9924644F
sample 7:
time = 597333
flags = 1
data = length 5143, hash 6C34F0CE
sample 8:
time = 682666
flags = 1
data = length 5109, hash E3B7BEFB
sample 9:
time = 768000
flags = 1
data = length 5129, hash 44111D9B
sample 10:
time = 853333
flags = 1
data = length 5031, hash 9D55EA53
sample 11:
time = 938666
flags = 1
data = length 5119, hash E1CB9BA6
sample 12:
time = 1024000
flags = 1
data = length 5360, hash 17265C5D
sample 13:
time = 1109333
flags = 1
data = length 5340, hash A90FDDF1
sample 14:
time = 1194666
flags = 1
data = length 5162, hash 31F65AD5
sample 15:
time = 1280000
flags = 1
data = length 5168, hash F2394F2D
sample 16:
time = 1365333
flags = 1
data = length 5776, hash 58437AB3
sample 17:
time = 1450666
flags = 1
data = length 5394, hash EBAB20A8
sample 18:
time = 1536000
flags = 1
data = length 5168, hash BF37C7A5
sample 19:
time = 1621333
flags = 1
data = length 5324, hash 59546B7B
sample 20:
time = 1706666
flags = 1
data = length 5172, hash 6036EF0B
sample 21:
time = 1792000
flags = 1
data = length 5102, hash 5A131071
sample 22:
time = 1877333
flags = 1
data = length 5111, hash 3D9EBB3B
sample 23:
time = 1962666
flags = 1
data = length 5113, hash 61101D4F
sample 24:
time = 2048000
flags = 1
data = length 5229, hash D2E55742
sample 25:
time = 2133333
flags = 1
data = length 5162, hash 7F2E97FA
sample 26:
time = 2218666
flags = 1
data = length 5255, hash D92A782
sample 27:
time = 2304000
flags = 1
data = length 5196, hash 98FE5138
sample 28:
time = 2389333
flags = 1
data = length 5214, hash 3D35C38C
sample 29:
time = 2474666
flags = 1
data = length 5211, hash 7E25420F
sample 30:
time = 2560000
flags = 1
data = length 5230, hash 2AD96FBC
sample 31:
time = 2645333
flags = 1
data = length 3384, hash 938BCDD9
sample 32:
time = 2730666
flags = 1
data = length 445, hash A388E3D6
tracksEnded = true

View File

@ -0,0 +1,163 @@
seekMap:
isSeekable = false
duration = UNSET TIME
getPosition(0) = 0
numberOfTracks = 1
track 0:
format:
bitrate = -1
id = null
containerMimeType = null
sampleMimeType = audio/x-flac
maxInputSize = 768000
requiresSecureDecryption = false
width = -1
height = -1
frameRate = -1.0
rotationDegrees = -1
pixelWidthHeightRatio = -1.0
channelCount = 2
sampleRate = 48000
pcmEncoding = -1
encoderDelay = -1
encoderPadding = -1
subsampleOffsetUs = 9223372036854775807
selectionFlags = 0
language = null
drmInitData = -
initializationData:
data = length 42, hash 83F6895
sample count = 33
sample 0:
time = 0
flags = 1
data = length 5030, hash D2B60530
sample 1:
time = 85333
flags = 1
data = length 5066, hash 4C932A54
sample 2:
time = 170666
flags = 1
data = length 5112, hash 7E5A7B61
sample 3:
time = 256000
flags = 1
data = length 5044, hash 7EF93F13
sample 4:
time = 341333
flags = 1
data = length 4943, hash DE7E27F8
sample 5:
time = 426666
flags = 1
data = length 5121, hash 6D0D0B40
sample 6:
time = 512000
flags = 1
data = length 5068, hash 9924644F
sample 7:
time = 597333
flags = 1
data = length 5143, hash 6C34F0CE
sample 8:
time = 682666
flags = 1
data = length 5109, hash E3B7BEFB
sample 9:
time = 768000
flags = 1
data = length 5129, hash 44111D9B
sample 10:
time = 853333
flags = 1
data = length 5031, hash 9D55EA53
sample 11:
time = 938666
flags = 1
data = length 5119, hash E1CB9BA6
sample 12:
time = 1024000
flags = 1
data = length 5360, hash 17265C5D
sample 13:
time = 1109333
flags = 1
data = length 5340, hash A90FDDF1
sample 14:
time = 1194666
flags = 1
data = length 5162, hash 31F65AD5
sample 15:
time = 1280000
flags = 1
data = length 5168, hash F2394F2D
sample 16:
time = 1365333
flags = 1
data = length 5776, hash 58437AB3
sample 17:
time = 1450666
flags = 1
data = length 5394, hash EBAB20A8
sample 18:
time = 1536000
flags = 1
data = length 5168, hash BF37C7A5
sample 19:
time = 1621333
flags = 1
data = length 5324, hash 59546B7B
sample 20:
time = 1706666
flags = 1
data = length 5172, hash 6036EF0B
sample 21:
time = 1792000
flags = 1
data = length 5102, hash 5A131071
sample 22:
time = 1877333
flags = 1
data = length 5111, hash 3D9EBB3B
sample 23:
time = 1962666
flags = 1
data = length 5113, hash 61101D4F
sample 24:
time = 2048000
flags = 1
data = length 5229, hash D2E55742
sample 25:
time = 2133333
flags = 1
data = length 5162, hash 7F2E97FA
sample 26:
time = 2218666
flags = 1
data = length 5255, hash D92A782
sample 27:
time = 2304000
flags = 1
data = length 5196, hash 98FE5138
sample 28:
time = 2389333
flags = 1
data = length 5214, hash 3D35C38C
sample 29:
time = 2474666
flags = 1
data = length 5211, hash 7E25420F
sample 30:
time = 2560000
flags = 1
data = length 5230, hash 2AD96FBC
sample 31:
time = 2645333
flags = 1
data = length 3384, hash 938BCDD9
sample 32:
time = 2730666
flags = 1
data = length 445, hash A388E3D6
tracksEnded = true

View File

@ -0,0 +1,752 @@
seekMap:
isSeekable = true
duration = 2741000
getPosition(0) = 3995
numberOfTracks = 1
track 0:
format:
bitrate = 112000
id = null
containerMimeType = null
sampleMimeType = audio/vorbis
maxInputSize = 65025
requiresSecureDecryption = false
width = -1
height = -1
frameRate = -1.0
rotationDegrees = -1
pixelWidthHeightRatio = -1.0
channelCount = 2
sampleRate = 48000
pcmEncoding = -1
encoderDelay = -1
encoderPadding = -1
subsampleOffsetUs = 9223372036854775807
selectionFlags = 0
language = null
drmInitData = -
initializationData:
data = length 30, hash 9A8FF207
data = length 3832, hash 8A406249
sample count = 180
sample 0:
time = 0
flags = 1
data = length 49, hash 2FFF94F0
sample 1:
time = 0
flags = 1
data = length 44, hash 3946418A
sample 2:
time = 2666
flags = 1
data = length 55, hash 2A0B878E
sample 3:
time = 5333
flags = 1
data = length 53, hash CC3B6879
sample 4:
time = 8000
flags = 1
data = length 215, hash 106AE950
sample 5:
time = 20000
flags = 1
data = length 192, hash 2B219F53
sample 6:
time = 41333
flags = 1
data = length 197, hash FBC39422
sample 7:
time = 62666
flags = 1
data = length 209, hash 386E8979
sample 8:
time = 84000
flags = 1
data = length 42, hash E81162C1
sample 9:
time = 96000
flags = 1
data = length 41, hash F15BEE36
sample 10:
time = 98666
flags = 1
data = length 42, hash D67EB19
sample 11:
time = 101333
flags = 1
data = length 42, hash F4DE4792
sample 12:
time = 104000
flags = 1
data = length 53, hash 80F66AC3
sample 13:
time = 106666
flags = 1
data = length 56, hash DCB9DFC4
sample 14:
time = 109333
flags = 1
data = length 55, hash 4E0C4E9D
sample 15:
time = 112000
flags = 1
data = length 203, hash 176B6862
sample 16:
time = 124000
flags = 1
data = length 193, hash AB13CB10
sample 17:
time = 145333
flags = 1
data = length 203, hash DE63DE9F
sample 18:
time = 166666
flags = 1
data = length 194, hash 4A9508A2
sample 19:
time = 188000
flags = 1
data = length 210, hash 196899B3
sample 20:
time = 209333
flags = 1
data = length 195, hash B68407F1
sample 21:
time = 230666
flags = 1
data = length 193, hash A1FA86E3
sample 22:
time = 252000
flags = 1
data = length 194, hash 5C0B9343
sample 23:
time = 273333
flags = 1
data = length 198, hash 789914B2
sample 24:
time = 294666
flags = 1
data = length 183, hash 1B82D11F
sample 25:
time = 316000
flags = 1
data = length 199, hash D5B848F4
sample 26:
time = 337333
flags = 1
data = length 192, hash B34427EA
sample 27:
time = 358666
flags = 1
data = length 199, hash C2599BB5
sample 28:
time = 380000
flags = 1
data = length 195, hash BFD83194
sample 29:
time = 401333
flags = 1
data = length 199, hash C9A7F7CA
sample 30:
time = 422666
flags = 1
data = length 44, hash 5D76EAD6
sample 31:
time = 434666
flags = 1
data = length 43, hash 8619C423
sample 32:
time = 437333
flags = 1
data = length 43, hash E490BBE
sample 33:
time = 440000
flags = 1
data = length 53, hash 8A557CAE
sample 34:
time = 442666
flags = 1
data = length 56, hash 81007BBA
sample 35:
time = 445333
flags = 1
data = length 56, hash 4E4DD67F
sample 36:
time = 448000
flags = 1
data = length 222, hash 414188AB
sample 37:
time = 460000
flags = 1
data = length 202, hash 67A07D30
sample 38:
time = 481333
flags = 1
data = length 200, hash E357D853
sample 39:
time = 502666
flags = 1
data = length 203, hash 4653DC90
sample 40:
time = 524000
flags = 1
data = length 192, hash A65E6C09
sample 41:
time = 545333
flags = 1
data = length 202, hash FBEAC508
sample 42:
time = 566666
flags = 1
data = length 202, hash E9B7B59F
sample 43:
time = 588000
flags = 1
data = length 204, hash E24AA78E
sample 44:
time = 609333
flags = 1
data = length 41, hash 3FBC5216
sample 45:
time = 621333
flags = 1
data = length 47, hash 153FBC55
sample 46:
time = 624000
flags = 1
data = length 42, hash 2B493D6C
sample 47:
time = 626666
flags = 1
data = length 42, hash 8303BEE3
sample 48:
time = 629333
flags = 1
data = length 62, hash 71AEE50B
sample 49:
time = 632000
flags = 1
data = length 54, hash 52F61908
sample 50:
time = 634666
flags = 1
data = length 45, hash 7BD3E3A1
sample 51:
time = 637333
flags = 1
data = length 41, hash E0F65472
sample 52:
time = 640000
flags = 1
data = length 45, hash 41838675
sample 53:
time = 642666
flags = 1
data = length 44, hash FCBC2147
sample 54:
time = 645333
flags = 1
data = length 45, hash 1A5987E3
sample 55:
time = 648000
flags = 1
data = length 43, hash 99074864
sample 56:
time = 650666
flags = 1
data = length 57, hash D4A9B60A
sample 57:
time = 653333
flags = 1
data = length 52, hash 302129DA
sample 58:
time = 656000
flags = 1
data = length 57, hash D8DD99C0
sample 59:
time = 658666
flags = 1
data = length 206, hash F4B9EF26
sample 60:
time = 670666
flags = 1
data = length 197, hash 7B8ACC8A
sample 61:
time = 692000
flags = 1
data = length 186, hash 161027CB
sample 62:
time = 713333
flags = 1
data = length 186, hash 1D6871B6
sample 63:
time = 734666
flags = 1
data = length 201, hash 536E9FDB
sample 64:
time = 756000
flags = 1
data = length 192, hash D38EFAC5
sample 65:
time = 777333
flags = 1
data = length 194, hash 4B394EF3
sample 66:
time = 798666
flags = 1
data = length 206, hash 1B31BA99
sample 67:
time = 820000
flags = 1
data = length 212, hash AD061F43
sample 68:
time = 841333
flags = 1
data = length 180, hash 6D1F7481
sample 69:
time = 862666
flags = 1
data = length 195, hash D80B21F
sample 70:
time = 884000
flags = 1
data = length 186, hash D367882
sample 71:
time = 905333
flags = 1
data = length 195, hash 2722159A
sample 72:
time = 926666
flags = 1
data = length 199, hash 10CEE97A
sample 73:
time = 948000
flags = 1
data = length 191, hash 2CF9FB3F
sample 74:
time = 969333
flags = 1
data = length 197, hash A725DA0
sample 75:
time = 990666
flags = 1
data = length 211, hash D4E5DB9E
sample 76:
time = 1012000
flags = 1
data = length 189, hash 1A90F496
sample 77:
time = 1033333
flags = 1
data = length 187, hash 44DB2689
sample 78:
time = 1054666
flags = 1
data = length 197, hash 6D3E5117
sample 79:
time = 1076000
flags = 1
data = length 208, hash 5B57B288
sample 80:
time = 1097333
flags = 1
data = length 198, hash D5FC05
sample 81:
time = 1118666
flags = 1
data = length 192, hash 350BBA45
sample 82:
time = 1140000
flags = 1
data = length 195, hash 5F96F2A8
sample 83:
time = 1161333
flags = 1
data = length 202, hash 61D7CC33
sample 84:
time = 1182666
flags = 1
data = length 202, hash 49D335F2
sample 85:
time = 1204000
flags = 1
data = length 192, hash 2FE9CB1A
sample 86:
time = 1225333
flags = 1
data = length 201, hash BF0763B2
sample 87:
time = 1246666
flags = 1
data = length 184, hash AD047421
sample 88:
time = 1268000
flags = 1
data = length 196, hash F9088F14
sample 89:
time = 1289333
flags = 1
data = length 190, hash AC6D38FD
sample 90:
time = 1310666
flags = 1
data = length 195, hash 8D1A66D2
sample 91:
time = 1332000
flags = 1
data = length 197, hash B46BFB6B
sample 92:
time = 1353333
flags = 1
data = length 195, hash D9761F23
sample 93:
time = 1374666
flags = 1
data = length 204, hash 3391B617
sample 94:
time = 1396000
flags = 1
data = length 42, hash 33A1FB52
sample 95:
time = 1408000
flags = 1
data = length 44, hash 408B146E
sample 96:
time = 1410666
flags = 1
data = length 44, hash 171C7E0D
sample 97:
time = 1413333
flags = 1
data = length 54, hash 6307E16C
sample 98:
time = 1416000
flags = 1
data = length 53, hash 4A319572
sample 99:
time = 1418666
flags = 1
data = length 215, hash BA9C445C
sample 100:
time = 1430666
flags = 1
data = length 201, hash 3120D234
sample 101:
time = 1452000
flags = 1
data = length 187, hash DB44993C
sample 102:
time = 1473333
flags = 1
data = length 196, hash CF2002D7
sample 103:
time = 1494666
flags = 1
data = length 185, hash E03B5D7
sample 104:
time = 1516000
flags = 1
data = length 187, hash DA399A2C
sample 105:
time = 1537333
flags = 1
data = length 191, hash 292AA0DB
sample 106:
time = 1558666
flags = 1
data = length 201, hash 221910E0
sample 107:
time = 1580000
flags = 1
data = length 194, hash F4ED7821
sample 108:
time = 1601333
flags = 1
data = length 43, hash FDDA515E
sample 109:
time = 1613333
flags = 1
data = length 42, hash F3571C0A
sample 110:
time = 1616000
flags = 1
data = length 38, hash 39F910B3
sample 111:
time = 1618666
flags = 1
data = length 41, hash 2D189531
sample 112:
time = 1621333
flags = 1
data = length 43, hash 1F7574DB
sample 113:
time = 1624000
flags = 1
data = length 43, hash 644D15E5
sample 114:
time = 1626666
flags = 1
data = length 49, hash E8A0878
sample 115:
time = 1629333
flags = 1
data = length 55, hash DFF2046D
sample 116:
time = 1632000
flags = 1
data = length 49, hash 9FB8A23
sample 117:
time = 1634666
flags = 1
data = length 41, hash E3E15E3B
sample 118:
time = 1637333
flags = 1
data = length 42, hash E5D17A32
sample 119:
time = 1640000
flags = 1
data = length 42, hash F308B653
sample 120:
time = 1642666
flags = 1
data = length 55, hash BB750D76
sample 121:
time = 1645333
flags = 1
data = length 51, hash 96772ABF
sample 122:
time = 1648000
flags = 1
data = length 197, hash E4524346
sample 123:
time = 1660000
flags = 1
data = length 188, hash AC3E1BB5
sample 124:
time = 1681333
flags = 1
data = length 195, hash F56DB8A5
sample 125:
time = 1702666
flags = 1
data = length 198, hash C8970FF7
sample 126:
time = 1724000
flags = 1
data = length 202, hash AF425C68
sample 127:
time = 1745333
flags = 1
data = length 196, hash 4215D839
sample 128:
time = 1766666
flags = 1
data = length 204, hash DB9BE8E3
sample 129:
time = 1788000
flags = 1
data = length 206, hash E5B20AB8
sample 130:
time = 1809333
flags = 1
data = length 209, hash D7F47B95
sample 131:
time = 1830666
flags = 1
data = length 193, hash FB54FB05
sample 132:
time = 1852000
flags = 1
data = length 199, hash D99C3106
sample 133:
time = 1873333
flags = 1
data = length 206, hash 253885B9
sample 134:
time = 1894666
flags = 1
data = length 191, hash FBDD8162
sample 135:
time = 1916000
flags = 1
data = length 183, hash 7290332F
sample 136:
time = 1937333
flags = 1
data = length 189, hash 1A9DC3DE
sample 137:
time = 1958666
flags = 1
data = length 201, hash 5D936764
sample 138:
time = 1980000
flags = 1
data = length 193, hash 6B03E75E
sample 139:
time = 2001333
flags = 1
data = length 199, hash 8A21BA83
sample 140:
time = 2022666
flags = 1
data = length 41, hash E6362210
sample 141:
time = 2034666
flags = 1
data = length 43, hash 36A57B44
sample 142:
time = 2037333
flags = 1
data = length 43, hash E51797D5
sample 143:
time = 2040000
flags = 1
data = length 43, hash 1F336C72
sample 144:
time = 2042666
flags = 1
data = length 42, hash 201AD367
sample 145:
time = 2045333
flags = 1
data = length 50, hash 606CCD6
sample 146:
time = 2048000
flags = 1
data = length 56, hash B15EBD7A
sample 147:
time = 2050666
flags = 1
data = length 212, hash 273B8D22
sample 148:
time = 2062666
flags = 1
data = length 194, hash 44F9CE1
sample 149:
time = 2084000
flags = 1
data = length 195, hash EDF9EBA1
sample 150:
time = 2105333
flags = 1
data = length 194, hash CE9F2D26
sample 151:
time = 2126666
flags = 1
data = length 192, hash 204F8A23
sample 152:
time = 2148000
flags = 1
data = length 206, hash DFA57E67
sample 153:
time = 2169333
flags = 1
data = length 196, hash 3CF084AB
sample 154:
time = 2190666
flags = 1
data = length 202, hash 2AF75C08
sample 155:
time = 2212000
flags = 1
data = length 203, hash 748EAF7
sample 156:
time = 2233333
flags = 1
data = length 205, hash ED82379D
sample 157:
time = 2254666
flags = 1
data = length 193, hash 61F26F22
sample 158:
time = 2276000
flags = 1
data = length 189, hash 85EF1D20
sample 159:
time = 2297333
flags = 1
data = length 187, hash 25E41FBF
sample 160:
time = 2318666
flags = 1
data = length 199, hash F365808
sample 161:
time = 2340000
flags = 1
data = length 197, hash 94205329
sample 162:
time = 2361333
flags = 1
data = length 201, hash FA2B2055
sample 163:
time = 2382666
flags = 1
data = length 194, hash AF95381F
sample 164:
time = 2404000
flags = 1
data = length 201, hash 923D3534
sample 165:
time = 2425333
flags = 1
data = length 198, hash 35F84C2E
sample 166:
time = 2446666
flags = 1
data = length 204, hash 6642CA40
sample 167:
time = 2468000
flags = 1
data = length 183, hash 3E2DC6BE
sample 168:
time = 2489333
flags = 1
data = length 197, hash B1E458CE
sample 169:
time = 2510666
flags = 1
data = length 193, hash E9218C84
sample 170:
time = 2532000
flags = 1
data = length 192, hash FEF08D4B
sample 171:
time = 2553333
flags = 1
data = length 201, hash FC411147
sample 172:
time = 2574666
flags = 1
data = length 218, hash 86893464
sample 173:
time = 2596000
flags = 1
data = length 226, hash 31C5320
sample 174:
time = 2617333
flags = 1
data = length 233, hash 9432BEE5
sample 175:
time = 2638666
flags = 1
data = length 213, hash B3FCC53E
sample 176:
time = 2660000
flags = 1
data = length 204, hash D70DD5A2
sample 177:
time = 2681333
flags = 1
data = length 212, hash A4EF1B69
sample 178:
time = 2702666
flags = 1
data = length 203, hash 8B0748B5
sample 179:
time = 2724000
flags = 1
data = length 149, hash E455335B
tracksEnded = true

View File

@ -0,0 +1,752 @@
seekMap:
isSeekable = false
duration = UNSET TIME
getPosition(0) = 0
numberOfTracks = 1
track 0:
format:
bitrate = 112000
id = null
containerMimeType = null
sampleMimeType = audio/vorbis
maxInputSize = 65025
requiresSecureDecryption = false
width = -1
height = -1
frameRate = -1.0
rotationDegrees = -1
pixelWidthHeightRatio = -1.0
channelCount = 2
sampleRate = 48000
pcmEncoding = -1
encoderDelay = -1
encoderPadding = -1
subsampleOffsetUs = 9223372036854775807
selectionFlags = 0
language = null
drmInitData = -
initializationData:
data = length 30, hash 9A8FF207
data = length 3832, hash 8A406249
sample count = 180
sample 0:
time = 0
flags = 1
data = length 49, hash 2FFF94F0
sample 1:
time = 0
flags = 1
data = length 44, hash 3946418A
sample 2:
time = 2666
flags = 1
data = length 55, hash 2A0B878E
sample 3:
time = 5333
flags = 1
data = length 53, hash CC3B6879
sample 4:
time = 8000
flags = 1
data = length 215, hash 106AE950
sample 5:
time = 20000
flags = 1
data = length 192, hash 2B219F53
sample 6:
time = 41333
flags = 1
data = length 197, hash FBC39422
sample 7:
time = 62666
flags = 1
data = length 209, hash 386E8979
sample 8:
time = 84000
flags = 1
data = length 42, hash E81162C1
sample 9:
time = 96000
flags = 1
data = length 41, hash F15BEE36
sample 10:
time = 98666
flags = 1
data = length 42, hash D67EB19
sample 11:
time = 101333
flags = 1
data = length 42, hash F4DE4792
sample 12:
time = 104000
flags = 1
data = length 53, hash 80F66AC3
sample 13:
time = 106666
flags = 1
data = length 56, hash DCB9DFC4
sample 14:
time = 109333
flags = 1
data = length 55, hash 4E0C4E9D
sample 15:
time = 112000
flags = 1
data = length 203, hash 176B6862
sample 16:
time = 124000
flags = 1
data = length 193, hash AB13CB10
sample 17:
time = 145333
flags = 1
data = length 203, hash DE63DE9F
sample 18:
time = 166666
flags = 1
data = length 194, hash 4A9508A2
sample 19:
time = 188000
flags = 1
data = length 210, hash 196899B3
sample 20:
time = 209333
flags = 1
data = length 195, hash B68407F1
sample 21:
time = 230666
flags = 1
data = length 193, hash A1FA86E3
sample 22:
time = 252000
flags = 1
data = length 194, hash 5C0B9343
sample 23:
time = 273333
flags = 1
data = length 198, hash 789914B2
sample 24:
time = 294666
flags = 1
data = length 183, hash 1B82D11F
sample 25:
time = 316000
flags = 1
data = length 199, hash D5B848F4
sample 26:
time = 337333
flags = 1
data = length 192, hash B34427EA
sample 27:
time = 358666
flags = 1
data = length 199, hash C2599BB5
sample 28:
time = 380000
flags = 1
data = length 195, hash BFD83194
sample 29:
time = 401333
flags = 1
data = length 199, hash C9A7F7CA
sample 30:
time = 422666
flags = 1
data = length 44, hash 5D76EAD6
sample 31:
time = 434666
flags = 1
data = length 43, hash 8619C423
sample 32:
time = 437333
flags = 1
data = length 43, hash E490BBE
sample 33:
time = 440000
flags = 1
data = length 53, hash 8A557CAE
sample 34:
time = 442666
flags = 1
data = length 56, hash 81007BBA
sample 35:
time = 445333
flags = 1
data = length 56, hash 4E4DD67F
sample 36:
time = 448000
flags = 1
data = length 222, hash 414188AB
sample 37:
time = 460000
flags = 1
data = length 202, hash 67A07D30
sample 38:
time = 481333
flags = 1
data = length 200, hash E357D853
sample 39:
time = 502666
flags = 1
data = length 203, hash 4653DC90
sample 40:
time = 524000
flags = 1
data = length 192, hash A65E6C09
sample 41:
time = 545333
flags = 1
data = length 202, hash FBEAC508
sample 42:
time = 566666
flags = 1
data = length 202, hash E9B7B59F
sample 43:
time = 588000
flags = 1
data = length 204, hash E24AA78E
sample 44:
time = 609333
flags = 1
data = length 41, hash 3FBC5216
sample 45:
time = 621333
flags = 1
data = length 47, hash 153FBC55
sample 46:
time = 624000
flags = 1
data = length 42, hash 2B493D6C
sample 47:
time = 626666
flags = 1
data = length 42, hash 8303BEE3
sample 48:
time = 629333
flags = 1
data = length 62, hash 71AEE50B
sample 49:
time = 632000
flags = 1
data = length 54, hash 52F61908
sample 50:
time = 634666
flags = 1
data = length 45, hash 7BD3E3A1
sample 51:
time = 637333
flags = 1
data = length 41, hash E0F65472
sample 52:
time = 640000
flags = 1
data = length 45, hash 41838675
sample 53:
time = 642666
flags = 1
data = length 44, hash FCBC2147
sample 54:
time = 645333
flags = 1
data = length 45, hash 1A5987E3
sample 55:
time = 648000
flags = 1
data = length 43, hash 99074864
sample 56:
time = 650666
flags = 1
data = length 57, hash D4A9B60A
sample 57:
time = 653333
flags = 1
data = length 52, hash 302129DA
sample 58:
time = 656000
flags = 1
data = length 57, hash D8DD99C0
sample 59:
time = 658666
flags = 1
data = length 206, hash F4B9EF26
sample 60:
time = 670666
flags = 1
data = length 197, hash 7B8ACC8A
sample 61:
time = 692000
flags = 1
data = length 186, hash 161027CB
sample 62:
time = 713333
flags = 1
data = length 186, hash 1D6871B6
sample 63:
time = 734666
flags = 1
data = length 201, hash 536E9FDB
sample 64:
time = 756000
flags = 1
data = length 192, hash D38EFAC5
sample 65:
time = 777333
flags = 1
data = length 194, hash 4B394EF3
sample 66:
time = 798666
flags = 1
data = length 206, hash 1B31BA99
sample 67:
time = 820000
flags = 1
data = length 212, hash AD061F43
sample 68:
time = 841333
flags = 1
data = length 180, hash 6D1F7481
sample 69:
time = 862666
flags = 1
data = length 195, hash D80B21F
sample 70:
time = 884000
flags = 1
data = length 186, hash D367882
sample 71:
time = 905333
flags = 1
data = length 195, hash 2722159A
sample 72:
time = 926666
flags = 1
data = length 199, hash 10CEE97A
sample 73:
time = 948000
flags = 1
data = length 191, hash 2CF9FB3F
sample 74:
time = 969333
flags = 1
data = length 197, hash A725DA0
sample 75:
time = 990666
flags = 1
data = length 211, hash D4E5DB9E
sample 76:
time = 1012000
flags = 1
data = length 189, hash 1A90F496
sample 77:
time = 1033333
flags = 1
data = length 187, hash 44DB2689
sample 78:
time = 1054666
flags = 1
data = length 197, hash 6D3E5117
sample 79:
time = 1076000
flags = 1
data = length 208, hash 5B57B288
sample 80:
time = 1097333
flags = 1
data = length 198, hash D5FC05
sample 81:
time = 1118666
flags = 1
data = length 192, hash 350BBA45
sample 82:
time = 1140000
flags = 1
data = length 195, hash 5F96F2A8
sample 83:
time = 1161333
flags = 1
data = length 202, hash 61D7CC33
sample 84:
time = 1182666
flags = 1
data = length 202, hash 49D335F2
sample 85:
time = 1204000
flags = 1
data = length 192, hash 2FE9CB1A
sample 86:
time = 1225333
flags = 1
data = length 201, hash BF0763B2
sample 87:
time = 1246666
flags = 1
data = length 184, hash AD047421
sample 88:
time = 1268000
flags = 1
data = length 196, hash F9088F14
sample 89:
time = 1289333
flags = 1
data = length 190, hash AC6D38FD
sample 90:
time = 1310666
flags = 1
data = length 195, hash 8D1A66D2
sample 91:
time = 1332000
flags = 1
data = length 197, hash B46BFB6B
sample 92:
time = 1353333
flags = 1
data = length 195, hash D9761F23
sample 93:
time = 1374666
flags = 1
data = length 204, hash 3391B617
sample 94:
time = 1396000
flags = 1
data = length 42, hash 33A1FB52
sample 95:
time = 1408000
flags = 1
data = length 44, hash 408B146E
sample 96:
time = 1410666
flags = 1
data = length 44, hash 171C7E0D
sample 97:
time = 1413333
flags = 1
data = length 54, hash 6307E16C
sample 98:
time = 1416000
flags = 1
data = length 53, hash 4A319572
sample 99:
time = 1418666
flags = 1
data = length 215, hash BA9C445C
sample 100:
time = 1430666
flags = 1
data = length 201, hash 3120D234
sample 101:
time = 1452000
flags = 1
data = length 187, hash DB44993C
sample 102:
time = 1473333
flags = 1
data = length 196, hash CF2002D7
sample 103:
time = 1494666
flags = 1
data = length 185, hash E03B5D7
sample 104:
time = 1516000
flags = 1
data = length 187, hash DA399A2C
sample 105:
time = 1537333
flags = 1
data = length 191, hash 292AA0DB
sample 106:
time = 1558666
flags = 1
data = length 201, hash 221910E0
sample 107:
time = 1580000
flags = 1
data = length 194, hash F4ED7821
sample 108:
time = 1601333
flags = 1
data = length 43, hash FDDA515E
sample 109:
time = 1613333
flags = 1
data = length 42, hash F3571C0A
sample 110:
time = 1616000
flags = 1
data = length 38, hash 39F910B3
sample 111:
time = 1618666
flags = 1
data = length 41, hash 2D189531
sample 112:
time = 1621333
flags = 1
data = length 43, hash 1F7574DB
sample 113:
time = 1624000
flags = 1
data = length 43, hash 644D15E5
sample 114:
time = 1626666
flags = 1
data = length 49, hash E8A0878
sample 115:
time = 1629333
flags = 1
data = length 55, hash DFF2046D
sample 116:
time = 1632000
flags = 1
data = length 49, hash 9FB8A23
sample 117:
time = 1634666
flags = 1
data = length 41, hash E3E15E3B
sample 118:
time = 1637333
flags = 1
data = length 42, hash E5D17A32
sample 119:
time = 1640000
flags = 1
data = length 42, hash F308B653
sample 120:
time = 1642666
flags = 1
data = length 55, hash BB750D76
sample 121:
time = 1645333
flags = 1
data = length 51, hash 96772ABF
sample 122:
time = 1648000
flags = 1
data = length 197, hash E4524346
sample 123:
time = 1660000
flags = 1
data = length 188, hash AC3E1BB5
sample 124:
time = 1681333
flags = 1
data = length 195, hash F56DB8A5
sample 125:
time = 1702666
flags = 1
data = length 198, hash C8970FF7
sample 126:
time = 1724000
flags = 1
data = length 202, hash AF425C68
sample 127:
time = 1745333
flags = 1
data = length 196, hash 4215D839
sample 128:
time = 1766666
flags = 1
data = length 204, hash DB9BE8E3
sample 129:
time = 1788000
flags = 1
data = length 206, hash E5B20AB8
sample 130:
time = 1809333
flags = 1
data = length 209, hash D7F47B95
sample 131:
time = 1830666
flags = 1
data = length 193, hash FB54FB05
sample 132:
time = 1852000
flags = 1
data = length 199, hash D99C3106
sample 133:
time = 1873333
flags = 1
data = length 206, hash 253885B9
sample 134:
time = 1894666
flags = 1
data = length 191, hash FBDD8162
sample 135:
time = 1916000
flags = 1
data = length 183, hash 7290332F
sample 136:
time = 1937333
flags = 1
data = length 189, hash 1A9DC3DE
sample 137:
time = 1958666
flags = 1
data = length 201, hash 5D936764
sample 138:
time = 1980000
flags = 1
data = length 193, hash 6B03E75E
sample 139:
time = 2001333
flags = 1
data = length 199, hash 8A21BA83
sample 140:
time = 2022666
flags = 1
data = length 41, hash E6362210
sample 141:
time = 2034666
flags = 1
data = length 43, hash 36A57B44
sample 142:
time = 2037333
flags = 1
data = length 43, hash E51797D5
sample 143:
time = 2040000
flags = 1
data = length 43, hash 1F336C72
sample 144:
time = 2042666
flags = 1
data = length 42, hash 201AD367
sample 145:
time = 2045333
flags = 1
data = length 50, hash 606CCD6
sample 146:
time = 2048000
flags = 1
data = length 56, hash B15EBD7A
sample 147:
time = 2050666
flags = 1
data = length 212, hash 273B8D22
sample 148:
time = 2062666
flags = 1
data = length 194, hash 44F9CE1
sample 149:
time = 2084000
flags = 1
data = length 195, hash EDF9EBA1
sample 150:
time = 2105333
flags = 1
data = length 194, hash CE9F2D26
sample 151:
time = 2126666
flags = 1
data = length 192, hash 204F8A23
sample 152:
time = 2148000
flags = 1
data = length 206, hash DFA57E67
sample 153:
time = 2169333
flags = 1
data = length 196, hash 3CF084AB
sample 154:
time = 2190666
flags = 1
data = length 202, hash 2AF75C08
sample 155:
time = 2212000
flags = 1
data = length 203, hash 748EAF7
sample 156:
time = 2233333
flags = 1
data = length 205, hash ED82379D
sample 157:
time = 2254666
flags = 1
data = length 193, hash 61F26F22
sample 158:
time = 2276000
flags = 1
data = length 189, hash 85EF1D20
sample 159:
time = 2297333
flags = 1
data = length 187, hash 25E41FBF
sample 160:
time = 2318666
flags = 1
data = length 199, hash F365808
sample 161:
time = 2340000
flags = 1
data = length 197, hash 94205329
sample 162:
time = 2361333
flags = 1
data = length 201, hash FA2B2055
sample 163:
time = 2382666
flags = 1
data = length 194, hash AF95381F
sample 164:
time = 2404000
flags = 1
data = length 201, hash 923D3534
sample 165:
time = 2425333
flags = 1
data = length 198, hash 35F84C2E
sample 166:
time = 2446666
flags = 1
data = length 204, hash 6642CA40
sample 167:
time = 2468000
flags = 1
data = length 183, hash 3E2DC6BE
sample 168:
time = 2489333
flags = 1
data = length 197, hash B1E458CE
sample 169:
time = 2510666
flags = 1
data = length 193, hash E9218C84
sample 170:
time = 2532000
flags = 1
data = length 192, hash FEF08D4B
sample 171:
time = 2553333
flags = 1
data = length 201, hash FC411147
sample 172:
time = 2574666
flags = 1
data = length 218, hash 86893464
sample 173:
time = 2596000
flags = 1
data = length 226, hash 31C5320
sample 174:
time = 2617333
flags = 1
data = length 233, hash 9432BEE5
sample 175:
time = 2638666
flags = 1
data = length 213, hash B3FCC53E
sample 176:
time = 2660000
flags = 1
data = length 204, hash D70DD5A2
sample 177:
time = 2681333
flags = 1
data = length 212, hash A4EF1B69
sample 178:
time = 2702666
flags = 1
data = length 203, hash 8B0748B5
sample 179:
time = 2724000
flags = 1
data = length 149, hash E455335B
tracksEnded = true

View File

@ -15,14 +15,10 @@
*/
package com.google.android.exoplayer.extractor.ogg;
import com.google.android.exoplayer.C;
import com.google.android.exoplayer.Format;
import com.google.android.exoplayer.extractor.SeekMap;
import com.google.android.exoplayer.testutil.FakeExtractorInput;
import com.google.android.exoplayer.testutil.FakeExtractorOutput;
import com.google.android.exoplayer.testutil.FakeTrackOutput;
import com.google.android.exoplayer.testutil.TestUtil;
import com.google.android.exoplayer.util.MimeTypes;
import android.test.InstrumentationTestCase;
@ -31,29 +27,28 @@ import android.test.InstrumentationTestCase;
*/
public final class OggExtractorFileTests extends InstrumentationTestCase {
public static final String OPUS_TEST_FILE = "ogg/bear.opus";
public static final String FLAC_TEST_FILE = "ogg/bear_flac.ogg";
public static final String FLAC_NS_TEST_FILE = "ogg/bear_flac_noseektable.ogg";
public static final String VORBIS_TEST_FILE = "ogg/bear_vorbis.ogg";
private static final String OPUS_TEST_FILE = "ogg/bear.opus";
private static final String FLAC_TEST_FILE = "ogg/bear_flac.ogg";
private static final String FLAC_NS_TEST_FILE = "ogg/bear_flac_noseektable.ogg";
private static final String VORBIS_TEST_FILE = "ogg/bear_vorbis.ogg";
private static final String DUMP_EXTENSION = ".dump";
private static final String UNKNOWN_LENGTH_EXTENSION = ".unklen";
public void testOpus() throws Exception {
parseFile(OPUS_TEST_FILE, false, false, false, MimeTypes.AUDIO_OPUS, 2747500, 275);
parseFile(OPUS_TEST_FILE, false, true, false, MimeTypes.AUDIO_OPUS, C.UNSET_TIME_US, 275);
parseFile(OPUS_TEST_FILE, true, false, true, MimeTypes.AUDIO_OPUS, 2747500, 275);
parseFile(OPUS_TEST_FILE, true, true, true, MimeTypes.AUDIO_OPUS, C.UNSET_TIME_US, 275);
parseFile(OPUS_TEST_FILE);
}
public void testFlac() throws Exception {
testFlac(false, false, false);
testFlac(false, true, false);
testFlac(true, false, true);
testFlac(true, true, true);
for (int i = 0; i < 8; i++) {
testFlac((i & 1) != 0, (i & 2) != 0, (i & 4) != 0);
}
}
private void testFlac(boolean simulateIOErrors, boolean simulateUnknownLength,
boolean simulatePartialReads) throws Exception {
FakeTrackOutput trackOutput = parseFile(FLAC_TEST_FILE, simulateIOErrors, simulateUnknownLength,
simulatePartialReads, MimeTypes.AUDIO_FLAC, 2741000, 33);
FakeExtractorOutput extractorOutput = parseFile(FLAC_TEST_FILE, simulateIOErrors,
simulateUnknownLength, simulatePartialReads);
FakeTrackOutput trackOutput = extractorOutput.trackOutputs.get(0);
for (int i = 0; i < 33; i++) {
byte[] sampleData = trackOutput.getSampleData(i);
assertTrue(FlacReader.isAudioPacket(sampleData));
@ -61,22 +56,21 @@ public final class OggExtractorFileTests extends InstrumentationTestCase {
}
public void testFlacNoSeektable() throws Exception {
parseFile(FLAC_NS_TEST_FILE, false, false, false, MimeTypes.AUDIO_FLAC, 2741000, 33);
parseFile(FLAC_NS_TEST_FILE, false, true, false, MimeTypes.AUDIO_FLAC, C.UNSET_TIME_US, 33);
parseFile(FLAC_NS_TEST_FILE, true, false, true, MimeTypes.AUDIO_FLAC, 2741000, 33);
parseFile(FLAC_NS_TEST_FILE, true, true, true, MimeTypes.AUDIO_FLAC, C.UNSET_TIME_US, 33);
parseFile(FLAC_NS_TEST_FILE);
}
public void testVorbis() throws Exception {
parseFile(VORBIS_TEST_FILE, false, false, false, MimeTypes.AUDIO_VORBIS, 2741000, 180);
parseFile(VORBIS_TEST_FILE, false, true, false, MimeTypes.AUDIO_VORBIS, C.UNSET_TIME_US, 180);
parseFile(VORBIS_TEST_FILE, true, false, true, MimeTypes.AUDIO_VORBIS, 2741000, 180);
parseFile(VORBIS_TEST_FILE, true, true, true, MimeTypes.AUDIO_VORBIS, C.UNSET_TIME_US, 180);
parseFile(VORBIS_TEST_FILE);
}
private FakeTrackOutput parseFile(String testFile, boolean simulateIOErrors,
boolean simulateUnknownLength, boolean simulatePartialReads, String expectedMimeType,
long expectedDuration, int expectedSampleCount) throws Exception {
private void parseFile(String testFile) throws Exception {
for (int i = 0; i < 8; i++) {
parseFile(testFile, (i & 1) != 0, (i & 2) != 0, (i & 4) != 0);
}
}
private FakeExtractorOutput parseFile(String testFile, boolean simulateIOErrors,
boolean simulateUnknownLength, boolean simulatePartialReads) throws Exception {
byte[] fileData = TestUtil.getByteArray(getInstrumentation(), testFile);
FakeExtractorInput input = new FakeExtractorInput.Builder().setData(fileData)
.setSimulateIOErrors(simulateIOErrors)
@ -88,23 +82,14 @@ public final class OggExtractorFileTests extends InstrumentationTestCase {
input.resetPeekPosition();
FakeExtractorOutput extractorOutput = TestUtil.consumeTestData(extractor, input, true);
assertEquals(1, extractorOutput.trackOutputs.size());
FakeTrackOutput trackOutput = extractorOutput.trackOutputs.get(0);
assertNotNull(trackOutput);
String dumpFile = testFile;
if (simulateUnknownLength) {
dumpFile += UNKNOWN_LENGTH_EXTENSION;
}
dumpFile += DUMP_EXTENSION;
extractorOutput.assertOutput(getInstrumentation(), dumpFile);
Format format = trackOutput.format;
assertNotNull(format);
assertEquals(expectedMimeType, format.sampleMimeType);
assertEquals(48000, format.sampleRate);
assertEquals(2, format.channelCount);
SeekMap seekMap = extractorOutput.seekMap;
assertNotNull(seekMap);
assertEquals(expectedDuration, seekMap.getDurationUs());
assertEquals(expectedDuration != C.UNSET_TIME_US, seekMap.isSeekable());
trackOutput.assertSampleCount(expectedSampleCount);
return trackOutput;
return extractorOutput;
}
}

View File

@ -0,0 +1,91 @@
/*
* 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.testutil;
import com.google.android.exoplayer.C;
import java.util.Arrays;
import java.util.Locale;
/**
* Helper utility to dump field values.
*/
public final class Dumper {
/**
* Provides custom dump method.
*/
public interface Dumpable {
/**
* Dumps the fields of the object using the {@code dumper}.
* @param dumper The {@link Dumper} to be used to dump fields.
*/
void dump(Dumper dumper);
}
private static final int INDENT_SIZE_IN_SPACES = 2;
private final StringBuilder sb;
private int indent;
public Dumper() {
sb = new StringBuilder();
}
public Dumper add(String field, Object value) {
return addString(field + " = " + value + '\n');
}
public Dumper add(Dumpable object) {
object.dump(this);
return this;
}
public Dumper add(String field, byte[] value) {
String string = String.format(Locale.US, "%s = length %d, hash %X\n", field, value.length,
Arrays.hashCode(value));
return addString(string);
}
public Dumper addTime(String field, long time) {
return add(field, time == C.UNSET_TIME_US ? "UNSET TIME" : time);
}
public Dumper startBlock(String name) {
addString(name + ":\n");
indent += INDENT_SIZE_IN_SPACES;
return this;
}
public Dumper endBlock() {
indent -= INDENT_SIZE_IN_SPACES;
return this;
}
@Override
public String toString() {
return sb.toString();
}
private Dumper addString(String string) {
for (int i = 0; i < indent; i++) {
sb.append(' ');
}
sb.append(string);
return this;
}
}

View File

@ -18,15 +18,17 @@ package com.google.android.exoplayer.testutil;
import com.google.android.exoplayer.extractor.ExtractorOutput;
import com.google.android.exoplayer.extractor.SeekMap;
import android.app.Instrumentation;
import android.util.SparseArray;
import junit.framework.Assert;
import junit.framework.TestCase;
import java.io.IOException;
/**
* A fake {@link ExtractorOutput}.
*/
public final class FakeExtractorOutput implements ExtractorOutput {
public final class FakeExtractorOutput implements ExtractorOutput, Dumper.Dumpable {
private final boolean allowDuplicateTrackIds;
@ -86,4 +88,27 @@ public final class FakeExtractorOutput implements ExtractorOutput {
}
}
public void assertOutput(Instrumentation instrumentation, String dumpFile) throws IOException {
String dumpExpected = TestUtil.getString(instrumentation, dumpFile);
Assert.assertEquals(dumpExpected, new Dumper().add(this).toString());
}
@Override
public void dump(Dumper dumper) {
if (seekMap != null) {
dumper.startBlock("seekMap")
.add("isSeekable", seekMap.isSeekable())
.addTime("duration", seekMap.getDurationUs())
.add("getPosition(0)", seekMap.getPosition(0))
.endBlock();
}
dumper.add("numberOfTracks", numberOfTracks);
for (int i = 0; i < numberOfTracks; i++) {
dumper.startBlock("track " + trackOutputs.keyAt(i))
.add(trackOutputs.valueAt(i))
.endBlock();
}
dumper.add("tracksEnded", tracksEnded);
}
}

View File

@ -30,7 +30,7 @@ import java.util.Arrays;
/**
* A fake {@link TrackOutput}.
*/
public final class FakeTrackOutput implements TrackOutput {
public final class FakeTrackOutput implements TrackOutput, Dumper.Dumpable {
private final ArrayList<Long> sampleTimesUs;
private final ArrayList<Integer> sampleFlags;
@ -128,4 +128,49 @@ public final class FakeTrackOutput implements TrackOutput {
}
}
@Override
public void dump(Dumper dumper) {
dumper.startBlock("format")
.add("bitrate", format.bitrate)
.add("id", format.id)
.add("containerMimeType", format.containerMimeType)
.add("sampleMimeType", format.sampleMimeType)
.add("maxInputSize", format.maxInputSize)
.add("requiresSecureDecryption", format.requiresSecureDecryption)
.add("width", format.width)
.add("height", format.height)
.add("frameRate", format.frameRate)
.add("rotationDegrees", format.rotationDegrees)
.add("pixelWidthHeightRatio", format.pixelWidthHeightRatio)
.add("channelCount", format.channelCount)
.add("sampleRate", format.sampleRate)
.add("pcmEncoding", format.pcmEncoding)
.add("encoderDelay", format.encoderDelay)
.add("encoderPadding", format.encoderPadding)
.add("subsampleOffsetUs", format.subsampleOffsetUs)
.add("selectionFlags", format.selectionFlags)
.add("language", format.language)
.add("drmInitData", format.drmInitData != null ? format.drmInitData.hashCode() : "-");
dumper.startBlock("initializationData");
for (int i = 0; i < format.initializationData.size(); i++) {
dumper.add("data", format.initializationData.get(i));
}
dumper.endBlock().endBlock();
dumper.add("sample count", sampleTimesUs.size());
for (int i = 0; i < sampleTimesUs.size(); i++) {
dumper.startBlock("sample " + i)
.add("time", sampleTimesUs.get(i))
.add("flags", sampleFlags.get(i))
.add("data", getSampleData(i));
byte[] key = sampleEncryptionKeys.get(i);
if (key != null) {
dumper.add("encryption key", key);
}
dumper.endBlock();
}
}
}

View File

@ -153,6 +153,11 @@ public class TestUtil {
return Util.toByteArray(is);
}
public static String getString(Instrumentation instrumentation, String fileName)
throws IOException {
return new String(getByteArray(instrumentation, fileName));
}
private static FakeExtractorInput newExtractorInput(byte[] data) {
return new FakeExtractorInput.Builder().setData(data).build();
}