- 18 Dec, 2019 36 commits
-
-
PiperOrigin-RevId: 286156361
andrewlewis committed -
PiperOrigin-RevId: 286154938
olly committed -
R8 does constant folding, so we need to keep buildRawResourceUri to ensure that resources passed to it are kept. PiperOrigin-RevId: 286153875
andrewlewis committed -
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
krocard committed -
https://github.com/google/ExoPlayer/commit/d48dc4c15933dd8354cbcc6260c48565bb850e15
*** Original commit *** Move getting-stuck-prevention into DefaultLoadControl. We recently added code that prevents getting stuck if the buffer is low and the LoadControl refuses to continue loading (https://github.com/google/ExoPlayer/commit/b84bde025258e7307c52eaf6bbe58157d788aa06). Move this logic into DefaultLoadControl to keep the workaround, and also apply the maximum buffer size check in bytes if enabled. ExoPlayerImplInternal will now throw if a LoadControl lets playback get stuck. This includes the case where DefaultLoadControl reaches its maximum buffer size and not even a mim... *** PiperOrigin-RevId: 286071115
olly committed -
Design doc: https://docs.google.com/document/d/11h0S91KI5TB3NNZUtsCzg0S7r6nyTnF_tDZZAtmY93g/edit Issue: #6161, #5155 PiperOrigin-RevId: 286020313
bachinger committed -
Add experimental method on DefaultRenderersFactory to set the MediaCodecOperationMode on MediaCodecRenderer instances. PiperOrigin-RevId: 286004667
christosts committed -
These annotations are compile-only - so we don't mind they're not accessible at runtime. PiperOrigin-RevId: 285993063
ibaker committed -
Issue: #6773 PiperOrigin-RevId: 285990377
olly committed -
We recently added code that prevents getting stuck if the buffer is low and the LoadControl refuses to continue loading (https://github.com/google/ExoPlayer/commit/b84bde025258e7307c52eaf6bbe58157d788aa06). Move this logic into DefaultLoadControl to keep the workaround, and also apply the maximum buffer size check in bytes if enabled. ExoPlayerImplInternal will now throw if a LoadControl lets playback get stuck. This includes the case where DefaultLoadControl reaches its maximum buffer size and not even a mimimal buffer duration. PiperOrigin-RevId: 285979989
tonihei committed -
This offset allows to improve the calculated live offset because it can take known client-server time offsets into account. PiperOrigin-RevId: 285970738
tonihei committed -
PiperOrigin-RevId: 285964228
ibaker committed -
PiperOrigin-RevId: 285961788
olly committed -
PiperOrigin-RevId: 285956436
ibaker committed -
I want to add fields related to vertical text support, and neither adding another constructor nor updating all call-sites of existing constructors seemed like attractive propositions. PiperOrigin-RevId: 285956024
ibaker committed -
- Remove duplicated null assignments - Move mediaCryptoRequiresSecureDecoder reset to be with all the other mediaCrypto stuff. PiperOrigin-RevId: 285955134
olly committed -
MultiLockAsyncMediaCodecAdapter is an implementation of the MediaCodecAdapter that uses multiple locks to synchronize access to its data compared to the single-lock approach used in DedicatedThreadAsyncMediaCodecAdapter. PiperOrigin-RevId: 285944702
christosts committed -
PiperOrigin-RevId: 285823771
kimvde committed -
Fix the FlacExtractor constructor for the case where seek(0,0) is not called before reading. PiperOrigin-RevId: 285811161
kimvde committed -
PiperOrigin-RevId: 285799995
kimvde committed -
This indicates the extractor has output a Format with a specified maxInputSize that's too small. Failing in FakeTrackOutput ensures this doesn't happen during Extractor tests. PiperOrigin-RevId: 285776069
olly committed -
Manual rollback of https://github.com/google/ExoPlayer/commit/b3f485d7d9c08e39574b72a949166ee4834c3b24 It's technically possible to output a seekable SeekMap with unknown duration. This can occur if the media defines seek points but doesn't define either the overall duration or the duration of the media from the last seek point to the end. PiperOrigin-RevId: 285769121
olly committed -
- 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
olly committed -
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
olly committed -
Currently, resetting the internal state related to the codec in done in 4 places in MediaCodecRenderer: 1. In the constructor to set some sensible initial default. 2. In flushOrReleaseCodec to reset state after flushing 3. In releaseCodec to reset state to default values for a released codec. 4. In initCodec to reset state to defaul values for a new codec. There are actuall only two types of state reset operations: 1. Resetting state for a released codec, so that a new codec isn't influenced by previous codecs. 2. Resetting state after flushing an existing codec. This is a subset of (1). So to simplify the class, this change moves all state resets to two methods corresponding to the two cases above. PiperOrigin-RevId: 285731913tonihei committed -
These are transitively provided by testutil's build.gradle. This makes the core module consistent with the others like ui, hls, dash PiperOrigin-RevId: 285729566
ibaker committed -
These aren't used from any other Gradle files PiperOrigin-RevId: 285723602
ibaker committed -
PiperOrigin-RevId: 285716982
andrewlewis committed -
PiperOrigin-RevId: 285449865
olly committed -
PiperOrigin-RevId: 285422885
olly committed -
PiperOrigin-RevId: 285407744
olly committed -
PiperOrigin-RevId: 285405910
olly committed -
This is in preparation for adding an internal-only change near these lines. PiperOrigin-RevId: 285403671
andrewlewis committed -
These are not useful for estimating the network speed and should be ignored. PiperOrigin-RevId: 285400948
tonihei committed -
The DedicatedThreadAsyncMediaCodecAdapter is an asynchronous MediaCodecAdapter that routes callback to a separate Thread. PiperOrigin-RevId: 285397368
christosts committed -
This may happen for example when trying to load unfinished live media chunks that can only be loaded at real-time playback speed. The flag can be used by the sources to indicate that network transfer will knowingly be throttled, such that transfer listeners like the bandwidth meter can take this information into account. PiperOrigin-RevId: 285397100
tonihei committed
-
- 13 Dec, 2019 4 commits
-
-
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
ibaker committed -
This is a useful test to see if it works well in a real situation. PiperOrigin-RevId: 285386471
ibaker committed -
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: 285384841tonihei committed -
Document that limit() is respected, but position() and arrayOffset() are assumed to be zero. PiperOrigin-RevId: 285384613
ibaker committed
-