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