diff --git a/demo/src/main/java/com/google/android/exoplayer/demo/PlayerActivity.java b/demo/src/main/java/com/google/android/exoplayer/demo/PlayerActivity.java index 6ca6c0d3ec..abca67bb3a 100644 --- a/demo/src/main/java/com/google/android/exoplayer/demo/PlayerActivity.java +++ b/demo/src/main/java/com/google/android/exoplayer/demo/PlayerActivity.java @@ -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_CONTENT_ID_EXTRA = "drm_content_id"; 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. 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() { Intent intent = getIntent(); 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); DrmSessionManager drmSessionManager = null; if (drmSchemeUuid != null) { @@ -266,7 +266,7 @@ public class PlayerActivity extends Activity implements SurfaceHolder.Callback, trackSelector.addListener(eventLogger); trackSelectionHelper = new TrackSelectionHelper(trackSelector); player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, drmSessionManager, - useExtensionDecoders); + preferExtensionDecoders); player.addListener(this); player.addListener(eventLogger); player.setDebugListener(eventLogger); diff --git a/demo/src/main/java/com/google/android/exoplayer/demo/SampleChooserActivity.java b/demo/src/main/java/com/google/android/exoplayer/demo/SampleChooserActivity.java index 4c4f637e63..904dd23954 100644 --- a/demo/src/main/java/com/google/android/exoplayer/demo/SampleChooserActivity.java +++ b/demo/src/main/java/com/google/android/exoplayer/demo/SampleChooserActivity.java @@ -97,7 +97,7 @@ public class SampleChooserActivity extends Activity { .putExtra(PlayerActivity.DRM_SCHEME_UUID_EXTRA, sample.drmSchemeUuid) .putExtra(PlayerActivity.DRM_CONTENT_ID_EXTRA, sample.drmContentId) .putExtra(PlayerActivity.DRM_PROVIDER_EXTRA, sample.drmProvider) - .putExtra(PlayerActivity.USE_EXTENSION_DECODERS, sample.useExtensionDecoders); + .putExtra(PlayerActivity.PREFER_EXTENSION_DECODERS, sample.preferExtensionDecoders); startActivity(intent); } @@ -171,7 +171,7 @@ public class SampleChooserActivity extends Activity { UUID drmUuid = null; String drmContentId = null; String drmProvider = null; - boolean useExtensionDecoders = false; + boolean preferExtensionDecoders = false; reader.beginObject(); while (reader.hasNext()) { @@ -191,8 +191,8 @@ public class SampleChooserActivity extends Activity { drmContentId = drmComponents[1]; drmProvider = drmComponents[2]; break; - case "use_extension_decoders": - useExtensionDecoders = reader.nextBoolean(); + case "prefer_extension_decoders": + preferExtensionDecoders = reader.nextBoolean(); break; } } @@ -202,7 +202,7 @@ public class SampleChooserActivity extends Activity { throw new ParserException("Invalid sample (name or uri missing)"); } return new Sample(sampleName, uri, type, drmUuid, drmContentId, drmProvider, - useExtensionDecoders); + preferExtensionDecoders); } private SampleGroup getGroup(String groupName, List groups) { @@ -341,17 +341,17 @@ public class SampleChooserActivity extends Activity { public final UUID drmSchemeUuid; public final String drmContentId; public final String drmProvider; - public final boolean useExtensionDecoders; + public final boolean preferExtensionDecoders; public Sample(String name, String uri, int type, UUID drmSchemeUuid, String drmContentId, - String drmProvider, boolean useExtensionDecoders) { + String drmProvider, boolean preferExtensionDecoders) { this.name = name; this.uri = uri; this.type = type; this.drmSchemeUuid = drmSchemeUuid; this.drmContentId = drmContentId; this.drmProvider = drmProvider; - this.useExtensionDecoders = useExtensionDecoders; + this.preferExtensionDecoders = preferExtensionDecoders; } } diff --git a/library/src/main/java/com/google/android/exoplayer/ExoPlayerFactory.java b/library/src/main/java/com/google/android/exoplayer/ExoPlayerFactory.java index b549c822b3..3fbc314bf2 100644 --- a/library/src/main/java/com/google/android/exoplayer/ExoPlayerFactory.java +++ b/library/src/main/java/com/google/android/exoplayer/ExoPlayerFactory.java @@ -61,13 +61,13 @@ public final class ExoPlayerFactory { * @param trackSelector The {@link TrackSelector} that will be used by the instance. * @param drmSessionManager An optional {@link DrmSessionManager}. May be null if the instance * will not be used for DRM protected playbacks. - * @param useExtensionDecoders True to include {@link TrackRenderer} instances defined in - * available extensions. Note that the required extensions must be included in the application - * build for setting this flag to have any effect. + * @param preferExtensionDecoders True to prefer {@link TrackRenderer} instances defined in + * available extensions over those defined in the core library. Note that extensions must be + * included in the application build for setting this flag to have any effect. */ public static SimpleExoPlayer newSimpleInstance(Context context, TrackSelector trackSelector, - DrmSessionManager drmSessionManager, boolean useExtensionDecoders) { - return newSimpleInstance(context, trackSelector, drmSessionManager, useExtensionDecoders, + DrmSessionManager drmSessionManager, boolean preferExtensionDecoders) { + return newSimpleInstance(context, trackSelector, drmSessionManager, preferExtensionDecoders, 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 drmSessionManager An optional {@link DrmSessionManager}. May be null if the instance * will not be used for DRM protected playbacks. - * @param useExtensionDecoders True to include {@link TrackRenderer} instances defined in - * available extensions. Note that the required extensions must be included in the application - * build for setting this flag to have any effect. + * @param preferExtensionDecoders True to prefer {@link TrackRenderer} instances defined in + * available extensions over those defined in the core library. Note that extensions must be + * 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 * 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 @@ -90,9 +90,9 @@ public final class ExoPlayerFactory { * not due to a user action such as starting playback or seeking). */ public static SimpleExoPlayer newSimpleInstance(Context context, TrackSelector trackSelector, - DrmSessionManager drmSessionManager, boolean useExtensionDecoders, int minBufferMs, + DrmSessionManager drmSessionManager, boolean preferExtensionDecoders, int minBufferMs, int minRebufferMs) { - return new SimpleExoPlayer(context, trackSelector, drmSessionManager, useExtensionDecoders, + return new SimpleExoPlayer(context, trackSelector, drmSessionManager, preferExtensionDecoders, minBufferMs, minRebufferMs); } diff --git a/library/src/main/java/com/google/android/exoplayer/SimpleExoPlayer.java b/library/src/main/java/com/google/android/exoplayer/SimpleExoPlayer.java index ccd0be8252..d62030315f 100644 --- a/library/src/main/java/com/google/android/exoplayer/SimpleExoPlayer.java +++ b/library/src/main/java/com/google/android/exoplayer/SimpleExoPlayer.java @@ -104,7 +104,7 @@ public final class SimpleExoPlayer implements ExoPlayer { private CodecCounters audioCodecCounters; /* package */ SimpleExoPlayer(Context context, TrackSelector trackSelector, - DrmSessionManager drmSessionManager, boolean useExtensionDecoders, int minBufferMs, + DrmSessionManager drmSessionManager, boolean preferExtensionDecoders, int minBufferMs, int minRebufferMs) { mainHandler = new Handler(); bandwidthMeter = new DefaultBandwidthMeter(); @@ -112,10 +112,13 @@ public final class SimpleExoPlayer implements ExoPlayer { // Build the renderers. ArrayList renderersList = new ArrayList<>(); - if (useExtensionDecoders) { + if (preferExtensionDecoders) { + buildExtensionRenderers(renderersList); + buildRenderers(context, drmSessionManager, renderersList); + } else { + buildRenderers(context, drmSessionManager, renderersList); buildExtensionRenderers(renderersList); } - buildRenderers(context, drmSessionManager, renderersList); renderers = renderersList.toArray(new TrackRenderer[renderersList.size()]); // Obtain counts of video and audio renderers.