mirror of
https://github.com/samsonjs/media.git
synced 2026-03-29 10:05:48 +00:00
Make LoadEventInfo a top level class
In order to reuse it in LoadErrorHandlingPolicy. PiperOrigin-RevId: 281087397
This commit is contained in:
parent
699dd3d27c
commit
95d0921114
12 changed files with 83 additions and 59 deletions
|
|
@ -16,6 +16,7 @@
|
|||
* Use `ExoMediaDrm.Provider` in `OfflineLicenseHelper` to avoid `ExoMediaDrm`
|
||||
leaks ([#4721](https://github.com/google/ExoPlayer/issues/4721)).
|
||||
* Fix byte order of HDR10+ static metadata to match CTA-861.3.
|
||||
* Make `MediaSourceEventListener.LoadEventInfo` a top-level class.
|
||||
|
||||
### 2.11.0 (not yet released) ###
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ package com.google.android.exoplayer2;
|
|||
import android.os.Handler;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.analytics.AnalyticsCollector;
|
||||
import com.google.android.exoplayer2.source.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MaskingMediaPeriod;
|
||||
import com.google.android.exoplayer2.source.MaskingMediaSource;
|
||||
import com.google.android.exoplayer2.source.MediaPeriod;
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import com.google.android.exoplayer2.decoder.DecoderCounters;
|
|||
import com.google.android.exoplayer2.drm.DefaultDrmSessionEventListener;
|
||||
import com.google.android.exoplayer2.metadata.Metadata;
|
||||
import com.google.android.exoplayer2.metadata.MetadataOutput;
|
||||
import com.google.android.exoplayer2.source.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ import com.google.android.exoplayer2.audio.AudioAttributes;
|
|||
import com.google.android.exoplayer2.audio.AudioSink;
|
||||
import com.google.android.exoplayer2.decoder.DecoderCounters;
|
||||
import com.google.android.exoplayer2.metadata.Metadata;
|
||||
import com.google.android.exoplayer2.source.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadData;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ import com.google.android.exoplayer2.Player;
|
|||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.Timeline.Period;
|
||||
import com.google.android.exoplayer2.analytics.PlaybackStats.PlaybackState;
|
||||
import com.google.android.exoplayer2.source.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadData;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
import com.google.android.exoplayer2.trackselection.TrackSelection;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
/*
|
||||
* Copyright (C) 2019 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.google.android.exoplayer2.source;
|
||||
|
||||
import android.net.Uri;
|
||||
import android.os.SystemClock;
|
||||
import com.google.android.exoplayer2.upstream.DataSpec;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/** {@link MediaSource} load event information. */
|
||||
public final class LoadEventInfo {
|
||||
|
||||
/** Defines the requested data. */
|
||||
public final DataSpec dataSpec;
|
||||
/**
|
||||
* The {@link Uri} from which data is being read. The uri will be identical to the one in {@link
|
||||
* #dataSpec}.uri unless redirection has occurred. If redirection has occurred, this is the uri
|
||||
* after redirection.
|
||||
*/
|
||||
public final Uri uri;
|
||||
/** The response headers associated with the load, or an empty map if unavailable. */
|
||||
public final Map<String, List<String>> responseHeaders;
|
||||
/** The value of {@link SystemClock#elapsedRealtime} at the time of the load event. */
|
||||
public final long elapsedRealtimeMs;
|
||||
/** The duration of the load up to the event time. */
|
||||
public final long loadDurationMs;
|
||||
/** The number of bytes that were loaded up to the event time. */
|
||||
public final long bytesLoaded;
|
||||
|
||||
/**
|
||||
* Creates load event info.
|
||||
*
|
||||
* @param dataSpec Defines the requested data.
|
||||
* @param uri The {@link Uri} from which data is being read. The uri must be identical to the one
|
||||
* in {@code dataSpec.uri} unless redirection has occurred. If redirection has occurred, this
|
||||
* is the uri after redirection.
|
||||
* @param responseHeaders The response headers associated with the load, or an empty map if
|
||||
* unavailable.
|
||||
* @param elapsedRealtimeMs The value of {@link SystemClock#elapsedRealtime} at the time of the
|
||||
* load event.
|
||||
* @param loadDurationMs The duration of the load up to the event time.
|
||||
* @param bytesLoaded The number of bytes that were loaded up to the event time. For compressed
|
||||
* network responses, this is the decompressed size.
|
||||
*/
|
||||
public LoadEventInfo(
|
||||
DataSpec dataSpec,
|
||||
Uri uri,
|
||||
Map<String, List<String>> responseHeaders,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
long bytesLoaded) {
|
||||
this.dataSpec = dataSpec;
|
||||
this.uri = uri;
|
||||
this.responseHeaders = responseHeaders;
|
||||
this.elapsedRealtimeMs = elapsedRealtimeMs;
|
||||
this.loadDurationMs = loadDurationMs;
|
||||
this.bytesLoaded = bytesLoaded;
|
||||
}
|
||||
}
|
||||
|
|
@ -18,7 +18,6 @@ package com.google.android.exoplayer2.source;
|
|||
import android.net.Uri;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.SystemClock;
|
||||
import androidx.annotation.CheckResult;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.C;
|
||||
|
|
@ -36,57 +35,6 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|||
/** Interface for callbacks to be notified of {@link MediaSource} events. */
|
||||
public interface MediaSourceEventListener {
|
||||
|
||||
/** Media source load event information. */
|
||||
final class LoadEventInfo {
|
||||
|
||||
/** Defines the requested data. */
|
||||
public final DataSpec dataSpec;
|
||||
/**
|
||||
* The {@link Uri} from which data is being read. The uri will be identical to the one in {@link
|
||||
* #dataSpec}.uri unless redirection has occurred. If redirection has occurred, this is the uri
|
||||
* after redirection.
|
||||
*/
|
||||
public final Uri uri;
|
||||
/** The response headers associated with the load, or an empty map if unavailable. */
|
||||
public final Map<String, List<String>> responseHeaders;
|
||||
/** The value of {@link SystemClock#elapsedRealtime} at the time of the load event. */
|
||||
public final long elapsedRealtimeMs;
|
||||
/** The duration of the load up to the event time. */
|
||||
public final long loadDurationMs;
|
||||
/** The number of bytes that were loaded up to the event time. */
|
||||
public final long bytesLoaded;
|
||||
|
||||
/**
|
||||
* Creates load event info.
|
||||
*
|
||||
* @param dataSpec Defines the requested data.
|
||||
* @param uri The {@link Uri} from which data is being read. The uri must be identical to the
|
||||
* one in {@code dataSpec.uri} unless redirection has occurred. If redirection has occurred,
|
||||
* this is the uri after redirection.
|
||||
* @param responseHeaders The response headers associated with the load, or an empty map if
|
||||
* unavailable.
|
||||
* @param elapsedRealtimeMs The value of {@link SystemClock#elapsedRealtime} at the time of the
|
||||
* load event.
|
||||
* @param loadDurationMs The duration of the load up to the event time.
|
||||
* @param bytesLoaded The number of bytes that were loaded up to the event time. For compressed
|
||||
* network responses, this is the decompressed size.
|
||||
*/
|
||||
public LoadEventInfo(
|
||||
DataSpec dataSpec,
|
||||
Uri uri,
|
||||
Map<String, List<String>> responseHeaders,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
long bytesLoaded) {
|
||||
this.dataSpec = dataSpec;
|
||||
this.uri = uri;
|
||||
this.responseHeaders = responseHeaders;
|
||||
this.elapsedRealtimeMs = elapsedRealtimeMs;
|
||||
this.loadDurationMs = loadDurationMs;
|
||||
this.bytesLoaded = bytesLoaded;
|
||||
}
|
||||
}
|
||||
|
||||
/** Descriptor for data being loaded or selected by a media source. */
|
||||
final class MediaLoadData {
|
||||
|
||||
|
|
|
|||
|
|
@ -23,12 +23,12 @@ import androidx.annotation.Nullable;
|
|||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.source.CompositeMediaSource;
|
||||
import com.google.android.exoplayer2.source.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MaskingMediaPeriod;
|
||||
import com.google.android.exoplayer2.source.MediaPeriod;
|
||||
import com.google.android.exoplayer2.source.MediaSource;
|
||||
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadData;
|
||||
import com.google.android.exoplayer2.source.MediaSourceFactory;
|
||||
import com.google.android.exoplayer2.source.ProgressiveMediaSource;
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ import com.google.android.exoplayer2.analytics.AnalyticsListener;
|
|||
import com.google.android.exoplayer2.audio.AudioAttributes;
|
||||
import com.google.android.exoplayer2.decoder.DecoderCounters;
|
||||
import com.google.android.exoplayer2.metadata.Metadata;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadData;
|
||||
import com.google.android.exoplayer2.source.TrackGroup;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
|
|
|
|||
|
|
@ -36,9 +36,9 @@ import com.google.android.exoplayer2.audio.AudioRendererEventListener;
|
|||
import com.google.android.exoplayer2.decoder.DecoderCounters;
|
||||
import com.google.android.exoplayer2.metadata.Metadata;
|
||||
import com.google.android.exoplayer2.source.ConcatenatingMediaSource;
|
||||
import com.google.android.exoplayer2.source.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaSource;
|
||||
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadData;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
import com.google.android.exoplayer2.testutil.ActionSchedule;
|
||||
|
|
|
|||
|
|
@ -26,10 +26,10 @@ import com.google.android.exoplayer2.Format;
|
|||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.Timeline.Period;
|
||||
import com.google.android.exoplayer2.source.BaseMediaSource;
|
||||
import com.google.android.exoplayer2.source.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaPeriod;
|
||||
import com.google.android.exoplayer2.source.MediaSource;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.EventDispatcher;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadData;
|
||||
import com.google.android.exoplayer2.source.TrackGroup;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
|
|
|
|||
|
|
@ -25,12 +25,12 @@ import android.os.Looper;
|
|||
import android.util.Pair;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.exoplayer2.source.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaPeriod;
|
||||
import com.google.android.exoplayer2.source.MediaSource;
|
||||
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
|
||||
import com.google.android.exoplayer2.source.MediaSource.MediaSourceCaller;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadData;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
|
|
|
|||
Loading…
Reference in a new issue