Commit graph

5325 commits

Author SHA1 Message Date
Oliver Woodman
38bc7355c7 Merge pull request #6678 from phhusson:feature/enable-multi-metadata-tracks
PiperOrigin-RevId: 290032841
2020-01-17 13:59:48 +00:00
olly
5bdcb5fd56 DASH: Output Format before InitializationChunk load completes
This optimization allows a ChunkSampleStream to output track
formats as soon as they're parsed during an InitializationChunk
load, rather than waiting until after the InitializationChunk
load is completed.

In DASH VOD, a single InitializationChunk typically loads the
moov and sidx atoms in that order. Hence for long form content
where the sidx is a non-trivial size, this may result in the
track formats being output a non-negligible period of time
sooner than was previously the case. This allows downstream
renderers to start codec initialization sooner, potentially
decreasing startup latency.

For a single test stream on a fast & stable network, this
pretty consistently reduced elapsed time until both audio and
video codecs have been initialized from ~0.5s to ~0.3 seconds
on a Galaxy S8. For 5 test runs without and with these patches,
the eventTime logged by EventLogger for the second decoder
init were:

Without (secs): 0.47 0.47 0.45 0.48 0.46
With (secs)   : 0.32 0.33 0.34 0.31 0.40

PiperOrigin-RevId: 289845089
2020-01-17 13:59:37 +00:00
olly
124510276f Optimize chunks to init their outputs before opening the DataSource
The current order of operations means that the Format is only passed
to the chunk's output after the DataSource has been opened. This
means that establishing the network connection and the downstream
renderers initializing their codecs are effectively serialized to
occur one after the other.

In the new order, the Format is passed to the chunk's output before
the DataSource has been opened. This allows the downstream renderers
to initialize their codecs in parallel with the network connection
being established, and hence latency at the start of playback is
reduced.

PiperOrigin-RevId: 289841854
2020-01-17 13:59:33 +00:00
olly
771aa32825 Use customCacheKey in DownloadHelper.createMediaSource
Issue: #6870
PiperOrigin-RevId: 289658261
2020-01-17 13:59:22 +00:00
olly
32021602ca Rename ID3 tag to Afro-Punk
PiperOrigin-RevId: 289490708
2020-01-17 13:58:22 +00:00
olly
4e4a415d6c DownloadService: No-op cleanup
Issue: #6798
PiperOrigin-RevId: 289424582
2020-01-17 13:58:18 +00:00
olly
61130a593d Deprecate DownloadService state change methods
As discovered whilst investigating #6798, there are cases
where these methods are not correctly. They were added as
convenience methods that could be overridden by concrete
DownloadService implementations, but since they don't work
properly it's preferable to require application code to
listen to their DownloadManager directly instead.

Notes:

- The original proposal to fix #6798 stored the state change
events in memory until they could be delivered. This approach
is not ideal because the events still end up being delivered
later than they should be. We also want to fix the root cause
in a different way that does not require doing this.
- This change does not fix #6798. It's a preparatory step.

Issue: #6798
PiperOrigin-RevId: 289418555
2020-01-17 13:58:11 +00:00
olly
865e014877 PlayerTrackEmsgHandler: Release sample queue in release()
This change makes it clear the SampleQueue doesn't outlive
the wrapping PlayerTrackEmsgHandler, and releases it from
PlayerTrackEmsgHandler.release().

This change is a no-op because calling release() is the
same as reset() in this case (the behavior only differs if
a non-dummy DrmSessionManager is being used).

PiperOrigin-RevId: 289416622
2020-01-17 13:58:07 +00:00
aquilescanta
cebad350fa Split HlsSampleStreamWrapper.init into two methods
As a result, onMediaChunkLoadStarted gets invoked on the loading thread, and
init on the playback thread, matching the thread access comments.

Issue:#6321
PiperOrigin-RevId: 289167981
2020-01-17 13:58:03 +00:00
Oliver Woodman
2902452beb Merge pull request #6797 from DolbyLaboratories:dev-v2-ac4-drm
PiperOrigin-RevId: 289092332
2020-01-17 13:57:58 +00:00
olly
ca11e56fe6 Add tests to validate FLAC decoder output
PiperOrigin-RevId: 289091494
2020-01-17 13:57:41 +00:00
olly
91d9405416 Avoid OMX.qti.audio.decoder.flac
Unfortunately devices such as the MI 8 do not provide an alternative
working decoder. Some Vivo devices do provide one though.

PiperOrigin-RevId: 288911897
2020-01-17 13:56:51 +00:00
olly
4e767faa1c Fix extension FLAC decoder to correctly handle non-16-bit depths
PiperOrigin-RevId: 288860159
2020-01-17 13:56:35 +00:00
andrewlewis
b35499f806 Resolve TrueHD spec TODO
PiperOrigin-RevId: 288855515
2020-01-17 13:56:31 +00:00
Oliver Woodman
91d2d8b40e Merge pull request #6836 from DolbyLaboratories:dev-v2-refineAC4
PiperOrigin-RevId: 288772277
2020-01-17 13:56:09 +00:00
kimvde
42897b26c7 FlacExtractor: add condition for zero-length reads
This improves readability by making clearer that reading no bytes from
the input in readFrames() is an expected case if the buffer is full.

PiperOrigin-RevId: 288711841
2020-01-17 13:56:03 +00:00
tonihei
6395d44bfa Disable chronometer for playback speeds != 1.0
This doesn't work because the Chronometer text layout can only count in realtime.

Issue:#6816
PiperOrigin-RevId: 288711702
2020-01-17 13:55:58 +00:00
andrewlewis
e1a110e651 Fix TrueHD chunking in Matroska
Issue: #6845
PiperOrigin-RevId: 288688716
2020-01-17 13:55:49 +00:00
kimvde
7fe55cd468 Use FlacLibrary.isAvailable in FlacExtractor selection
PiperOrigin-RevId: 288667790
2020-01-17 13:55:40 +00:00
olly
eb0acb4155 Fix playback for Vivo codecs that output non-16-bit audio
PiperOrigin-RevId: 288468497
2020-01-17 13:55:02 +00:00
olly
20e7684c6c FlacExtractor: Fix possible skipping of frame boundaries
PiperOrigin-RevId: 288304477
2020-01-17 13:54:47 +00:00
kimvde
be3257e87a Simulate IO exceptions in all FlacExtractor tests
- Simulate IO exceptions in the test using FlacBinarySearchSeeker for
  seeking in FlacExtractorTests. This makes the test slower but covers
  more test cases.

PiperOrigin-RevId: 288285057
2020-01-17 13:54:37 +00:00
olly
1f85cd9afe Remove WavExtractor from the nullness blacklist
PiperOrigin-RevId: 288292488
2020-01-17 13:54:33 +00:00
tonihei
d609c3b666 Support 5G in network type detection
PiperOrigin-RevId: 288280500
2020-01-17 13:54:27 +00:00
ibaker
63eaf1144c Fix MatroskaExtractor to use blockDurationUs not durationUs
This typo was introduced in ddb70d96ad
when migrating a static method with parameter `durationUs` to an
instance method where the correct field to use was `blockDurationUs`
(but `durationUs` also exists).

The test that catches this was only added in 45013ece1e (and
therefore configured with the wrong expected output data).

issue:#6833
PiperOrigin-RevId: 288274197
2020-01-17 13:53:43 +00:00
kimvde
1b764c2d30 Add unit tests to FLAC extractor related classes
PiperOrigin-RevId: 287973192
2020-01-17 13:52:54 +00:00
olly
97be06529c Use MIME types rather than PCM encodings for ALAW and MLAW
PiperOrigin-RevId: 287999703
2020-01-17 13:52:47 +00:00
andrewlewis
1f505fa9fd Show ad markers after the window duration
Issue: #6552
PiperOrigin-RevId: 287964221
2020-01-17 13:52:39 +00:00
olly
90a67b59c5 Add support for IMA ADPCM in WAV
PiperOrigin-RevId: 287854701
2020-01-17 13:52:33 +00:00
olly
ef0066f08a Support twos codec in MP4
Issue: #5789
PiperOrigin-RevId: 287828559
2020-01-17 13:52:29 +00:00
olly
0e1670bb23 Document overriding of drawables for PlayerControlView
Issue: #6779
PiperOrigin-RevId: 287828273
2020-01-17 13:52:24 +00:00
olly
b36c5e9973 Document overriding drawables for notifications
Issue: #6266
PiperOrigin-RevId: 287821640
2020-01-17 13:52:20 +00:00
andrewlewis
7fd0b1d872 Fix handling of E-AC-3 streams with AC-3 frames
Issue: #6602
PiperOrigin-RevId: 287816831
2020-01-17 13:52:16 +00:00
olly
1edcc6c4f7 Don't use WavHeader.averageBytesPerSecond
It's unreliable for at least one IMA ADPCM file I've found.
Calculating the blockIndex to seek to using exact properties
also seems more robust.

Note this doesn't change anything for the existing PCM test,
since averageBytesPerSecond is set correctly. It does make
a difference for an upcoming IMA ADPCM test though.

PiperOrigin-RevId: 287814947
2020-01-17 13:52:11 +00:00
andrewlewis
3cf88bb48b Fix typos
PiperOrigin-RevId: 287810018
2020-01-17 13:52:06 +00:00
olly
3bce2138c1 Fix handling of network transitions in RequirementsWatcher
Issue: #6733
PiperOrigin-RevId: 286621715
2020-01-17 13:51:34 +00:00
olly
355b3afabd Read arrays directly from Parcel
PiperOrigin-RevId: 286197990
2020-01-17 13:50:52 +00:00
krocard
54f6f4823a Parse MP3 header to retrieve the nb of sample per frames
Add support for MP3 as an encoding format for passthrough.

This change does not change the observable
behavior of Exoplayer.

Also name the magics.

#exo-offload

PiperOrigin-RevId: 286146539
2020-01-17 13:50:43 +00:00
kimvde
37e65ec0f2 Add FlacExtractorSeekTest
PiperOrigin-RevId: 285823771
2020-01-17 13:50:12 +00:00
kimvde
fcac5af82d Fix FlacExtractor construction
Fix the FlacExtractor constructor for the case where seek(0,0) is not called before reading.

PiperOrigin-RevId: 285811161
2020-01-17 13:50:04 +00:00
kimvde
bf9f49a91b Implement seeking from seektable in FLAC extractor
PiperOrigin-RevId: 285799995
2020-01-17 13:50:01 +00:00
olly
7bd912f895 Clean up WavExtractor PCM output
- Make extractor output samples that are uniformly distributed
  with respect to time, with a target of ~10 samples per second.
  The old approach could in theory put every frame into its own
  sample, which would be very inefficient downstream because we'd
  need to pass them individually to MediaCodec. It could also put
  data corresponding to a long duration of time into a single
  sample (e.g. if the sample rate of the content is low), which
  is bad downstream because we decide whether to set the decodeOnly
  flag on a per sample basis. More generally, the new approach
  is more predictable :).

- Stop using the WavSeekMap to get sample timestamps, and instead
  calculate them directly from the number of frames output. It's
  more obviously correct, particularly for data formats like IMA
  ADPCM where we'll need to adjust the data prior to output.

PiperOrigin-RevId: 285750010
2020-01-17 13:49:57 +00:00
andrewlewis
27b06e9ad9 Fix ParameterName warnings in core tests
PiperOrigin-RevId: 285716982
2020-01-17 13:49:29 +00:00
olly
052550e90e Rename getPhysicalDisplaySize to getCurrentDisplayModeSize
PiperOrigin-RevId: 285405910
2020-01-17 13:49:05 +00:00
ibaker
18cdd8ece2 Add ISO-8859-1 awareness to IcyDecoder
Also change IcyInfo.rawMetatadata from String to byte[]

ICY doesn't specify the character encoding, and there are streams
not using UTF-8 (issue:#6753). It seems the default of at least one
server is ISO-8859-1 so let's support that as a fallback:
https://github.com/savonet/liquidsoap/issues/411#issuecomment-288759200

Also update IcyDecoder to skip strings it doesn't recognise at all
instead of decoding invalid characters.

The feed from issue:#6753 now decodes accents correctly:
EventLogger:   ICY: title="D Pai - Le temps de la rentrée", url="null"
PiperOrigin-RevId: 285388522
2020-01-17 13:46:57 +00:00
tonihei
5737815ee8 Remove API version dependency of Util.normalizeLanguageCode
We previously used Locale.fromLanguageTag and then toLanguageTag to automatically
filter out invalid tags and to replace deprecated tags. However, this only works
for API 21+.

This change does no longer rely on the platform methods and instead:
 1. Keeps invalid tags as they are. This may help if developers rely on
    non-spec-complaint language tags (for example, #6681).
 2. Adds a list of deprcated tags and their modern replacements to our code
 3. Normalizes some short codes that have been superseded by macrolanguage codes by
    their macrolanguage equivalent.

Issue:#6681
PiperOrigin-RevId: 285384841
2020-01-17 13:43:30 +00:00
kimvde
c832896247 Refactor sample number computation in FLAC seeking
Retrieve the sample number in the extractor instead of passing a holder
to FlacBinarySearchSeeker. This change makes the code easier to
understand and is required to implement the seeking from the seek table.

PiperOrigin-RevId: 285241862
2020-01-17 13:43:16 +00:00
olly
4ea913fc78 Create WavExtractor.OutputWriter to handle different data formats
- Create PcmOutputWriter for PCM.
- In a future change an ImaAdPcmOutputWriter will be introduced
  for IMA ADPCM support.

PiperOrigin-RevId: 285238246
2020-01-17 13:43:12 +00:00
olly
d62dc9dcfb Remove assumption that WAV files only contain PCM encoded data
- WavHeader is now immutable and contains only values parsed out
  of the WAVE FMT chunk. It no longer contains a C.PcmEncoding
  encoding, or mutable data bounds.
- WavHeaderReader now parses the WAVE header chunks without any
  additional logic (e.g. validating the block alignment value,
  which is format type dependent).
- The SeekMap part of WavHeader is split out into WavSeekMap.

PiperOrigin-RevId: 285232498
2020-01-17 13:43:07 +00:00
olly
1144926380 Add WavHeader.samplesPerBlock (currently always == 1)
PiperOrigin-RevId: 284961417
2020-01-17 13:42:34 +00:00
kimvde
fe61cfee2c Remove duplicated logic in FlacReader
PiperOrigin-RevId: 284952647
2020-01-17 13:42:30 +00:00
kimvde
910bd8bdc5 Implement binary search seeking for FLAC extractor
PiperOrigin-RevId: 284814594
2020-01-17 13:42:07 +00:00
ibaker
4ed512d611 Fix javadoc warnings exposed by -Xdoclint
PiperOrigin-RevId: 284776943
2020-01-17 13:40:49 +00:00
kimvde
ff1efd4ec2 Add peek() method to ExtractorInput
PiperOrigin-RevId: 284537150
2020-01-17 13:39:27 +00:00
kimvde
24afcdc36b Remove TODO for supporting streams in Java FLAC extractor
Flac streams exist but are not commonly used. Also, they are not
supported by the FLAC extension extractor.

PiperOrigin-RevId: 284514327
2020-01-17 13:39:18 +00:00
kimvde
54413c26d4 Make metadata field nullable in FlacStreamMetadata
This makes the format metadata null (instead of an empty Metadata
object) when it is not provided, and is therefore consistent with the
other extractors behavior.

PiperOrigin-RevId: 284171148
2020-01-17 13:37:58 +00:00
olly
a5ee17ec26 Fix casting to not need warning suppression
Also remove getRendererCapabilities arg that's now always null.

PiperOrigin-RevId: 283966795
2020-01-17 13:36:55 +00:00
andrewlewis
023e141be8 Verify metadata in extractor tests
PiperOrigin-RevId: 283960017
2020-01-17 13:36:40 +00:00
aquilescanta
0a0a478294 Add a test for SampleQueue capacity increases
Also remove redundant line

PiperOrigin-RevId: 283956203
2020-01-17 13:36:33 +00:00
aquilescanta
14897fb6df Invert the ownership scheme between SampleQueue and SampleMetadataQueue
Saves around 200 lines of code. High level overview:
- Rename SampleQueue to SampleDataQueue.
- Rename SampleMetadataQueue to SampleQueue.

This CL should not introduce behavior changes. The only significant
changes in synchronization should be:
+ Add synchronized keyword to isReady.
  - Seems to be necessary.
+ Add synchronized keyword to SampleQueue.sampleMetadata.
  - Before this change, SampleQueue.sampleMetadata could acquire the
    SampleMetadataQueue lock three times in a single method call.

Other miscellaneous improvements:
+ Put all private methods at the bottom.
+ Move release() to the right category.

PiperOrigin-RevId: 283795844
2020-01-17 13:36:09 +00:00
aquilescanta
9974670cc7 Make DownloadHelper pass DrmSessionManager to MediaSources
PiperOrigin-RevId: 283795201
2020-01-17 13:35:21 +00:00
andrewlewis
9c23888f1c Don't try to track buffersInCodec with tunneling
PiperOrigin-RevId: 283551324
2020-01-17 13:30:38 +00:00
kimvde
630992d05b Allow no output frame holder BinarySearchSeeker
PiperOrigin-RevId: 283544187
2020-01-17 13:29:44 +00:00
kimvde
f09f62da4f Expose metadata in FLAC extractor
PiperOrigin-RevId: 281538423
2020-01-17 13:20:54 +00:00
kimvde
a558501e38 Remove TODO around optimizing sample data outputs in FlacExtractor
Preliminary measurement showed that the results were similar to the non-optimized
version.

PiperOrigin-RevId: 281255476
2020-01-17 13:19:59 +00:00
kimvde
dcebf93ab4 Add Java FLAC extractor
Seeking, live streams support and exposure of vorbis and ID3 data
are not part of this commit.

Issue: #6406
PiperOrigin-RevId: 281083332
2020-01-17 13:17:53 +00:00
Oliver Woodman
27e4855830 Fix tests for 2.11.1 2019-12-20 22:18:52 +00:00
olly
f6dad5cee0 Enable blacklisting for HTTP 416
Where media segments are specified using byte ranges, it makes
sense that a server might return 416 (which we don't consider
for blacklisting) if the segment is unavailable, rather than
the 404 (which we do consider for blacklisting) that we expect
when media segments are only specified using a URL.

Issue: #6775
PiperOrigin-RevId: 286620698
2019-12-20 20:51:58 +00:00
tonihei
c299748132
Fix build by saving periodIndex to separate variable 2019-12-20 16:47:42 +00:00
tonihei
5d728abc41
Fix potentially wrong window index in onMediaPeriodCreated.
Issue:#6776
2019-12-20 16:38:34 +00:00
olly
c6036d5271 Add test case for mdat atom extending beyond the file length
Issue: #6774
PiperOrigin-RevId: 286576383
2019-12-20 16:08:25 +00:00
olly
87865a5cc4 DefaultDownloadIndex: Clear failure reason when removing download
The Download constructor considers it invalid to have a failure
reason if the download isn't in the failed state. Unfortunately,
calling DefaultDownloadIndex.removeAllDownloads when there's a
failed download will change the state without clearing the reason.
If the downloads are then read back from the DefaultDownloadIndex
we end up violating the Download constructor assertion.

This change clears the failed reason for any existing rows in the
invalid state, and also fixes the root cause that allows invalid
rows to enter the table in the first place.

Issue: #6785
PiperOrigin-RevId: 286576242
2019-12-20 16:07:43 +00:00
olly
406acfc38f Relax MP4 sniffing to allow an atom to extend beyond the file length
Issue: #6774
PiperOrigin-RevId: 286575797
2019-12-20 16:07:35 +00:00
olly
e8cb7b2370 Fix typo
Merge of https://github.com/google/ExoPlayer/pull/6793

PiperOrigin-RevId: 286556008
2019-12-20 16:07:26 +00:00
tonihei
b7bc1fee9f Add missing @Nullable to MediaCodecAudioRenderer.getMediaClock
Without this @Nullable, potential subclasses can't  override the
method to return null if they don't want to use the renderer as a
media clock.

Issue:#6792
PiperOrigin-RevId: 286545736
2019-12-20 16:07:11 +00:00
olly
63f7b99836 Bump to 2.11.1
PiperOrigin-RevId: 286368964
2019-12-19 14:47:43 +00:00
ibaker
5d2ca02c5a Unwrap all nested IntDef values
This seems to work with R8 but interact badly with ProGuard.

issue:#6771
PiperOrigin-RevId: 286215262
2019-12-18 20:06:03 +00:00
andrewlewis
b4873e55e1 Fix keep rule for VideoDecoderOutputBuffer
PiperOrigin-RevId: 286156361
2019-12-18 19:30:22 +00:00
andrewlewis
c9109f437c Ensure raw resources are kept
R8 does constant folding, so we need to keep buildRawResourceUri
to ensure that resources passed to it are kept.

PiperOrigin-RevId: 286153875
2019-12-18 19:30:08 +00:00
ibaker
166e389c56 Suppress ProGuard warnings about javax.annotation
These annotations are compile-only - so we don't mind they're not
accessible at runtime.

PiperOrigin-RevId: 285993063
2019-12-18 19:29:35 +00:00
olly
0a701abafe Retain AV1 constructor for DefaultRenderersFactory
Issue: #6773
PiperOrigin-RevId: 285990377
2019-12-18 19:29:18 +00:00
olly
250a5deab5 Add more SeekMap assertions, and "fix" MatroskaExtractor
In MatroskaExtractor, if the last cue time exceeds the duration
specified in the header, then we end up generating a negative
duration chunk as the last item in the SeekMap. We should probably
not do this, so drop it instead.

Note: Matroska does have a CueDuration element, but it's not used
in the one problematic file I've found.
PiperOrigin-RevId: 285738418
2019-12-18 19:27:27 +00:00
ibaker
4653592d0e Propagate HTTP request headers through CacheDataSource
This has been broken since
c3d6be3afd
and broken for ICY (where I noticed the problem) since
5695bae9d8.
ICY symptom is that we see no repeated metadata, because the
Icy-MetaData:1 header doesn't make it to the server so we never get back
icy-metaint.

PiperOrigin-RevId: 285379234
2019-12-18 19:25:57 +00:00
tonihei
53d30d80a5 Fix bug where C.TIME_UNSET was used for calcutations.
The presentationTimeOffsetMs may be C.TIME_UNSET for VOD content
and shouldn't be used in calculations for the windowStartTime.

PiperOrigin-RevId: 285363095
2019-12-18 19:25:30 +00:00
olly
5bead4acbb Make DefaultTimeBar exclude itself for gestures
Issue: #6685
PiperOrigin-RevId: 284736041
2019-12-18 19:23:03 +00:00
olly
a4a9cc9fd0 Suppress rawtypes warning when instantiating generic array
Change FakeAdaptiveMediaPeriod back to this style for consistency.

PiperOrigin-RevId: 284967667
2019-12-11 13:49:45 +00:00
samrobinson
03b02f98df Fix an issue where a keyframe was not skipped.
Keyframe was rendered rather than skipped when performing
an exact seek to a non-zero position close to the start of
the stream.

PiperOrigin-RevId: 284798460
2019-12-11 13:48:42 +00:00
olly
1de7ec2c70 Fix bug removing entries from CacheFileMetadataIndex
Issue: #6621
PiperOrigin-RevId: 284743414
2019-12-10 12:39:30 +00:00
olly
914a8df0ad MatroskaExtractor: Support lacing in full blocks
Caveats:

- Block additional data is ignored if the block is laced
  and contains multiple samples. Note that this is not
  a loss of functionality (SimpleBlock cannot have block
  additional data, and lacing was previously completely
  unsupported for Block)

- Subrip and ASS samples are dropped if they're in laced
  blocks with multiple samples (I don't think this is
  valid anyway)

Issue: #3026
PiperOrigin-RevId: 284545197
2019-12-09 17:58:23 +00:00
olly
0065f63f48 MatroskaExtractor: Constrain use of sample state member variables
This change constrains the use of sample state member variables to
writeSampleData, finishWriteSampleData and resetWriteSampleData.
Using them elsewhere gets increasingly confusing when considering
features like lacing in full blocks. For example sampleBytesWritten
cannot be used when calling commitSampleToOutput in this case
because we need to write the sample data for multiple samples
before we commit any of them.

Issue: #3026
PiperOrigin-RevId: 284541942
2019-12-09 17:57:10 +00:00
olly
567f2a6575 Fix Javadoc issues
PiperOrigin-RevId: 284509437
2019-12-09 16:47:18 +00:00
olly
7e93c5c0b6 Enable physical display size hacks for API level 29
For AOSP TV devices that might not pass manual verification.

PiperOrigin-RevId: 284154763
2019-12-06 23:28:05 +00:00
olly
22f25c57bb MatroskaExtractor naming cleanup II
- Remove "lacing" from member variables. They're used even if
  there is no lacing (and the fact that lacing is the way of
  getting multiple samples into a block isn't important).

Issue: #3026
PiperOrigin-RevId: 284152447
2019-12-06 23:27:58 +00:00
olly
5973b76481 MatroskaExtractor naming cleanup
- Change sampleHasReferenceBlock to a block reading variable, which is
  what it is (the distinction didn't matter previously, but will do so
  when we add lacing support in full blocks because there wont be a 1:1
  relationship any more.
- Move sampleRead to be a reading state variable.
- Stop abbreviating "additional"

Issue: #3026
PiperOrigin-RevId: 284000937
2019-12-06 23:27:52 +00:00
andrewlewis
4f363b1492 Fix mdta handling on I/O error
An I/O error could occur while handling the start of an mdta box, in
which case retrying would cause another ContainerAtom to be added. Fix
this by skipping the mdta header before updating container atoms.

PiperOrigin-RevId: 284000715
2019-12-06 23:27:43 +00:00
tonihei
1e609e245b Add format and renderer support to renderer exceptions.
This makes the exception easier to interpret and helps with debugging of
externally reported issues.

PiperOrigin-RevId: 283965317
2019-12-06 23:27:11 +00:00
samrobinson
eb5016a6ff Fix MCR comment line break.
PiperOrigin-RevId: 283958680
2019-12-06 23:24:57 +00:00
olly
e10a78e6b7 Add NonNull annotations to text packages
PiperOrigin-RevId: 283951181
2019-12-06 23:24:42 +00:00
olly
cab05cb71d Two minor nullability fixes
PiperOrigin-RevId: 283810554
2019-12-06 23:24:11 +00:00
olly
9f44e902b1 Fix incorrect DvbParser assignment
PiperOrigin-RevId: 283791815
2019-12-06 23:23:48 +00:00