- 11 Mar, 2015 1 commit
-
-
Oliver Woodman committed
-
- 10 Mar, 2015 11 commits
-
-
- The fmp4 extractor was reading from sampleEncryptionData even for not-encrypted samples, which I'm pretty sure isn't right. Fixed this. For all encrypted content I've seen, this change will be a no-op because isEncrypted is always true if there's an encryptionBox present. - Made webm extractor only set cryptoInfo if isEncrypted is true. - Align variable naming in the two extractors, for clarity.
Oliver Woodman committed -
Oliver Woodman committed
-
Oliver Woodman committed
-
- Rather than returning a map, return a DrmInitData object, with mapped and non-mapped implementations. - Include a suitable mimeType to pass to the MediaDrm. Previously we were incorrectly passing the mimeType of the samples, where-as MediaDrm expects the container mimeType. Note that it doesn't matter whether the mimeType starts with "video" or "audio", hence using video mimeTypes everywhere.
Oliver Woodman committed -
Oliver Woodman committed
-
Oliver Woodman committed
-
Not yet used by anything. Issue: #151
Oliver Woodman committed -
- Correctly handle bandwidth NO_ESTIMATE case. - Don't consider switching without a previous chunk.
Oliver Woodman committed -
Set the duration on the MediaFormat instead.
Oliver Woodman committed -
Oliver Woodman committed
-
Oliver Woodman committed
-
- 06 Mar, 2015 1 commit
-
-
Oliver Woodman committed
-
- 05 Mar, 2015 1 commit
-
-
Issue: #327
Oliver Woodman committed
-
- 04 Mar, 2015 1 commit
-
-
Oliver Woodman committed
-
- 03 Mar, 2015 6 commits
-
-
It was possible for a codec input buffer to be filled with two frames' worth of data, if seekTo was called after populating a buffer, if waitingForKeys was true and seeking did not trigger a flush. This caused the CryptoInfo to be configured as if the input buffer contained a large amount of reconfiguration data as cleartext. Move resetting waitingForKeys to flushCodec, so that we don't try to read the next sample from the source until the first one has been consumed or discarded.
Oliver Woodman committed -
Oliver Woodman committed
-
Oliver Woodman committed
-
Also remove uriIsFullStream. It's not doing anything particularly useful, so I think it makes sense to remove it from the public API; it's unlikely anyone is using it. Issue: #329
Oliver Woodman committed -
It seems fairly safe to assume a playlist wont be blacklisted within 1ms of the device booting :).
Oliver Woodman committed -
Add support for GEOB and PRIV ID3 frames.
Andrey Udovenko committed
-
- 27 Feb, 2015 4 commits
-
-
Mime type string always finish with a single 0 byte
J. Oliva committed -
- Fixed issue in the calculation of size of objectData - Indentation fixes
J. Oliva committed -
Removed the unused method indexOfNot
J. Oliva committed -
Modified parse method to take into account different lengths for the termination character (1 for UTF-8 and ISO-8859-1; 2 for UTF-16 and UTF-16BE).
J. Oliva committed
-
- 26 Feb, 2015 2 commits
-
-
For fields encoded using UTF-16 or UTF-16BE charsets when looking for termination character we have to look for two zero consecutive bytes. Otherwise, as many characters encoded with UTF-16 or UTF-16BE has one of their 2 bytes set with the value zero, we will be truncating text fields.
J. Oliva committed -
- Added support for ID3 frames of types GEOB and PRIV. - GEOB type is commonly used by dynamic ads provider to include in the stream information about the ads to be played. - PRIV type is commonly used for time synchronization (example: synchronizing playback of a live stream and its webvtt captions) and also by analytics companies to include tracking information in the stream. - Added a sample stream from Apple that contains ID3 metadata.
J. Oliva committed
-
- 25 Feb, 2015 6 commits
-
-
Better management of blacklisted playlists
ojw28 committed -
Note: I'm fairly confident that NetworkLoadable.Parser implementations can live without the inputEncoding being specified. But not completely 100%... Issue: #311 Issue: #56
Oliver Woodman committed -
The return value here assumed that the time being searched for was beyond the start time of the last segment. This fix also handles the case where the time is prior to the start of the first segment.
Oliver Woodman committed -
The only downside of this change is that MediaPresentationDescriptionParser is no longer stateless.
Oliver Woodman committed -
This issue didn't have any material impact on playbacks, but fixing it anyway to be technically correct.
Oliver Woodman committed -
1. Clear prefixFlags when a NAL unit is found. 2. continueBuffering should return true if loading is finished.
Oliver Woodman committed
-
- 23 Feb, 2015 4 commits
-
-
Calling clearStaleBlacklistedPlaylist within getNextVariantIndex method.
J. Oliva committed -
Clear stale blacklist in getChunkOperation before getting next variant. This ensures: 1.- Player resilience to failures, always trying to look for a working playlist that allows player to non stop playback. 2.- High quality blacklisted playlists can be reused in case they go up after a failure. Player always trying to provide the best user experience.
J. Oliva committed -
- Method evaluatePlayListBlackListedTimestamps renamed to clearStaleBlacklistedPlaylists - Code formatted to be consistent with style elsewhere.
J. Oliva committed -
Added an expiration time field to playlists blacklisted to allow Exoplayer to continue playback when playlists that failed were recovered from a bad state. In live environments, some times occur that primary encoder stop working for a while. In that cases, HLS failover mechanism in the player should detect the situation and “switch” to playlists served by the backup encoder (in case a backup encoder exists). This was well managed before these changes. However, and to ensure a playback experience that can recover itself from temporary issues, we cannot blacklist a playlist forever. When streaming live events using HLS, it is quite typical that the player needs to switch from primary to backup playlists, and from backup to primary ones, from time to time to have playback working when temporary issues in the network/encoder are happening. Most of the issues are recoverable, so what I have implemented is a mechanism that makes blacklisted playlist to be available again after a while (60 seconds). Evaluation of this algorithm should happen just when something fails. If player is working with a backup playlist, it shouldn’t switch to the primary one at least something fail.
J. Oliva committed
-
- 20 Feb, 2015 2 commits
-
-
Support is provided for the following schemes: urn:mpeg:dash:utc:direct:2012 urn:mpeg:dash:utc:http-iso:2014 urn:mpeg:dash:utc:http-xsdate:2012 urn:mpeg:dash:utc:http-xsdate:2014
Oliver Woodman committed -
Oliver Woodman committed
-
- 19 Feb, 2015 1 commit
-
-
- Data needs to be unescaped before it's passed to SeiReader. - SeiReader should loop over potentially multiple child messages. - I also changed the sample passed to the EIA-608 renderer so that it's the entire sei message payload. The first 8 bytes are unnecessary, but it seems nicer conceptually to do it this way. Issue: #295
Oliver Woodman committed
-