mirror of
https://github.com/samsonjs/media.git
synced 2026-03-26 09:35:47 +00:00
Fixed int overflow issue with callbacks on very long-running streams.
This commit is contained in:
parent
e4e02f9189
commit
c3e0d34aa1
6 changed files with 25 additions and 29 deletions
|
|
@ -97,7 +97,7 @@ public class EventLogger implements DemoPlayer.Listener, DemoPlayer.InfoListener
|
|||
|
||||
@Override
|
||||
public void onLoadStarted(int sourceId, long length, int type, int trigger, Format format,
|
||||
int mediaStartTimeMs, int mediaEndTimeMs) {
|
||||
long mediaStartTimeMs, long mediaEndTimeMs) {
|
||||
loadStartTimeMs[sourceId] = SystemClock.elapsedRealtime();
|
||||
if (VerboseLogUtil.isTagEnabled(TAG)) {
|
||||
Log.v(TAG, "loadStart [" + getSessionTimeString() + ", " + sourceId + ", " + type
|
||||
|
|
@ -107,7 +107,7 @@ public class EventLogger implements DemoPlayer.Listener, DemoPlayer.InfoListener
|
|||
|
||||
@Override
|
||||
public void onLoadCompleted(int sourceId, long bytesLoaded, int type, int trigger, Format format,
|
||||
int mediaStartTimeMs, int mediaEndTimeMs, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
if (VerboseLogUtil.isTagEnabled(TAG)) {
|
||||
long downloadTime = SystemClock.elapsedRealtime() - loadStartTimeMs[sourceId];
|
||||
Log.v(TAG, "loadEnd [" + getSessionTimeString() + ", " + sourceId + ", " + downloadTime
|
||||
|
|
@ -116,13 +116,13 @@ public class EventLogger implements DemoPlayer.Listener, DemoPlayer.InfoListener
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onVideoFormatEnabled(Format format, int trigger, int mediaTimeMs) {
|
||||
public void onVideoFormatEnabled(Format format, int trigger, long mediaTimeMs) {
|
||||
Log.d(TAG, "videoFormat [" + getSessionTimeString() + ", " + format.id + ", "
|
||||
+ Integer.toString(trigger) + "]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAudioFormatEnabled(Format format, int trigger, int mediaTimeMs) {
|
||||
public void onAudioFormatEnabled(Format format, int trigger, long mediaTimeMs) {
|
||||
Log.d(TAG, "audioFormat [" + getSessionTimeString() + ", " + format.id + ", "
|
||||
+ Integer.toString(trigger) + "]");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,14 +115,14 @@ public class DemoPlayer implements ExoPlayer.Listener, ChunkSampleSource.EventLi
|
|||
* A listener for debugging information.
|
||||
*/
|
||||
public interface InfoListener {
|
||||
void onVideoFormatEnabled(Format format, int trigger, int mediaTimeMs);
|
||||
void onAudioFormatEnabled(Format format, int trigger, int mediaTimeMs);
|
||||
void onVideoFormatEnabled(Format format, int trigger, long mediaTimeMs);
|
||||
void onAudioFormatEnabled(Format format, int trigger, long mediaTimeMs);
|
||||
void onDroppedFrames(int count, long elapsed);
|
||||
void onBandwidthSample(int elapsedMs, long bytes, long bitrateEstimate);
|
||||
void onLoadStarted(int sourceId, long length, int type, int trigger, Format format,
|
||||
int mediaStartTimeMs, int mediaEndTimeMs);
|
||||
long mediaStartTimeMs, long mediaEndTimeMs);
|
||||
void onLoadCompleted(int sourceId, long bytesLoaded, int type, int trigger, Format format,
|
||||
int mediaStartTimeMs, int mediaEndTimeMs, long elapsedRealtimeMs, long loadDurationMs);
|
||||
long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long loadDurationMs);
|
||||
void onDecoderInitialized(String decoderName, long elapsedRealtimeMs,
|
||||
long initializationDurationMs);
|
||||
void onAvailableRangeChanged(TimeRange availableRange);
|
||||
|
|
@ -435,7 +435,8 @@ public class DemoPlayer implements ExoPlayer.Listener, ChunkSampleSource.EventLi
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onDownstreamFormatChanged(int sourceId, Format format, int trigger, int mediaTimeMs) {
|
||||
public void onDownstreamFormatChanged(int sourceId, Format format, int trigger,
|
||||
long mediaTimeMs) {
|
||||
if (infoListener == null) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -447,11 +448,6 @@ public class DemoPlayer implements ExoPlayer.Listener, ChunkSampleSource.EventLi
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDrmKeysLoaded() {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDrmSessionManagerError(Exception e) {
|
||||
if (internalErrorListener != null) {
|
||||
|
|
@ -535,7 +531,7 @@ public class DemoPlayer implements ExoPlayer.Listener, ChunkSampleSource.EventLi
|
|||
|
||||
@Override
|
||||
public void onLoadStarted(int sourceId, long length, int type, int trigger, Format format,
|
||||
int mediaStartTimeMs, int mediaEndTimeMs) {
|
||||
long mediaStartTimeMs, long mediaEndTimeMs) {
|
||||
if (infoListener != null) {
|
||||
infoListener.onLoadStarted(sourceId, length, type, trigger, format, mediaStartTimeMs,
|
||||
mediaEndTimeMs);
|
||||
|
|
@ -544,7 +540,7 @@ public class DemoPlayer implements ExoPlayer.Listener, ChunkSampleSource.EventLi
|
|||
|
||||
@Override
|
||||
public void onLoadCompleted(int sourceId, long bytesLoaded, int type, int trigger, Format format,
|
||||
int mediaStartTimeMs, int mediaEndTimeMs, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
if (infoListener != null) {
|
||||
infoListener.onLoadCompleted(sourceId, bytesLoaded, type, trigger, format, mediaStartTimeMs,
|
||||
mediaEndTimeMs, elapsedRealtimeMs, loadDurationMs);
|
||||
|
|
@ -557,7 +553,7 @@ public class DemoPlayer implements ExoPlayer.Listener, ChunkSampleSource.EventLi
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onUpstreamDiscarded(int sourceId, int mediaStartTimeMs, int mediaEndTimeMs) {
|
||||
public void onUpstreamDiscarded(int sourceId, long mediaStartTimeMs, long mediaEndTimeMs) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public interface BaseChunkSampleSourceEventListener {
|
|||
* load is for initialization data.
|
||||
*/
|
||||
void onLoadStarted(int sourceId, long length, int type, int trigger, Format format,
|
||||
int mediaStartTimeMs, int mediaEndTimeMs);
|
||||
long mediaStartTimeMs, long mediaEndTimeMs);
|
||||
|
||||
/**
|
||||
* Invoked when the current load operation completes.
|
||||
|
|
@ -61,7 +61,7 @@ public interface BaseChunkSampleSourceEventListener {
|
|||
* @param loadDurationMs Amount of time taken to load the data.
|
||||
*/
|
||||
void onLoadCompleted(int sourceId, long bytesLoaded, int type, int trigger, Format format,
|
||||
int mediaStartTimeMs, int mediaEndTimeMs, long elapsedRealtimeMs, long loadDurationMs);
|
||||
long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs, long loadDurationMs);
|
||||
|
||||
/**
|
||||
* Invoked when the current upstream load operation is canceled.
|
||||
|
|
@ -87,7 +87,7 @@ public interface BaseChunkSampleSourceEventListener {
|
|||
* @param mediaStartTimeMs The media time of the start of the discarded data.
|
||||
* @param mediaEndTimeMs The media time of the end of the discarded data.
|
||||
*/
|
||||
void onUpstreamDiscarded(int sourceId, int mediaStartTimeMs, int mediaEndTimeMs);
|
||||
void onUpstreamDiscarded(int sourceId, long mediaStartTimeMs, long mediaEndTimeMs);
|
||||
|
||||
/**
|
||||
* Invoked when the downstream format changes (i.e. when the format being supplied to the
|
||||
|
|
@ -99,6 +99,6 @@ public interface BaseChunkSampleSourceEventListener {
|
|||
* {@link ChunkSource}.
|
||||
* @param mediaTimeMs The media time at which the change occurred.
|
||||
*/
|
||||
void onDownstreamFormatChanged(int sourceId, Format format, int trigger, int mediaTimeMs);
|
||||
void onDownstreamFormatChanged(int sourceId, Format format, int trigger, long mediaTimeMs);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -574,8 +574,8 @@ public class ChunkSampleSource implements SampleSource, SampleSourceReader, Load
|
|||
return Math.min((errorCount - 1) * 1000, 5000);
|
||||
}
|
||||
|
||||
protected final int usToMs(long timeUs) {
|
||||
return (int) (timeUs / 1000);
|
||||
protected final long usToMs(long timeUs) {
|
||||
return timeUs / 1000;
|
||||
}
|
||||
|
||||
private void notifyLoadStarted(final long length, final int type, final int trigger,
|
||||
|
|
|
|||
|
|
@ -599,8 +599,8 @@ public final class HlsSampleSource implements SampleSource, SampleSourceReader,
|
|||
return Math.min((errorCount - 1) * 1000, 5000);
|
||||
}
|
||||
|
||||
/* package */ int usToMs(long timeUs) {
|
||||
return (int) (timeUs / 1000);
|
||||
/* package */ long usToMs(long timeUs) {
|
||||
return timeUs / 1000;
|
||||
}
|
||||
|
||||
private void notifyLoadStarted(final long length, final int type, final int trigger,
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ public final class LogcatLogger implements ExoPlayer.Listener,
|
|||
|
||||
@Override
|
||||
public void onDownstreamFormatChanged(int sourceId, Format format, int trigger,
|
||||
int mediaTimeMs) {
|
||||
long mediaTimeMs) {
|
||||
Log.i(tag, "Downstream format changed (" + sourceId + "): " + format.id);
|
||||
}
|
||||
|
||||
|
|
@ -129,18 +129,18 @@ public final class LogcatLogger implements ExoPlayer.Listener,
|
|||
|
||||
@Override
|
||||
public void onLoadStarted(int sourceId, long length, int type, int trigger, Format format,
|
||||
int mediaStartTimeMs, int mediaEndTimeMs) {}
|
||||
long mediaStartTimeMs, long mediaEndTimeMs) {}
|
||||
|
||||
@Override
|
||||
public void onLoadCompleted(int sourceId, long bytesLoaded, int type, int trigger,
|
||||
Format format, int mediaStartTimeMs, int mediaEndTimeMs, long elapsedRealtimeMs,
|
||||
Format format, long mediaStartTimeMs, long mediaEndTimeMs, long elapsedRealtimeMs,
|
||||
long loadDurationMs) {}
|
||||
|
||||
@Override
|
||||
public void onLoadCanceled(int sourceId, long bytesLoaded) {}
|
||||
|
||||
@Override
|
||||
public void onUpstreamDiscarded(int sourceId, int mediaStartTimeMs, int mediaEndTimeMs) {}
|
||||
public void onUpstreamDiscarded(int sourceId, long mediaStartTimeMs, long mediaEndTimeMs) {}
|
||||
|
||||
@Override
|
||||
public void onDrawnToSurface(Surface surface) {}
|
||||
|
|
|
|||
Loading…
Reference in a new issue