Always include extension renderers in SimplePlayer.
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=123868547
This commit is contained in:
parent
4888592c76
commit
00aef6ddb7
@ -87,7 +87,7 @@ public class PlayerActivity extends Activity implements SurfaceHolder.Callback,
|
|||||||
public static final String DRM_SCHEME_UUID_EXTRA = "drm_scheme_uuid";
|
public static final String DRM_SCHEME_UUID_EXTRA = "drm_scheme_uuid";
|
||||||
public static final String DRM_CONTENT_ID_EXTRA = "drm_content_id";
|
public static final String DRM_CONTENT_ID_EXTRA = "drm_content_id";
|
||||||
public static final String DRM_PROVIDER_EXTRA = "drm_provider";
|
public static final String DRM_PROVIDER_EXTRA = "drm_provider";
|
||||||
public static final String USE_EXTENSION_DECODERS = "use_extension_decoders";
|
public static final String PREFER_EXTENSION_DECODERS = "prefer_extension_decoders";
|
||||||
|
|
||||||
// For use when launching the demo app using adb.
|
// For use when launching the demo app using adb.
|
||||||
public static final String ACTION_VIEW = "com.google.android.exoplayer.demo.action.VIEW";
|
public static final String ACTION_VIEW = "com.google.android.exoplayer.demo.action.VIEW";
|
||||||
@ -246,7 +246,7 @@ public class PlayerActivity extends Activity implements SurfaceHolder.Callback,
|
|||||||
private void initializePlayer() {
|
private void initializePlayer() {
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
boolean useExtensionDecoders = intent.getBooleanExtra(USE_EXTENSION_DECODERS, false);
|
boolean preferExtensionDecoders = intent.getBooleanExtra(PREFER_EXTENSION_DECODERS, false);
|
||||||
UUID drmSchemeUuid = (UUID) intent.getSerializableExtra(DRM_SCHEME_UUID_EXTRA);
|
UUID drmSchemeUuid = (UUID) intent.getSerializableExtra(DRM_SCHEME_UUID_EXTRA);
|
||||||
DrmSessionManager drmSessionManager = null;
|
DrmSessionManager drmSessionManager = null;
|
||||||
if (drmSchemeUuid != null) {
|
if (drmSchemeUuid != null) {
|
||||||
@ -266,7 +266,7 @@ public class PlayerActivity extends Activity implements SurfaceHolder.Callback,
|
|||||||
trackSelector.addListener(eventLogger);
|
trackSelector.addListener(eventLogger);
|
||||||
trackSelectionHelper = new TrackSelectionHelper(trackSelector);
|
trackSelectionHelper = new TrackSelectionHelper(trackSelector);
|
||||||
player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, drmSessionManager,
|
player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, drmSessionManager,
|
||||||
useExtensionDecoders);
|
preferExtensionDecoders);
|
||||||
player.addListener(this);
|
player.addListener(this);
|
||||||
player.addListener(eventLogger);
|
player.addListener(eventLogger);
|
||||||
player.setDebugListener(eventLogger);
|
player.setDebugListener(eventLogger);
|
||||||
|
@ -97,7 +97,7 @@ public class SampleChooserActivity extends Activity {
|
|||||||
.putExtra(PlayerActivity.DRM_SCHEME_UUID_EXTRA, sample.drmSchemeUuid)
|
.putExtra(PlayerActivity.DRM_SCHEME_UUID_EXTRA, sample.drmSchemeUuid)
|
||||||
.putExtra(PlayerActivity.DRM_CONTENT_ID_EXTRA, sample.drmContentId)
|
.putExtra(PlayerActivity.DRM_CONTENT_ID_EXTRA, sample.drmContentId)
|
||||||
.putExtra(PlayerActivity.DRM_PROVIDER_EXTRA, sample.drmProvider)
|
.putExtra(PlayerActivity.DRM_PROVIDER_EXTRA, sample.drmProvider)
|
||||||
.putExtra(PlayerActivity.USE_EXTENSION_DECODERS, sample.useExtensionDecoders);
|
.putExtra(PlayerActivity.PREFER_EXTENSION_DECODERS, sample.preferExtensionDecoders);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ public class SampleChooserActivity extends Activity {
|
|||||||
UUID drmUuid = null;
|
UUID drmUuid = null;
|
||||||
String drmContentId = null;
|
String drmContentId = null;
|
||||||
String drmProvider = null;
|
String drmProvider = null;
|
||||||
boolean useExtensionDecoders = false;
|
boolean preferExtensionDecoders = false;
|
||||||
|
|
||||||
reader.beginObject();
|
reader.beginObject();
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
@ -191,8 +191,8 @@ public class SampleChooserActivity extends Activity {
|
|||||||
drmContentId = drmComponents[1];
|
drmContentId = drmComponents[1];
|
||||||
drmProvider = drmComponents[2];
|
drmProvider = drmComponents[2];
|
||||||
break;
|
break;
|
||||||
case "use_extension_decoders":
|
case "prefer_extension_decoders":
|
||||||
useExtensionDecoders = reader.nextBoolean();
|
preferExtensionDecoders = reader.nextBoolean();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -202,7 +202,7 @@ public class SampleChooserActivity extends Activity {
|
|||||||
throw new ParserException("Invalid sample (name or uri missing)");
|
throw new ParserException("Invalid sample (name or uri missing)");
|
||||||
}
|
}
|
||||||
return new Sample(sampleName, uri, type, drmUuid, drmContentId, drmProvider,
|
return new Sample(sampleName, uri, type, drmUuid, drmContentId, drmProvider,
|
||||||
useExtensionDecoders);
|
preferExtensionDecoders);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SampleGroup getGroup(String groupName, List<SampleGroup> groups) {
|
private SampleGroup getGroup(String groupName, List<SampleGroup> groups) {
|
||||||
@ -341,17 +341,17 @@ public class SampleChooserActivity extends Activity {
|
|||||||
public final UUID drmSchemeUuid;
|
public final UUID drmSchemeUuid;
|
||||||
public final String drmContentId;
|
public final String drmContentId;
|
||||||
public final String drmProvider;
|
public final String drmProvider;
|
||||||
public final boolean useExtensionDecoders;
|
public final boolean preferExtensionDecoders;
|
||||||
|
|
||||||
public Sample(String name, String uri, int type, UUID drmSchemeUuid, String drmContentId,
|
public Sample(String name, String uri, int type, UUID drmSchemeUuid, String drmContentId,
|
||||||
String drmProvider, boolean useExtensionDecoders) {
|
String drmProvider, boolean preferExtensionDecoders) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.uri = uri;
|
this.uri = uri;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.drmSchemeUuid = drmSchemeUuid;
|
this.drmSchemeUuid = drmSchemeUuid;
|
||||||
this.drmContentId = drmContentId;
|
this.drmContentId = drmContentId;
|
||||||
this.drmProvider = drmProvider;
|
this.drmProvider = drmProvider;
|
||||||
this.useExtensionDecoders = useExtensionDecoders;
|
this.preferExtensionDecoders = preferExtensionDecoders;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -61,13 +61,13 @@ public final class ExoPlayerFactory {
|
|||||||
* @param trackSelector The {@link TrackSelector} that will be used by the instance.
|
* @param trackSelector The {@link TrackSelector} that will be used by the instance.
|
||||||
* @param drmSessionManager An optional {@link DrmSessionManager}. May be null if the instance
|
* @param drmSessionManager An optional {@link DrmSessionManager}. May be null if the instance
|
||||||
* will not be used for DRM protected playbacks.
|
* will not be used for DRM protected playbacks.
|
||||||
* @param useExtensionDecoders True to include {@link TrackRenderer} instances defined in
|
* @param preferExtensionDecoders True to prefer {@link TrackRenderer} instances defined in
|
||||||
* available extensions. Note that the required extensions must be included in the application
|
* available extensions over those defined in the core library. Note that extensions must be
|
||||||
* build for setting this flag to have any effect.
|
* included in the application build for setting this flag to have any effect.
|
||||||
*/
|
*/
|
||||||
public static SimpleExoPlayer newSimpleInstance(Context context, TrackSelector trackSelector,
|
public static SimpleExoPlayer newSimpleInstance(Context context, TrackSelector trackSelector,
|
||||||
DrmSessionManager drmSessionManager, boolean useExtensionDecoders) {
|
DrmSessionManager drmSessionManager, boolean preferExtensionDecoders) {
|
||||||
return newSimpleInstance(context, trackSelector, drmSessionManager, useExtensionDecoders,
|
return newSimpleInstance(context, trackSelector, drmSessionManager, preferExtensionDecoders,
|
||||||
DEFAULT_MIN_BUFFER_MS, DEFAULT_MIN_REBUFFER_MS);
|
DEFAULT_MIN_BUFFER_MS, DEFAULT_MIN_REBUFFER_MS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,9 +80,9 @@ public final class ExoPlayerFactory {
|
|||||||
* @param trackSelector The {@link TrackSelector} that will be used by the instance.
|
* @param trackSelector The {@link TrackSelector} that will be used by the instance.
|
||||||
* @param drmSessionManager An optional {@link DrmSessionManager}. May be null if the instance
|
* @param drmSessionManager An optional {@link DrmSessionManager}. May be null if the instance
|
||||||
* will not be used for DRM protected playbacks.
|
* will not be used for DRM protected playbacks.
|
||||||
* @param useExtensionDecoders True to include {@link TrackRenderer} instances defined in
|
* @param preferExtensionDecoders True to prefer {@link TrackRenderer} instances defined in
|
||||||
* available extensions. Note that the required extensions must be included in the application
|
* available extensions over those defined in the core library. Note that extensions must be
|
||||||
* build for setting this flag to have any effect.
|
* included in the application build for setting this flag to have any effect.
|
||||||
* @param minBufferMs A minimum duration of data that must be buffered for playback to start
|
* @param minBufferMs A minimum duration of data that must be buffered for playback to start
|
||||||
* or resume following a user action such as a seek.
|
* or resume following a user action such as a seek.
|
||||||
* @param minRebufferMs A minimum duration of data that must be buffered for playback to resume
|
* @param minRebufferMs A minimum duration of data that must be buffered for playback to resume
|
||||||
@ -90,9 +90,9 @@ public final class ExoPlayerFactory {
|
|||||||
* not due to a user action such as starting playback or seeking).
|
* not due to a user action such as starting playback or seeking).
|
||||||
*/
|
*/
|
||||||
public static SimpleExoPlayer newSimpleInstance(Context context, TrackSelector trackSelector,
|
public static SimpleExoPlayer newSimpleInstance(Context context, TrackSelector trackSelector,
|
||||||
DrmSessionManager drmSessionManager, boolean useExtensionDecoders, int minBufferMs,
|
DrmSessionManager drmSessionManager, boolean preferExtensionDecoders, int minBufferMs,
|
||||||
int minRebufferMs) {
|
int minRebufferMs) {
|
||||||
return new SimpleExoPlayer(context, trackSelector, drmSessionManager, useExtensionDecoders,
|
return new SimpleExoPlayer(context, trackSelector, drmSessionManager, preferExtensionDecoders,
|
||||||
minBufferMs, minRebufferMs);
|
minBufferMs, minRebufferMs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ public final class SimpleExoPlayer implements ExoPlayer {
|
|||||||
private CodecCounters audioCodecCounters;
|
private CodecCounters audioCodecCounters;
|
||||||
|
|
||||||
/* package */ SimpleExoPlayer(Context context, TrackSelector trackSelector,
|
/* package */ SimpleExoPlayer(Context context, TrackSelector trackSelector,
|
||||||
DrmSessionManager drmSessionManager, boolean useExtensionDecoders, int minBufferMs,
|
DrmSessionManager drmSessionManager, boolean preferExtensionDecoders, int minBufferMs,
|
||||||
int minRebufferMs) {
|
int minRebufferMs) {
|
||||||
mainHandler = new Handler();
|
mainHandler = new Handler();
|
||||||
bandwidthMeter = new DefaultBandwidthMeter();
|
bandwidthMeter = new DefaultBandwidthMeter();
|
||||||
@ -112,10 +112,13 @@ public final class SimpleExoPlayer implements ExoPlayer {
|
|||||||
|
|
||||||
// Build the renderers.
|
// Build the renderers.
|
||||||
ArrayList<TrackRenderer> renderersList = new ArrayList<>();
|
ArrayList<TrackRenderer> renderersList = new ArrayList<>();
|
||||||
if (useExtensionDecoders) {
|
if (preferExtensionDecoders) {
|
||||||
|
buildExtensionRenderers(renderersList);
|
||||||
|
buildRenderers(context, drmSessionManager, renderersList);
|
||||||
|
} else {
|
||||||
|
buildRenderers(context, drmSessionManager, renderersList);
|
||||||
buildExtensionRenderers(renderersList);
|
buildExtensionRenderers(renderersList);
|
||||||
}
|
}
|
||||||
buildRenderers(context, drmSessionManager, renderersList);
|
|
||||||
renderers = renderersList.toArray(new TrackRenderer[renderersList.size()]);
|
renderers = renderersList.toArray(new TrackRenderer[renderersList.size()]);
|
||||||
|
|
||||||
// Obtain counts of video and audio renderers.
|
// Obtain counts of video and audio renderers.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user