public class MediaSourceTestRunner extends Object
MediaSource tests.| Modifier and Type | Field | Description |
|---|---|---|
static int |
TIMEOUT_MS |
| Constructor | Description |
|---|---|
MediaSourceTestRunner(MediaSource mediaSource,
Allocator allocator) |
| Modifier and Type | Method | Description |
|---|---|---|
void |
assertCompletedManifestLoads(Integer... windowIndices) |
Asserts that the media source reported completed loads via
MediaSourceEventListener.onLoadCompleted(int, MediaPeriodId, LoadEventInfo, MediaLoadData) for
each specified window index and a null period id. |
void |
assertCompletedMediaPeriodLoads(MediaSource.MediaPeriodId... mediaPeriodIds) |
Asserts that the media source reported completed loads via
MediaSourceEventListener.onLoadCompleted(int, MediaPeriodId, LoadEventInfo, MediaLoadData) for
each specified media period id, and asserts that the associated window index matches the one in
the last known timeline returned from prepareSource(), assertTimelineChange()
or assertTimelineChangeBlocking(). |
void |
assertNoTimelineChange() |
Asserts that the source has not notified its listener of a timeline change since the last call
to
assertTimelineChangeBlocking() or assertTimelineChange() (or since the
runner was created if neither method has been called). |
void |
assertPrepareAndReleaseAllPeriods() |
Creates and releases all periods (including ad periods) defined in the last timeline to be
returned from
prepareSource(), assertTimelineChange() or assertTimelineChangeBlocking(). |
Timeline |
assertTimelineChange() |
Asserts that the source has notified its listener of a single timeline change.
|
Timeline |
assertTimelineChangeBlocking() |
Asserts that the source notifies its listener of a single timeline change.
|
MediaPeriod |
createPeriod(MediaSource.MediaPeriodId periodId) |
Calls
MediaSource.createPeriod(MediaSource.MediaPeriodId, Allocator, long) with a zero
start position on the playback thread, asserting that a non-null MediaPeriod is
returned. |
MediaPeriod |
createPeriod(MediaSource.MediaPeriodId periodId,
long startPositionUs) |
Calls
MediaSource.createPeriod(MediaSource.MediaPeriodId, Allocator, long) on the
playback thread, asserting that a non-null MediaPeriod is returned. |
CountDownLatch |
preparePeriod(MediaPeriod mediaPeriod,
long positionUs) |
Calls
MediaPeriod.prepare(MediaPeriod.Callback, long) on the playback thread and blocks
until the method has been called. |
Timeline |
prepareSource() |
Prepares the source on the playback thread, asserting that it provides an initial timeline.
|
void |
release() |
Releases the runner.
|
void |
releasePeriod(MediaPeriod mediaPeriod) |
Calls
MediaSource.releasePeriod(MediaPeriod) on the playback thread. |
void |
releaseSource() |
Calls
MediaSource.releaseSource(MediaSourceCaller) on the playback thread. |
void |
runOnPlaybackThread(Runnable runnable) |
Runs the provided
Runnable on the playback thread, blocking until execution completes. |
public static final int TIMEOUT_MS
public MediaSourceTestRunner(MediaSource mediaSource, Allocator allocator)
mediaSource - The source under test.allocator - The allocator to use during the test run.public void runOnPlaybackThread(Runnable runnable)
Runnable on the playback thread, blocking until execution completes.runnable - The Runnable to run.public Timeline prepareSource() throws IOException
Timeline.IOExceptionpublic MediaPeriod createPeriod(MediaSource.MediaPeriodId periodId)
MediaSource.createPeriod(MediaSource.MediaPeriodId, Allocator, long) with a zero
start position on the playback thread, asserting that a non-null MediaPeriod is
returned.periodId - The id of the period to create.MediaPeriod.public MediaPeriod createPeriod(MediaSource.MediaPeriodId periodId, long startPositionUs)
MediaSource.createPeriod(MediaSource.MediaPeriodId, Allocator, long) on the
playback thread, asserting that a non-null MediaPeriod is returned.periodId - The id of the period to create.MediaPeriod.public CountDownLatch preparePeriod(MediaPeriod mediaPeriod, long positionUs)
MediaPeriod.prepare(MediaPeriod.Callback, long) on the playback thread and blocks
until the method has been called.mediaPeriod - The MediaPeriod to prepare.positionUs - The position at which to prepare.CountDownLatch that will be counted down when preparation completes.public void releasePeriod(MediaPeriod mediaPeriod)
MediaSource.releasePeriod(MediaPeriod) on the playback thread.mediaPeriod - The MediaPeriod to release.public void releaseSource()
MediaSource.releaseSource(MediaSourceCaller) on the playback thread.public void assertNoTimelineChange()
assertTimelineChangeBlocking() or assertTimelineChange() (or since the
runner was created if neither method has been called).public Timeline assertTimelineChange()
Timeline.public Timeline assertTimelineChangeBlocking()
Timeline.public void assertPrepareAndReleaseAllPeriods()
throws InterruptedException
prepareSource(), assertTimelineChange() or assertTimelineChangeBlocking(). The MediaPeriodId.windowSequenceNumber is set to the
index of the window.InterruptedExceptionpublic void assertCompletedManifestLoads(Integer... windowIndices)
MediaSourceEventListener.onLoadCompleted(int, MediaPeriodId, LoadEventInfo, MediaLoadData) for
each specified window index and a null period id. Also asserts that no other loads with media
period id null are reported.public void assertCompletedMediaPeriodLoads(MediaSource.MediaPeriodId... mediaPeriodIds)
MediaSourceEventListener.onLoadCompleted(int, MediaPeriodId, LoadEventInfo, MediaLoadData) for
each specified media period id, and asserts that the associated window index matches the one in
the last known timeline returned from prepareSource(), assertTimelineChange()
or assertTimelineChangeBlocking().public void release()