feat(android): allow to disable selected functionalities (#3681)

* feat(android): add possibility do disable some of functionalities

* create dump classes

* remove dump files when functionalities are enabled

* add docs

* enable all functionalities in example

* throw error when trying to use disabled functionality

* update docs
This commit is contained in:
Krzysztof Moch
2024-04-16 14:23:19 +02:00
committed by GitHub
parent 2285eba8f0
commit 64e3191f73
16 changed files with 352 additions and 19 deletions

View File

@@ -0,0 +1,36 @@
package androidx.media3.exoplayer.dash;
import androidx.media3.common.MediaItem;
import androidx.media3.datasource.DataSource;
import androidx.media3.exoplayer.drm.DrmSessionManagerProvider;
import androidx.media3.exoplayer.source.MediaSource;
import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy;
public class DashMediaSource {
public static class Factory implements MediaSource.Factory {
public Factory(DefaultDashChunkSource.Factory factory, DataSource.Factory factory1) {
}
@Override
public MediaSource.Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider) {
return null;
}
@Override
public MediaSource.Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) {
return null;
}
@Override
public int[] getSupportedTypes() {
return new int[0];
}
@Override
public MediaSource createMediaSource(MediaItem mediaItem) {
return null;
}
}
}

View File

@@ -0,0 +1,12 @@
package androidx.media3.exoplayer.dash;
import android.net.Uri;
import androidx.media3.datasource.DataSource;
import androidx.media3.exoplayer.dash.manifest.DashManifest;
public class DashUtil {
public static DashManifest loadManifest(DataSource ds, Uri uri) {
return null;
}
}

View File

@@ -0,0 +1,10 @@
package androidx.media3.exoplayer.dash;
import androidx.media3.datasource.DataSource;
public class DefaultDashChunkSource {
public static final class Factory {
public Factory(DataSource.Factory mediaDataSourceFactory) {
}
}
}

View File

@@ -0,0 +1,13 @@
package androidx.media3.exoplayer.dash.manifest;
import androidx.collection.CircularArray;
import androidx.media3.common.C;
public class AdaptationSet {
public int type = 0;
public CircularArray<Representation> representations;
public AdaptationSet() {
representations = null;
}
}

View File

@@ -0,0 +1,15 @@
package androidx.media3.exoplayer.dash.manifest;
public class DashManifest {
public DashManifest() {
}
public int getPeriodCount() {
return 0;
}
public Period getPeriod(int index) {
return null;
}
}

View File

@@ -0,0 +1,7 @@
package androidx.media3.exoplayer.dash.manifest;
import androidx.collection.CircularArray;
public class Period {
public CircularArray<AdaptationSet> adaptationSets;
}

View File

@@ -0,0 +1,12 @@
package androidx.media3.exoplayer.dash.manifest;
import androidx.media3.common.Format;
public class Representation {
public Format format;
public long presentationTimeOffsetUs;
public Representation() {
format = null;
}
}

View File

@@ -0,0 +1,34 @@
package androidx.media3.exoplayer.hls;
import androidx.media3.common.MediaItem;
import androidx.media3.datasource.DataSource;
import androidx.media3.exoplayer.drm.DrmSessionManagerProvider;
import androidx.media3.exoplayer.source.MediaSource;
import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy;
public class HlsMediaSource {
public static class Factory implements MediaSource.Factory {
public Factory(DataSource.Factory mediaDataSourceFactory) {
}
@Override
public MediaSource.Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider) {
return null;
}
@Override
public MediaSource.Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) {
return null;
}
@Override
public int[] getSupportedTypes() {
return new int[0];
}
@Override
public MediaSource createMediaSource(MediaItem mediaItem) {
return null;
}
}
}

View File

@@ -0,0 +1,34 @@
package androidx.media3.exoplayer.rtsp;
import androidx.media3.common.MediaItem;
import androidx.media3.exoplayer.drm.DrmSessionManagerProvider;
import androidx.media3.exoplayer.source.MediaSource;
import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy;
public class RtspMediaSource {
public RtspMediaSource() {
}
public static class Factory implements MediaSource.Factory {
@Override
public MediaSource.Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider) {
return null;
}
@Override
public MediaSource.Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) {
return null;
}
@Override
public int[] getSupportedTypes() {
return new int[0];
}
@Override
public MediaSource createMediaSource(MediaItem mediaItem) {
return null;
}
}
}

View File

@@ -0,0 +1,34 @@
package androidx.media3.exoplayer.smoothstreaming;
import androidx.media3.common.MediaItem;
import androidx.media3.datasource.DataSource;
import androidx.media3.exoplayer.drm.DrmSessionManagerProvider;
import androidx.media3.exoplayer.source.MediaSource;
import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy;
public class DefaultSsChunkSource {
public static class Factory implements MediaSource.Factory {
public Factory(DataSource.Factory mediaDataSourceFactory) {
}
@Override
public MediaSource.Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider) {
return null;
}
@Override
public MediaSource.Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) {
return null;
}
@Override
public int[] getSupportedTypes() {
return new int[0];
}
@Override
public MediaSource createMediaSource(MediaItem mediaItem) {
return null;
}
}
}

View File

@@ -0,0 +1,34 @@
package androidx.media3.exoplayer.smoothstreaming;
import androidx.media3.common.MediaItem;
import androidx.media3.datasource.DataSource;
import androidx.media3.exoplayer.drm.DrmSessionManagerProvider;
import androidx.media3.exoplayer.source.MediaSource;
import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy;
public class SsMediaSource {
public static class Factory implements MediaSource.Factory {
public Factory(DefaultSsChunkSource.Factory factory, DataSource.Factory factory1) {
}
@Override
public MediaSource.Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider) {
return null;
}
@Override
public MediaSource.Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy) {
return null;
}
@Override
public int[] getSupportedTypes() {
return new int[0];
}
@Override
public MediaSource createMediaSource(MediaItem mediaItem) {
return null;
}
}
}