Parse DASH manifest's publish time.
Parse DASH manifest's publishTime node as defined by ISO/IEC 23009-1:2014, section 5.3.1.2. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=176525922
This commit is contained in:
parent
6607f49be6
commit
e575af3ac3
@ -136,6 +136,7 @@ public class DashManifestTest extends TestCase {
|
||||
assertEquals(expected.minUpdatePeriodMs, actual.minUpdatePeriodMs);
|
||||
assertEquals(expected.timeShiftBufferDepthMs, actual.timeShiftBufferDepthMs);
|
||||
assertEquals(expected.suggestedPresentationDelayMs, actual.suggestedPresentationDelayMs);
|
||||
assertEquals(expected.publishTimeMs, actual.publishTimeMs);
|
||||
assertEquals(expected.utcTiming, actual.utcTiming);
|
||||
assertEquals(expected.location, actual.location);
|
||||
assertEquals(expected.getPeriodCount(), actual.getPeriodCount());
|
||||
@ -179,7 +180,7 @@ public class DashManifestTest extends TestCase {
|
||||
}
|
||||
|
||||
private static DashManifest newDashManifest(int duration, Period... periods) {
|
||||
return new DashManifest(0, duration, 1, false, 2, 3, 4, DUMMY_UTC_TIMING, Uri.EMPTY,
|
||||
return new DashManifest(0, duration, 1, false, 2, 3, 4, 12345, DUMMY_UTC_TIMING, Uri.EMPTY,
|
||||
Arrays.asList(periods));
|
||||
}
|
||||
|
||||
|
@ -67,6 +67,12 @@ public class DashManifest {
|
||||
*/
|
||||
public final long suggestedPresentationDelayMs;
|
||||
|
||||
/**
|
||||
* The {@code publishTime} value in milliseconds since epoch, or {@link C#TIME_UNSET} if
|
||||
* not present.
|
||||
*/
|
||||
public final long publishTimeMs;
|
||||
|
||||
/**
|
||||
* The {@link UtcTimingElement}, or null if not present. Defined in DVB A168:7/2016, Section
|
||||
* 4.7.2.
|
||||
@ -82,8 +88,8 @@ public class DashManifest {
|
||||
|
||||
public DashManifest(long availabilityStartTimeMs, long durationMs, long minBufferTimeMs,
|
||||
boolean dynamic, long minUpdatePeriodMs, long timeShiftBufferDepthMs,
|
||||
long suggestedPresentationDelayMs, UtcTimingElement utcTiming, Uri location,
|
||||
List<Period> periods) {
|
||||
long suggestedPresentationDelayMs, long publishTimeMs, UtcTimingElement utcTiming,
|
||||
Uri location, List<Period> periods) {
|
||||
this.availabilityStartTimeMs = availabilityStartTimeMs;
|
||||
this.durationMs = durationMs;
|
||||
this.minBufferTimeMs = minBufferTimeMs;
|
||||
@ -91,6 +97,7 @@ public class DashManifest {
|
||||
this.minUpdatePeriodMs = minUpdatePeriodMs;
|
||||
this.timeShiftBufferDepthMs = timeShiftBufferDepthMs;
|
||||
this.suggestedPresentationDelayMs = suggestedPresentationDelayMs;
|
||||
this.publishTimeMs = publishTimeMs;
|
||||
this.utcTiming = utcTiming;
|
||||
this.location = location;
|
||||
this.periods = periods == null ? Collections.<Period>emptyList() : periods;
|
||||
@ -147,8 +154,8 @@ public class DashManifest {
|
||||
}
|
||||
long newDuration = durationMs != C.TIME_UNSET ? durationMs - shiftMs : C.TIME_UNSET;
|
||||
return new DashManifest(availabilityStartTimeMs, newDuration, minBufferTimeMs, dynamic,
|
||||
minUpdatePeriodMs, timeShiftBufferDepthMs, suggestedPresentationDelayMs, utcTiming,
|
||||
location, copyPeriods);
|
||||
minUpdatePeriodMs, timeShiftBufferDepthMs, suggestedPresentationDelayMs, publishTimeMs,
|
||||
utcTiming, location, copyPeriods);
|
||||
}
|
||||
|
||||
private static ArrayList<AdaptationSet> copyAdaptationSets(
|
||||
|
@ -119,6 +119,7 @@ public class DashManifestParser extends DefaultHandler
|
||||
? parseDuration(xpp, "timeShiftBufferDepth", C.TIME_UNSET) : C.TIME_UNSET;
|
||||
long suggestedPresentationDelayMs = dynamic
|
||||
? parseDuration(xpp, "suggestedPresentationDelay", C.TIME_UNSET) : C.TIME_UNSET;
|
||||
long publishTimeMs = parseDateTime(xpp, "publishTime", C.TIME_UNSET);
|
||||
UtcTimingElement utcTiming = null;
|
||||
Uri location = null;
|
||||
|
||||
@ -171,17 +172,17 @@ public class DashManifestParser extends DefaultHandler
|
||||
}
|
||||
|
||||
return buildMediaPresentationDescription(availabilityStartTime, durationMs, minBufferTimeMs,
|
||||
dynamic, minUpdateTimeMs, timeShiftBufferDepthMs, suggestedPresentationDelayMs, utcTiming,
|
||||
location, periods);
|
||||
dynamic, minUpdateTimeMs, timeShiftBufferDepthMs, suggestedPresentationDelayMs,
|
||||
publishTimeMs, utcTiming, location, periods);
|
||||
}
|
||||
|
||||
protected DashManifest buildMediaPresentationDescription(long availabilityStartTime,
|
||||
long durationMs, long minBufferTimeMs, boolean dynamic, long minUpdateTimeMs,
|
||||
long timeShiftBufferDepthMs, long suggestedPresentationDelayMs, UtcTimingElement utcTiming,
|
||||
Uri location, List<Period> periods) {
|
||||
long timeShiftBufferDepthMs, long suggestedPresentationDelayMs, long publishTimeMs,
|
||||
UtcTimingElement utcTiming, Uri location, List<Period> periods) {
|
||||
return new DashManifest(availabilityStartTime, durationMs, minBufferTimeMs,
|
||||
dynamic, minUpdateTimeMs, timeShiftBufferDepthMs, suggestedPresentationDelayMs, utcTiming,
|
||||
location, periods);
|
||||
dynamic, minUpdateTimeMs, timeShiftBufferDepthMs, suggestedPresentationDelayMs,
|
||||
publishTimeMs, utcTiming, location, periods);
|
||||
}
|
||||
|
||||
protected UtcTimingElement parseUtcTiming(XmlPullParser xpp) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user