Small fixes in CompositeAssetLoader
PiperOrigin-RevId: 512038052
This commit is contained in:
parent
34b9824201
commit
be014f30c3
@ -39,6 +39,7 @@ import com.google.common.collect.ImmutableMap;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -90,7 +91,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
currentMediaItemIndex = new AtomicInteger();
|
currentMediaItemIndex = new AtomicInteger();
|
||||||
handler = clock.createHandler(looper, /* callback= */ null);
|
handler = clock.createHandler(looper, /* callback= */ null);
|
||||||
sampleConsumersByTrackType = new HashMap<>();
|
sampleConsumersByTrackType = new HashMap<>();
|
||||||
mediaItemChangedListenersByTrackType = new HashMap<>();
|
mediaItemChangedListenersByTrackType = new ConcurrentHashMap<>();
|
||||||
processedInputsBuilder = new ImmutableList.Builder<>();
|
processedInputsBuilder = new ImmutableList.Builder<>();
|
||||||
nonEndedTracks = new AtomicInteger();
|
nonEndedTracks = new AtomicInteger();
|
||||||
// It's safe to use "this" because we don't start the AssetLoader before exiting the
|
// It's safe to use "this" because we don't start the AssetLoader before exiting the
|
||||||
@ -145,6 +146,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
*
|
*
|
||||||
* <p>There can't be more than one {@link OnMediaItemChangedListener} for the same track type.
|
* <p>There can't be more than one {@link OnMediaItemChangedListener} for the same track type.
|
||||||
*
|
*
|
||||||
|
* <p>Can be called from any thread.
|
||||||
|
*
|
||||||
* @param onMediaItemChangedListener The {@link OnMediaItemChangedListener}.
|
* @param onMediaItemChangedListener The {@link OnMediaItemChangedListener}.
|
||||||
* @param trackType The {@link C.TrackType} for which to listen to {@link MediaItem} change
|
* @param trackType The {@link C.TrackType} for which to listen to {@link MediaItem} change
|
||||||
* events. Must be {@link C#TRACK_TYPE_AUDIO} or {@link C#TRACK_TYPE_VIDEO}.
|
* events. Must be {@link C#TRACK_TYPE_AUDIO} or {@link C#TRACK_TYPE_VIDEO}.
|
||||||
@ -234,9 +237,9 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
onMediaItemChanged(trackType, format);
|
onMediaItemChanged(trackType, format);
|
||||||
if (nonEndedTracks.get() == 1 && sampleConsumersByTrackType.size() == 2) {
|
if (nonEndedTracks.get() == 1 && sampleConsumersByTrackType.size() == 2) {
|
||||||
for (Map.Entry<Integer, SampleConsumer> entry : sampleConsumersByTrackType.entrySet()) {
|
for (Map.Entry<Integer, SampleConsumer> entry : sampleConsumersByTrackType.entrySet()) {
|
||||||
int listenerTrackType = entry.getKey();
|
int outputTrackType = entry.getKey();
|
||||||
if (trackType != listenerTrackType) {
|
if (trackType != outputTrackType) {
|
||||||
onMediaItemChanged(listenerTrackType, /* format= */ null);
|
onMediaItemChanged(outputTrackType, /* format= */ null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user