mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Switch back from method ref to Runnable in HlsSampleStreamWrapper
This reverts a81dea6a47 and adds in the necessary nullness annotations
After a discussion that this:: method references allocate on every call:
https://dzone.com/articles/passing-thismethod-reference-within-a-loop-affects
PiperOrigin-RevId: 275813989
This commit is contained in:
parent
e6e2dcc58d
commit
e43658af1f
1 changed files with 12 additions and 2 deletions
|
|
@ -121,6 +121,9 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||||
private final HlsChunkSource.HlsChunkHolder nextChunkHolder;
|
private final HlsChunkSource.HlsChunkHolder nextChunkHolder;
|
||||||
private final ArrayList<HlsMediaChunk> mediaChunks;
|
private final ArrayList<HlsMediaChunk> mediaChunks;
|
||||||
private final List<HlsMediaChunk> readOnlyMediaChunks;
|
private final List<HlsMediaChunk> readOnlyMediaChunks;
|
||||||
|
// Using runnables rather than in-line method references to avoid repeated allocations.
|
||||||
|
private final Runnable maybeFinishPrepareRunnable;
|
||||||
|
private final Runnable onTracksEndedRunnable;
|
||||||
private final Handler handler;
|
private final Handler handler;
|
||||||
private final ArrayList<HlsSampleStream> hlsSampleStreams;
|
private final ArrayList<HlsSampleStream> hlsSampleStreams;
|
||||||
private final Map<String, DrmInitData> overridingDrmInitData;
|
private final Map<String, DrmInitData> overridingDrmInitData;
|
||||||
|
|
@ -212,6 +215,13 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||||
mediaChunks = new ArrayList<>();
|
mediaChunks = new ArrayList<>();
|
||||||
readOnlyMediaChunks = Collections.unmodifiableList(mediaChunks);
|
readOnlyMediaChunks = Collections.unmodifiableList(mediaChunks);
|
||||||
hlsSampleStreams = new ArrayList<>();
|
hlsSampleStreams = new ArrayList<>();
|
||||||
|
// Suppressions are needed because `this` is not initialized here.
|
||||||
|
@SuppressWarnings("nullness:methodref.receiver.bound.invalid")
|
||||||
|
Runnable maybeFinishPrepareRunnable = this::maybeFinishPrepare;
|
||||||
|
this.maybeFinishPrepareRunnable = maybeFinishPrepareRunnable;
|
||||||
|
@SuppressWarnings("nullness:methodref.receiver.bound.invalid")
|
||||||
|
Runnable onTracksEndedRunnable = this::onTracksEnded;
|
||||||
|
this.onTracksEndedRunnable = onTracksEndedRunnable;
|
||||||
handler = new Handler();
|
handler = new Handler();
|
||||||
lastSeekPositionUs = positionUs;
|
lastSeekPositionUs = positionUs;
|
||||||
pendingResetPositionUs = positionUs;
|
pendingResetPositionUs = positionUs;
|
||||||
|
|
@ -936,7 +946,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||||
@Override
|
@Override
|
||||||
public void endTracks() {
|
public void endTracks() {
|
||||||
tracksEnded = true;
|
tracksEnded = true;
|
||||||
handler.post(this::onTracksEnded);
|
handler.post(onTracksEndedRunnable);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -948,7 +958,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpstreamFormatChanged(Format format) {
|
public void onUpstreamFormatChanged(Format format) {
|
||||||
handler.post(this::maybeFinishPrepare);
|
handler.post(maybeFinishPrepareRunnable);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called by the loading thread.
|
// Called by the loading thread.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue