mirror of
https://github.com/samsonjs/media.git
synced 2026-04-14 12:45:47 +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 ArrayList<HlsMediaChunk> mediaChunks;
|
||||
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 ArrayList<HlsSampleStream> hlsSampleStreams;
|
||||
private final Map<String, DrmInitData> overridingDrmInitData;
|
||||
|
|
@ -212,6 +215,13 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
|||
mediaChunks = new ArrayList<>();
|
||||
readOnlyMediaChunks = Collections.unmodifiableList(mediaChunks);
|
||||
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();
|
||||
lastSeekPositionUs = positionUs;
|
||||
pendingResetPositionUs = positionUs;
|
||||
|
|
@ -936,7 +946,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
|||
@Override
|
||||
public void endTracks() {
|
||||
tracksEnded = true;
|
||||
handler.post(this::onTracksEnded);
|
||||
handler.post(onTracksEndedRunnable);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -948,7 +958,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
|||
|
||||
@Override
|
||||
public void onUpstreamFormatChanged(Format format) {
|
||||
handler.post(this::maybeFinishPrepare);
|
||||
handler.post(maybeFinishPrepareRunnable);
|
||||
}
|
||||
|
||||
// Called by the loading thread.
|
||||
|
|
|
|||
Loading…
Reference in a new issue