Commit d3cdf525 by olly Committed by Oliver Woodman

Sanitize MappedTrackInfo API

Issue: #3915

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=193897041
parent c116391f
......@@ -711,11 +711,11 @@ public class PlayerActivity extends Activity
if (trackGroups != lastSeenTrackGroupArray) {
MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo();
if (mappedTrackInfo != null) {
if (mappedTrackInfo.getTrackTypeRendererSupport(C.TRACK_TYPE_VIDEO)
if (mappedTrackInfo.getTypeSupport(C.TRACK_TYPE_VIDEO)
== MappedTrackInfo.RENDERER_SUPPORT_UNSUPPORTED_TRACKS) {
showToast(R.string.error_unsupported_video);
}
if (mappedTrackInfo.getTrackTypeRendererSupport(C.TRACK_TYPE_AUDIO)
if (mappedTrackInfo.getTypeSupport(C.TRACK_TYPE_AUDIO)
== MappedTrackInfo.RENDERER_SUPPORT_UNSUPPORTED_TRACKS) {
showToast(R.string.error_unsupported_audio);
}
......
......@@ -137,7 +137,7 @@ import java.util.Arrays;
trackViewLayoutId, root, false);
trackView.setBackgroundResource(selectableItemBackgroundResourceId);
trackView.setText(DemoUtil.buildTrackName(group.getFormat(trackIndex)));
if (trackInfo.getTrackFormatSupport(rendererIndex, groupIndex, trackIndex)
if (trackInfo.getTrackSupport(rendererIndex, groupIndex, trackIndex)
== RendererCapabilities.FORMAT_HANDLED) {
trackView.setFocusable(true);
trackView.setTag(Pair.create(groupIndex, trackIndex));
......
......@@ -170,7 +170,8 @@ public class EventLogger
}
logd("Tracks [");
// Log tracks associated to renderers.
for (int rendererIndex = 0; rendererIndex < mappedTrackInfo.length; rendererIndex++) {
int rendererCount = mappedTrackInfo.getRendererCount();
for (int rendererIndex = 0; rendererIndex < rendererCount; rendererIndex++) {
TrackGroupArray rendererTrackGroups = mappedTrackInfo.getTrackGroups(rendererIndex);
TrackSelection trackSelection = trackSelections.get(rendererIndex);
if (rendererTrackGroups.length > 0) {
......@@ -186,7 +187,7 @@ public class EventLogger
String status = getTrackStatusString(trackSelection, trackGroup, trackIndex);
String formatSupport =
getFormatSupportString(
mappedTrackInfo.getTrackFormatSupport(rendererIndex, groupIndex, trackIndex));
mappedTrackInfo.getTrackSupport(rendererIndex, groupIndex, trackIndex));
logd(
" "
+ status
......@@ -215,7 +216,7 @@ public class EventLogger
}
}
// Log tracks not associated with a renderer.
TrackGroupArray unassociatedTrackGroups = mappedTrackInfo.getUnassociatedTrackGroups();
TrackGroupArray unassociatedTrackGroups = mappedTrackInfo.getUnmappedTrackGroups();
if (unassociatedTrackGroups.length > 0) {
logd(" Renderer:None [");
for (int groupIndex = 0; groupIndex < unassociatedTrackGroups.length; groupIndex++) {
......
......@@ -93,7 +93,7 @@ public final class MappingTrackSelectorTest {
/**
* A {@link MappingTrackSelector} that stashes the {@link MappedTrackInfo} passed to {@link
* #selectTracks(RendererCapabilities[], MappedTrackInfo)}.
* #selectTracks(MappedTrackInfo, int[][][], int[])}.
*/
private static final class FakeMappingTrackSelector extends MappingTrackSelector {
......@@ -101,12 +101,14 @@ public final class MappingTrackSelectorTest {
@Override
protected Pair<RendererConfiguration[], TrackSelection[]> selectTracks(
RendererCapabilities[] rendererCapabilities, MappedTrackInfo mappedTrackInfo)
MappedTrackInfo mappedTrackInfo,
int[][][] rendererFormatSupports,
int[] rendererMixedMimeTypeAdaptationSupports)
throws ExoPlaybackException {
int rendererCount = mappedTrackInfo.getRendererCount();
lastMappedTrackInfo = mappedTrackInfo;
return Pair.create(
new RendererConfiguration[rendererCapabilities.length],
new TrackSelection[rendererCapabilities.length]);
new RendererConfiguration[rendererCount], new TrackSelection[rendererCount]);
}
public void assertMappedTrackGroups(int rendererIndex, TrackGroup... expected) {
......
......@@ -15,6 +15,6 @@
<string name="exo_downloading">Изтегля се</string>
<string name="exo_download_completed">Изтеглянето завърши</string>
<string name="exo_download_failed">Изтеглянето не бе успешно</string>
<string name="exo_track_selection_none">None</string>
<string name="exo_track_selection_auto">Auto</string>
<string name="exo_track_selection_none">Нищо</string>
<string name="exo_track_selection_auto">Автоматично</string>
</resources>
......@@ -15,6 +15,6 @@
<string name="exo_downloading">Mendownload</string>
<string name="exo_download_completed">Download selesai</string>
<string name="exo_download_failed">Download gagal</string>
<string name="exo_track_selection_none">None</string>
<string name="exo_track_selection_auto">Auto</string>
<string name="exo_track_selection_none">Tidak ada</string>
<string name="exo_track_selection_auto">Otomatis</string>
</resources>
......@@ -15,6 +15,6 @@
<string name="exo_downloading">ဒေါင်းလုဒ်လုပ်နေသည်</string>
<string name="exo_download_completed">ဒေါင်းလုဒ်လုပ်ပြီးပါပြီ</string>
<string name="exo_download_failed">ဒေါင်းလုဒ်လုပ်၍ မရပါ</string>
<string name="exo_track_selection_none">None</string>
<string name="exo_track_selection_auto">Auto</string>
<string name="exo_track_selection_none">မရှိ</string>
<string name="exo_track_selection_auto">အလိုအလျောက်</string>
</resources>
......@@ -15,6 +15,6 @@
<string name="exo_downloading">Se descarcă</string>
<string name="exo_download_completed">Descărcarea a fost finalizată</string>
<string name="exo_download_failed">Descărcarea nu a reușit</string>
<string name="exo_track_selection_none">None</string>
<string name="exo_track_selection_auto">Auto</string>
<string name="exo_track_selection_none">Fără</string>
<string name="exo_track_selection_auto">Automat</string>
</resources>
......@@ -15,6 +15,6 @@
<string name="exo_downloading">බාගනිමින්</string>
<string name="exo_download_completed">බාගැනීම සම්පූර්ණ කරන ලදී</string>
<string name="exo_download_failed">බාගැනීම අසමත් විය</string>
<string name="exo_track_selection_none">None</string>
<string name="exo_track_selection_auto">Auto</string>
<string name="exo_track_selection_none">කිසිවක් නැත</string>
<string name="exo_track_selection_auto">ස්වයං</string>
</resources>
......@@ -395,23 +395,25 @@ public final class DashTestRunner {
@Override
protected TrackSelection[] selectAllTracks(
RendererCapabilities[] rendererCapabilities, MappedTrackInfo mappedTrackInfo)
MappedTrackInfo mappedTrackInfo,
int[][][] rendererFormatSupports,
int[] rendererMixedMimeTypeAdaptationSupports)
throws ExoPlaybackException {
Assertions.checkState(rendererCapabilities[VIDEO_RENDERER_INDEX].getTrackType()
== C.TRACK_TYPE_VIDEO);
Assertions.checkState(rendererCapabilities[AUDIO_RENDERER_INDEX].getTrackType()
== C.TRACK_TYPE_AUDIO);
Assertions.checkState(
mappedTrackInfo.getRendererType(VIDEO_RENDERER_INDEX) == C.TRACK_TYPE_VIDEO);
Assertions.checkState(
mappedTrackInfo.getRendererType(AUDIO_RENDERER_INDEX) == C.TRACK_TYPE_AUDIO);
TrackGroupArray videoTrackGroups = mappedTrackInfo.getTrackGroups(VIDEO_RENDERER_INDEX);
TrackGroupArray audioTrackGroups = mappedTrackInfo.getTrackGroups(AUDIO_RENDERER_INDEX);
Assertions.checkState(videoTrackGroups.length == 1);
Assertions.checkState(audioTrackGroups.length == 1);
TrackSelection[] selections = new TrackSelection[rendererCapabilities.length];
TrackSelection[] selections = new TrackSelection[mappedTrackInfo.getRendererCount()];
selections[VIDEO_RENDERER_INDEX] =
new RandomTrackSelection(
videoTrackGroups.get(0),
getVideoTrackIndices(
videoTrackGroups.get(0),
mappedTrackInfo.getRendererTrackSupport(VIDEO_RENDERER_INDEX)[0],
rendererFormatSupports[VIDEO_RENDERER_INDEX][0],
videoFormatIds,
canIncludeAdditionalVideoFormats),
0 /* seed */);
......@@ -423,8 +425,11 @@ public final class DashTestRunner {
return selections;
}
private int[] getVideoTrackIndices(TrackGroup trackGroup, int[] formatSupport,
String[] formatIds, boolean canIncludeAdditionalFormats) {
private int[] getVideoTrackIndices(
TrackGroup trackGroup,
int[] formatSupports,
String[] formatIds,
boolean canIncludeAdditionalFormats) {
List<Integer> trackIndices = new ArrayList<>();
// Always select explicitly listed representations.
......@@ -438,7 +443,7 @@ public final class DashTestRunner {
// Select additional video representations, if supported by the device.
if (canIncludeAdditionalFormats) {
for (int i = 0; i < trackGroup.length; i++) {
if (!trackIndices.contains(i) && isFormatHandled(formatSupport[i])) {
if (!trackIndices.contains(i) && isFormatHandled(formatSupports[i])) {
Log.d(tag, "Adding extra video format: "
+ Format.toLogString(trackGroup.getFormat(i)));
trackIndices.add(i);
......
......@@ -17,7 +17,6 @@ package com.google.android.exoplayer2.testutil;
import android.support.annotation.NonNull;
import com.google.android.exoplayer2.ExoPlaybackException;
import com.google.android.exoplayer2.RendererCapabilities;
import com.google.android.exoplayer2.source.TrackGroup;
import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
......@@ -47,7 +46,9 @@ public class FakeTrackSelector extends DefaultTrackSelector {
@Override
protected TrackSelection[] selectAllTracks(
RendererCapabilities[] rendererCapabilities, MappedTrackInfo mappedTrackInfo)
MappedTrackInfo mappedTrackInfo,
int[][][] rendererFormatSupports,
int[] rendererMixedMimeTypeAdaptationSupports)
throws ExoPlaybackException {
TrackSelection[] selections = new TrackSelection[mappedTrackInfo.length];
for (int i = 0; i < mappedTrackInfo.length; i++) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment