Log a warning when SingleSampleMediaPeriod turns a load error into EOS

Without this no error is currently logged or propagated to EventLogger.
The propagation doesn't happen because
MergingMediaSource.ForwardingEventListener only propagates events
originating from the "main" source in the merge:
<unknown commit>

#minor-release

PiperOrigin-RevId: 354902467
This commit is contained in:
ibaker 2021-02-01 11:13:47 +00:00 committed by Oliver Woodman
parent b9065e8dfa
commit ffc1b5bbef
2 changed files with 7 additions and 0 deletions

View File

@ -2,6 +2,9 @@
### dev-v2 (not yet released)
* Core library:
* Log a warning when `SingleSampleMediaPeriod` transforms a load error
into end-of-stream.
* Extractors:
* Fix Vorbis private codec data parsing in the Matroska extractor
([#8496](https://github.com/google/ExoPlayer/issues/8496)).

View File

@ -33,6 +33,7 @@ import com.google.android.exoplayer2.upstream.Loader.Loadable;
import com.google.android.exoplayer2.upstream.StatsDataSource;
import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Log;
import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.util.Util;
import java.io.IOException;
@ -45,6 +46,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/* package */ final class SingleSampleMediaPeriod
implements MediaPeriod, Loader.Callback<SingleSampleMediaPeriod.SourceLoadable> {
private static final String TAG = "SingleSampleMediaPeriod";
/** The initial size of the allocation used to hold the sample data. */
private static final int INITIAL_SAMPLE_SIZE = 1024;
@ -290,6 +293,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
LoadErrorAction action;
if (treatLoadErrorsAsEndOfStream && errorCanBePropagated) {
Log.w(TAG, "Loading failed, treating as end-of-stream.", error);
loadingFinished = true;
action = Loader.DONT_RETRY;
} else {