Skip to content

Commit 6e8fddc

Browse files
committed
exoplayer: refactor sabr classes
1 parent 49717c1 commit 6e8fddc

File tree

13 files changed

+52
-931
lines changed

13 files changed

+52
-931
lines changed

exoplayer-amzn-2.10.6/library/sabr/src/main/java/com/google/android/exoplayer2/source/sabr/DefaultSabrChunkSource.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import com.google.android.exoplayer2.source.sabr.parser.models.AudioSelector;
3030
import com.google.android.exoplayer2.source.sabr.parser.models.CaptionSelector;
3131
import com.google.android.exoplayer2.source.sabr.parser.models.VideoSelector;
32-
import com.google.android.exoplayer2.source.sabr.parser.processor.Utils;
32+
import com.google.android.exoplayer2.source.sabr.parser.misc.Utils;
3333
import com.google.android.exoplayer2.source.sabr.protos.misc.FormatId;
3434
import com.google.android.exoplayer2.trackselection.TrackSelection;
3535
import com.google.android.exoplayer2.upstream.DataSource;
@@ -304,7 +304,6 @@ public void getNextChunk(long playbackPositionUs, long loadPositionUs, List<? ex
304304
if (representationHolder.extractorWrapper.getSampleFormats() == null) {
305305
pendingInitializationUri = selectedRepresentation.getInitializationUri();
306306
}
307-
// TODO: remove segmentIndex entity (
308307
// No segment index in SABR
309308
//if (representationHolder.segmentIndex == null) {
310309
// pendingIndexUri = selectedRepresentation.getIndexUri();

exoplayer-amzn-2.10.6/library/sabr/src/main/java/com/google/android/exoplayer2/source/sabr/parser/processor/SabrProcessor.java renamed to exoplayer-amzn-2.10.6/library/sabr/src/main/java/com/google/android/exoplayer2/source/sabr/parser/SabrProcessor.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.google.android.exoplayer2.source.sabr.parser.processor;
1+
package com.google.android.exoplayer2.source.sabr.parser;
22

33
import android.util.Base64;
44
import android.util.Pair;
@@ -22,6 +22,14 @@
2222
import com.google.android.exoplayer2.source.sabr.parser.parts.MediaSegmentInitSabrPart;
2323
import com.google.android.exoplayer2.source.sabr.parser.parts.PoTokenStatusSabrPart;
2424
import com.google.android.exoplayer2.source.sabr.parser.parts.PoTokenStatusSabrPart.PoTokenStatus;
25+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessFormatInitializationMetadataResult;
26+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessLiveMetadataResult;
27+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessMediaEndResult;
28+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessMediaHeaderResult;
29+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessMediaResult;
30+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessSabrSeekResult;
31+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessStreamProtectionStatusResult;
32+
import com.google.android.exoplayer2.source.sabr.parser.misc.Utils;
2533
import com.google.android.exoplayer2.source.sabr.protos.videostreaming.BufferedRange;
2634
import com.google.android.exoplayer2.source.sabr.protos.videostreaming.ClientAbrState;
2735
import com.google.android.exoplayer2.source.sabr.protos.videostreaming.StreamerContext.ClientInfo;
@@ -685,7 +693,7 @@ public int getLiveSegmentTargetDurationSec() {
685693
//}
686694

687695
public VideoPlaybackAbrRequest buildVideoPlaybackAbrRequest(int trackType, boolean isInit) {
688-
int resolution = trackType == C.TRACK_TYPE_VIDEO ? 720 : 0; // current track height (if video)
696+
int resolution = trackType == C.TRACK_TYPE_VIDEO && videoFormatSelector != null ? Utils.parseHeight(videoFormatSelector.displayName) : 0;
689697
int bandwidthEstimate = 1350000; // ???
690698

691699
ClientAbrState clientAbrStateTest = ClientAbrState.newBuilder()
@@ -893,7 +901,7 @@ private Pair<List<BufferedRange>, FormatId> createBufferedRangesAndDiscardFormat
893901
}
894902

895903
boolean shouldDiscard = currentFormatITag != activeFormat.getItag();
896-
FormatId initializedFormat = null;
904+
SelectedFormat initializedFormat = null; // TODO: not implemented
897905

898906
BufferedRange bufferedRange = shouldDiscard ? createFullBufferRange(activeFormat) : createPartialBufferRange(initializedFormat);
899907

@@ -935,7 +943,7 @@ private BufferedRange createFullBufferRange(@NonNull FormatId format) {
935943
* @param initializedFormat - The format with initialization data.
936944
* @return A BufferedRange object with segment information, or null if no metadata is available.
937945
*/
938-
private BufferedRange createPartialBufferRange(FormatId initializedFormat) {
946+
private BufferedRange createPartialBufferRange(SelectedFormat initializedFormat) {
939947
if (initializedFormat == null) {
940948
return null;
941949
}

exoplayer-amzn-2.10.6/library/sabr/src/main/java/com/google/android/exoplayer2/source/sabr/parser/SabrStream.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,11 @@
1616
import com.google.android.exoplayer2.source.sabr.parser.parts.PoTokenStatusSabrPart;
1717
import com.google.android.exoplayer2.source.sabr.parser.parts.RefreshPlayerResponseSabrPart;
1818
import com.google.android.exoplayer2.source.sabr.parser.parts.SabrPart;
19-
import com.google.android.exoplayer2.source.sabr.parser.processor.ProcessFormatInitializationMetadataResult;
20-
import com.google.android.exoplayer2.source.sabr.parser.processor.ProcessMediaEndResult;
21-
import com.google.android.exoplayer2.source.sabr.parser.processor.ProcessMediaHeaderResult;
22-
import com.google.android.exoplayer2.source.sabr.parser.processor.ProcessMediaResult;
23-
import com.google.android.exoplayer2.source.sabr.parser.processor.ProcessStreamProtectionStatusResult;
24-
import com.google.android.exoplayer2.source.sabr.parser.processor.SabrProcessor;
19+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessFormatInitializationMetadataResult;
20+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessMediaEndResult;
21+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessMediaHeaderResult;
22+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessMediaResult;
23+
import com.google.android.exoplayer2.source.sabr.parser.results.ProcessStreamProtectionStatusResult;
2524
import com.google.android.exoplayer2.source.sabr.parser.ump.UMPDecoder;
2625
import com.google.android.exoplayer2.source.sabr.parser.ump.UMPPart;
2726
import com.google.android.exoplayer2.source.sabr.parser.ump.UMPPartId;

exoplayer-amzn-2.10.6/library/sabr/src/main/java/com/google/android/exoplayer2/source/sabr/parser/processor/Utils.java renamed to exoplayer-amzn-2.10.6/library/sabr/src/main/java/com/google/android/exoplayer2/source/sabr/parser/misc/Utils.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
package com.google.android.exoplayer2.source.sabr.parser.processor;
1+
package com.google.android.exoplayer2.source.sabr.parser.misc;
22

33
import com.google.android.exoplayer2.extractor.ExtractorInput;
4+
import com.liskovsoft.sharedutils.helpers.Helpers;
45

56
import java.io.ByteArrayInputStream;
67
import java.io.IOException;
@@ -38,4 +39,12 @@ public static String updateQuery(String baseUrl, String key, Object value) {
3839
String separator = baseUrl.contains("?") ? "&" : "?";
3940
return baseUrl + separator + key + "=" + value;
4041
}
42+
43+
public static int parseHeight(String displayName) {
44+
if (displayName == null) {
45+
return 0;
46+
}
47+
48+
return Helpers.isNumeric(displayName) ? Helpers.parseInt(displayName) : Helpers.parseInt(displayName.replace("p", ""));
49+
}
4150
}

0 commit comments

Comments
 (0)