mirror of
https://github.com/yuliskov/SmartTube.git
synced 2026-01-05 13:30:30 -06:00
player: error dash chunk source upd
This commit is contained in:
@@ -8,7 +8,6 @@ import android.text.TextUtils;
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.ext.okhttp.OkHttpDataSourceFactory;
|
||||
import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory;
|
||||
import com.google.android.exoplayer2.source.ConcatenatingMediaSource;
|
||||
import com.google.android.exoplayer2.source.ExtractorMediaSource;
|
||||
import com.google.android.exoplayer2.source.MediaSource;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener;
|
||||
@@ -33,7 +32,7 @@ import com.google.android.exoplayer2.upstream.HttpDataSource.BaseFactory;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
import com.liskovsoft.sharedutils.helpers.FileHelpers;
|
||||
import com.liskovsoft.sharedutils.mylogger.Log;
|
||||
import com.liskovsoft.smartyoutubetv2.common.exoplayer.errors.MyDefaultDashChunkSource;
|
||||
import com.liskovsoft.smartyoutubetv2.common.exoplayer.errors.ErrorDefaultDashChunkSource;
|
||||
import com.liskovsoft.smartyoutubetv2.common.exoplayer.errors.MyDefaultLoadErrorHandlingPolicy;
|
||||
import com.liskovsoft.smartyoutubetv2.common.exoplayer.errors.TrackErrorFixer;
|
||||
import com.liskovsoft.smartyoutubetv2.common.prefs.PlayerTweaksData;
|
||||
@@ -162,7 +161,7 @@ public class ExoMediaSourceFactory {
|
||||
case C.TYPE_DASH:
|
||||
DashMediaSource dashSource =
|
||||
new DashMediaSource.Factory(
|
||||
new MyDefaultDashChunkSource.Factory(mMediaDataSourceFactory, mTrackErrorFixer),
|
||||
new ErrorDefaultDashChunkSource.Factory(mMediaDataSourceFactory, mTrackErrorFixer),
|
||||
buildDataSourceFactory(USE_BANDWIDTH_METER)
|
||||
)
|
||||
.setManifestParser(new LiveDashManifestParser()) // Don't make static! Need state reset for each live source.
|
||||
@@ -195,7 +194,7 @@ public class ExoMediaSourceFactory {
|
||||
private MediaSource buildMPDMediaSource(Uri uri, InputStream mpdContent) {
|
||||
// Are you using FrameworkSampleSource or ExtractorSampleSource when you build your player?
|
||||
DashMediaSource dashSource = new DashMediaSource.Factory(
|
||||
new DefaultDashChunkSource.Factory(mMediaDataSourceFactory),
|
||||
new ErrorDefaultDashChunkSource.Factory(mMediaDataSourceFactory, mTrackErrorFixer),
|
||||
null
|
||||
)
|
||||
.createMediaSource(getManifest(uri, mpdContent));
|
||||
|
||||
@@ -14,7 +14,7 @@ import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class MyDefaultDashChunkSource extends DefaultDashChunkSource {
|
||||
public class ErrorDefaultDashChunkSource extends DefaultDashChunkSource {
|
||||
private final TrackErrorFixer mTrackErrorFixer;
|
||||
|
||||
public static final class Factory implements DashChunkSource.Factory {
|
||||
@@ -50,7 +50,7 @@ public class MyDefaultDashChunkSource extends DefaultDashChunkSource {
|
||||
if (transferListener != null) {
|
||||
dataSource.addTransferListener(transferListener);
|
||||
}
|
||||
return new MyDefaultDashChunkSource(
|
||||
return new ErrorDefaultDashChunkSource(
|
||||
manifestLoaderErrorThrower,
|
||||
manifest,
|
||||
periodIndex,
|
||||
@@ -68,11 +68,11 @@ public class MyDefaultDashChunkSource extends DefaultDashChunkSource {
|
||||
|
||||
}
|
||||
|
||||
public MyDefaultDashChunkSource(LoaderErrorThrower manifestLoaderErrorThrower, DashManifest manifest, int periodIndex,
|
||||
int[] adaptationSetIndices, TrackSelection trackSelection, int trackType,
|
||||
DataSource dataSource, long elapsedRealtimeOffsetMs, int maxSegmentsPerLoad,
|
||||
boolean enableEventMessageTrack, List<Format> closedCaptionFormats,
|
||||
@Nullable PlayerTrackEmsgHandler playerTrackEmsgHandler, @Nullable TrackErrorFixer trackErrorFixer) {
|
||||
public ErrorDefaultDashChunkSource(LoaderErrorThrower manifestLoaderErrorThrower, DashManifest manifest, int periodIndex,
|
||||
int[] adaptationSetIndices, TrackSelection trackSelection, int trackType,
|
||||
DataSource dataSource, long elapsedRealtimeOffsetMs, int maxSegmentsPerLoad,
|
||||
boolean enableEventMessageTrack, List<Format> closedCaptionFormats,
|
||||
@Nullable PlayerTrackEmsgHandler playerTrackEmsgHandler, @Nullable TrackErrorFixer trackErrorFixer) {
|
||||
super(manifestLoaderErrorThrower, manifest, periodIndex, adaptationSetIndices, trackSelection,
|
||||
trackType, dataSource, elapsedRealtimeOffsetMs, maxSegmentsPerLoad,
|
||||
enableEventMessageTrack, closedCaptionFormats, playerTrackEmsgHandler);
|
||||
@@ -39,7 +39,7 @@ public class TrackErrorFixer {
|
||||
|
||||
InvalidResponseCodeException ex = (InvalidResponseCodeException) e;
|
||||
|
||||
if (ex.responseCode != 404) {
|
||||
if (ex.responseCode != 404 && ex.responseCode != 503) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user