Commit e6b6a86a by olly Committed by Andrew Lewis

Remove support for MKV invisible flag

We haven't seen it used anywhere in practice. It's a niche feature not
supported by any other extractors, and is one of the very few things
stopping us from simplifying MediaSource implementations to not set the
decodeOnly sample flag. This is a simplification that we want to make,
since the current mechanism doesn't work properly for cases where a
downstream decoder adjusts the buffer presentation timestamps so that
they're different on the output side than on the input side.

PiperOrigin-RevId: 316712302
parent 2273b00a
...@@ -176,6 +176,7 @@ ...@@ -176,6 +176,7 @@
timestamps ([#7464](https://github.com/google/ExoPlayer/issues/7464)). timestamps ([#7464](https://github.com/google/ExoPlayer/issues/7464)).
* 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.
* 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
......
...@@ -1196,11 +1196,9 @@ public class MatroskaExtractor implements Extractor { ...@@ -1196,11 +1196,9 @@ public class MatroskaExtractor implements Extractor {
int timecode = (scratch.data[0] << 8) | (scratch.data[1] & 0xFF); int timecode = (scratch.data[0] << 8) | (scratch.data[1] & 0xFF);
blockTimeUs = clusterTimecodeUs + scaleTimecodeToUs(timecode); blockTimeUs = clusterTimecodeUs + scaleTimecodeToUs(timecode);
boolean isInvisible = (scratch.data[2] & 0x08) == 0x08;
boolean isKeyframe = track.type == TRACK_TYPE_AUDIO boolean isKeyframe = track.type == TRACK_TYPE_AUDIO
|| (id == ID_SIMPLE_BLOCK && (scratch.data[2] & 0x80) == 0x80); || (id == ID_SIMPLE_BLOCK && (scratch.data[2] & 0x80) == 0x80);
blockFlags = (isKeyframe ? C.BUFFER_FLAG_KEY_FRAME : 0) blockFlags = isKeyframe ? C.BUFFER_FLAG_KEY_FRAME : 0;
| (isInvisible ? C.BUFFER_FLAG_DECODE_ONLY : 0);
blockState = BLOCK_STATE_DATA; blockState = BLOCK_STATE_DATA;
blockSampleIndex = 0; blockSampleIndex = 0;
} }
......
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