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_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);
|
||||
|
@ -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<SampleGroup> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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<TrackRenderer> 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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user