Commit 7edc4b1f by olly Committed by Oliver Woodman

FLV: Ignore invalid SCRIPTDATA name type, rather than fail playback

Issue: #7675
PiperOrigin-RevId: 323371286
parent 67408ca7
...@@ -206,6 +206,8 @@ ...@@ -206,6 +206,8 @@
* Ogg: Allow non-contiguous pages * Ogg: Allow non-contiguous pages
([#7230](https://github.com/google/ExoPlayer/issues/7230)). ([#7230](https://github.com/google/ExoPlayer/issues/7230)).
* Matroska: Remove support for "Invisible" block header flag. * Matroska: Remove support for "Invisible" block header flag.
* FLV: Ignore SCRIPTDATA segments with invalid name types, rather than failing
playback ([#7675](https://github.com/google/ExoPlayer/issues/7675)).
* Extractors: * Extractors:
* Add `IndexSeeker` for accurate seeks in VBR MP3 streams * Add `IndexSeeker` for accurate seeks in VBR MP3 streams
([#6787](https://github.com/google/ExoPlayer/issues/6787)). This seeker ([#6787](https://github.com/google/ExoPlayer/issues/6787)). This seeker
......
...@@ -17,7 +17,6 @@ package com.google.android.exoplayer2.extractor.flv; ...@@ -17,7 +17,6 @@ package com.google.android.exoplayer2.extractor.flv;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ParserException;
import com.google.android.exoplayer2.extractor.DummyTrackOutput; import com.google.android.exoplayer2.extractor.DummyTrackOutput;
import com.google.android.exoplayer2.util.ParsableByteArray; import com.google.android.exoplayer2.util.ParsableByteArray;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -65,11 +64,11 @@ import java.util.Map; ...@@ -65,11 +64,11 @@ import java.util.Map;
} }
@Override @Override
protected boolean parsePayload(ParsableByteArray data, long timeUs) throws ParserException { protected boolean parsePayload(ParsableByteArray data, long timeUs) {
int nameType = readAmfType(data); int nameType = readAmfType(data);
if (nameType != AMF_TYPE_STRING) { if (nameType != AMF_TYPE_STRING) {
// Should never happen. // Ignore segments with unexpected name type.
throw new ParserException(); return false;
} }
String name = readAmfString(data); String name = readAmfString(data);
if (!NAME_METADATA.equals(name)) { if (!NAME_METADATA.equals(name)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment