mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Use TrackGroup instead of TrackSelection in FakeAdaptiveDataSet.
This was a bug as the data set should contain sample data for all available tracks. Also added a unit test. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=163806579
This commit is contained in:
parent
08faafb4c1
commit
1151104e2f
2 changed files with 12 additions and 12 deletions
|
|
@ -17,11 +17,11 @@ package com.google.android.exoplayer2.testutil;
|
||||||
|
|
||||||
import com.google.android.exoplayer2.C;
|
import com.google.android.exoplayer2.C;
|
||||||
import com.google.android.exoplayer2.Format;
|
import com.google.android.exoplayer2.Format;
|
||||||
import com.google.android.exoplayer2.trackselection.TrackSelection;
|
import com.google.android.exoplayer2.source.TrackGroup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fake data set emulating the data of an adaptive media source.
|
* Fake data set emulating the data of an adaptive media source.
|
||||||
* It provides chunk data for all {@link Format}s in the given {@link TrackSelection}.
|
* It provides chunk data for all {@link Format}s in the given {@link TrackGroup}.
|
||||||
*/
|
*/
|
||||||
public final class FakeAdaptiveDataSet extends FakeDataSet {
|
public final class FakeAdaptiveDataSet extends FakeDataSet {
|
||||||
|
|
||||||
|
|
@ -36,8 +36,8 @@ public final class FakeAdaptiveDataSet extends FakeDataSet {
|
||||||
this.chunkDurationUs = chunkDurationUs;
|
this.chunkDurationUs = chunkDurationUs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FakeAdaptiveDataSet createDataSet(TrackSelection trackSelection, long mediaDurationUs) {
|
public FakeAdaptiveDataSet createDataSet(TrackGroup trackGroup, long mediaDurationUs) {
|
||||||
return new FakeAdaptiveDataSet(trackSelection, mediaDurationUs, chunkDurationUs);
|
return new FakeAdaptiveDataSet(trackGroup, mediaDurationUs, chunkDurationUs);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -46,15 +46,14 @@ public final class FakeAdaptiveDataSet extends FakeDataSet {
|
||||||
private final long chunkDurationUs;
|
private final long chunkDurationUs;
|
||||||
private final long lastChunkDurationUs;
|
private final long lastChunkDurationUs;
|
||||||
|
|
||||||
public FakeAdaptiveDataSet(TrackSelection trackSelection, long mediaDurationUs,
|
public FakeAdaptiveDataSet(TrackGroup trackGroup, long mediaDurationUs, long chunkDurationUs) {
|
||||||
long chunkDurationUs) {
|
|
||||||
this.chunkDurationUs = chunkDurationUs;
|
this.chunkDurationUs = chunkDurationUs;
|
||||||
int selectionCount = trackSelection.length();
|
int trackCount = trackGroup.length;
|
||||||
long lastChunkDurationUs = mediaDurationUs % chunkDurationUs;
|
long lastChunkDurationUs = mediaDurationUs % chunkDurationUs;
|
||||||
int fullChunks = (int) (mediaDurationUs / chunkDurationUs);
|
int fullChunks = (int) (mediaDurationUs / chunkDurationUs);
|
||||||
for (int i = 0; i < selectionCount; i++) {
|
for (int i = 0; i < trackCount; i++) {
|
||||||
String uri = getUri(i);
|
String uri = getUri(i);
|
||||||
Format format = trackSelection.getFormat(i);
|
Format format = trackGroup.getFormat(i);
|
||||||
int chunkLength = (int) (format.bitrate * chunkDurationUs / (8 * C.MICROS_PER_SECOND));
|
int chunkLength = (int) (format.bitrate * chunkDurationUs / (8 * C.MICROS_PER_SECOND));
|
||||||
FakeData newData = this.newData(uri);
|
FakeData newData = this.newData(uri);
|
||||||
for (int j = 0; j < fullChunks; j++) {
|
for (int j = 0; j < fullChunks; j++) {
|
||||||
|
|
@ -74,8 +73,8 @@ public final class FakeAdaptiveDataSet extends FakeDataSet {
|
||||||
return chunkCount;
|
return chunkCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUri(int trackSelectionIndex) {
|
public String getUri(int trackIndex) {
|
||||||
return "fake://adaptive.media/" + Integer.toString(trackSelectionIndex);
|
return "fake://adaptive.media/" + trackIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getChunkDuration(int chunkIndex) {
|
public long getChunkDuration(int chunkIndex) {
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,8 @@ public final class FakeChunkSource implements ChunkSource {
|
||||||
}
|
}
|
||||||
|
|
||||||
public FakeChunkSource createChunkSource(TrackSelection trackSelection, long durationUs) {
|
public FakeChunkSource createChunkSource(TrackSelection trackSelection, long durationUs) {
|
||||||
FakeAdaptiveDataSet dataSet = dataSetFactory.createDataSet(trackSelection, durationUs);
|
FakeAdaptiveDataSet dataSet =
|
||||||
|
dataSetFactory.createDataSet(trackSelection.getTrackGroup(), durationUs);
|
||||||
dataSourceFactory.setFakeDataSet(dataSet);
|
dataSourceFactory.setFakeDataSet(dataSet);
|
||||||
DataSource dataSource = dataSourceFactory.createDataSource();
|
DataSource dataSource = dataSourceFactory.createDataSource();
|
||||||
return new FakeChunkSource(trackSelection, dataSource, dataSet);
|
return new FakeChunkSource(trackSelection, dataSource, dataSet);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue