The new actions are: prepare source, set repeat mode, wait for timeline
change, wait for position discontinuity, execute Runnable.
Moreover, this change removes the restriction of using a SimpleExoPlayer to
allow ActionSchedule to be used in other scenarios.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162918554
This class extends the existing FakeMediaSource by creating a
FakeAdaptiveMediaPeriod instead of a FakeMediaPeriod.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162918487
This class extends the existing FakeMediaPeriod by using a ChunkSampleStream
with chunks from a FakeChunkSource instead of a FakeSampleStream.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162916656
This chunk source retuns SimpleSampleMediaChunks based on the data definition
of a FakeAdaptiveDataSet.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162351688
The FakeClock allows to simulate timing behaviour including sleep time
for test cases.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162345258
Currently the renderer is only ready when the input stream has more data to
read. Actual renderers, however, are also ready as long as their output buffer
contains some audio/video samples to play, roughly corresponding to the fact
that the playback time hasn't reached the timestamp of the last buffered
sample. Added a isready flag to FakeRenderer to simulate this behaviour.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162343074
Extensions can perform additional actions whenever data is read (e.g. sleeping
to simulate bandwidth restrictions).
Additionally, the factory class can also be overwritten and allows to set the
FakeDataSet later in case it is not available right away.
Moreover, this class now also uses a transfer listener similar to all real data sources.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162326000
The value is automatically set at creation and allows simpler access to the
faked data position within the source.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162218095
This class defines the data of an adaptive media source. It currently has
chunks of equal length and size corresponding to the declared average bitrate
of the Formats.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162208008
This enables adaptive media test cases using TrackGroups with multiple
Formats.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162182005
This allows to create extensions of FakeDataSet and also simplifies the
FakeDataSource class.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162180952
This includes a metric logger class which logs events and generates metrics, and some changes to the Perfgate benchmark config to add the metrics. So far, only rebuffer counts, rebuffer time and startup time are measured, together with auxiliary values of total playback time used for testing and number of playback failures.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=161513672
This cleans up test the TestUtil class that in large parts consisted of
assertions for Extractor tests.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=160829066
This also ensures that TimelineAsserts only contains assert methods.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=160827271
They serve the same purpose. One was defined as single window, multi-period
timeline, while the other was a multi-window, single-period-each timeline.
The combined FakeTimeline uses TimelineWindowDefinitions which allow multi-
window, multi-period fake timelines.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=160808844
Fake ExoPlayer componenets used within ExoPlayerTest.java can be useful for
other test classes and are therefore made available in testutils.
They can also be merged with other existing fake components.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=160632908
Some parts of TimelineTest provided common assertions and helper classes for
other tests. As such, they better fit into testutils. In line with other
assertion methods, the TimelineVerifier class has been converted to a set of
static assertion methods.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=160629797
Modified old testRemoveAction to test removing content after it's fully downloaded.
Added a new testRemoveBeforeDownloadComplete which tests removing content before it's fully downloaded.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=160507573
If open() fails because of the file isn't available then fakeData is null.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=160249214
CacheAsserts contains cache assertion methods for testing. It's easier to use in tests than DashDownloadTestBase which requires to be extended.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=159688808
An actions is triggered when the reading reaches action's position. This can be
used to make sure the code is in a certain state while testing.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=159545923
Added option to fail on timeout. Also reset internals in all cases
such that the activity can be used more than once.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=159419176
This allows other tests to reuse the util classes without having to link to playbacktests.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=158214560
This will allow supporting more encryption schemes. Including some
that require more encryption data, like the encryption pattern.
Issue:#1661
Issue:#1989
Issue:#2089
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=155481889
This allows binding by track type in ChunkExtractorWrapper, which
allows the EMSG and 608 tracks to be enabled on FragmentedMp4Extractor
in DefaultDashChunkSource. ChunkExtractorWrapper currently binds these
to DummyTrackOutputs.
Note: I wanted to pass the mimeType instead, since it's a more specific,
but unfortunately there's at least one place where it's not known at the
point of invoking track() (FlvExtractor).
Issue #2176
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=146471082
These currently lead to cryptic ArrayIndexOutOfBoundsExceptions being thrown from System.arraycopy() so my proposal is to throw a more useful ParserException instead.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142087132
This requires knowing the seek time in Extractor.seek, so that it's possible to
pick the latest synchronization sample at/before the seek time for each track
(rather than the earliest synchronization sample after the seek position).
Also remove the STATE_AFTER_SEEK state which should no longer be needed.
Issue: #2167
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=141432598
The method track(int id) currently has different behaviours across
implementations. This CL maps ids to track outputs, which means
that successive calls with the same id will return the same
TrackOutput instance. Also fixes TsExtractor inconsistent behavior
after a seek.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136026721
Also add a test MP3 stream with one frame.
Make FakeExtractorInput's end of input detection to apply also for peekFully, and
make its skip and read methods read at least one byte.
Issue: #1732
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=133241641
- Use a single constant for unset/unknown times across
all time bases. Note also that this moves away from
use of -1 for unset/unknown times in ms, which was a
bad choice (it might conflict with real times, such
as a time representing being just behind the start
of a live window).
- Add a few other unset constants, and use them.
- Fix some hardcoding of -1 where existing constants
should have been used.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130775594