- 22 2月, 2018 3 次提交
-
-
由 Oliver Woodman 提交于
-
由 Oliver Woodman 提交于
Allow the position to jump on receiving the first presentable input buffer, if and only if the buffer timestamp differs significantly from what was expected. This prevents a stuck buffering case for streams that are thought to start at t=0, but actually start at t=large_value.
-
由 olly 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=186454715
-
- 20 2月, 2018 26 次提交
-
-
由 olly 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=186200840
-
由 andrewlewis 提交于
If an exception is thrown in an IMA callback it crashes the process with lots of logging from WebView (including several stack traces, etc.). This change wraps ImaAdsLoader code that might throw, skips any remaining ads (as the errors are not recoverable, in general) and notifies a new load error callback so that the application can implement its own handling. The intention is to make the loader robust to unexpected requests from IMA and avoid crashes. Also handle IMA loading an ad in an ad group that has no available ads. In rare cases IMA will try to load an ad for which an error was previously notified, so this drops those load requests allowing playback of the content to continue. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185985850
-
由 aquilescanta 提交于
Issue:#3340 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185973510
-
由 tonihei 提交于
All media periods are part of a queue of windows buffered and played by ExoPlayer. When repeating windows, the current MediaPeriodId is insufficient to distinguish between the repetitions of the same period. This makes it hard to see to which media period load events belong to, and it is also difficult to determine whether two media periods belong to the same logical window or whether they are part of different repetitions of the same window. Therefore this change adds a unique sequence number to each window in the sequence of windows and this sequence number is saved as part of the MediaPeriodId. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185829509
-
由 tonihei 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185681751
-
由 olly 提交于
Issue: #3782 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185673731
-
由 aquilescanta 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185673454
-
由 aquilescanta 提交于
Issue:#3792 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185668919
-
由 tonihei 提交于
Also added comments for all existing devices for easier reference. Issue:#3835 Issue:#3236 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185661900
-
由 andrewlewis 提交于
Also make ad group skipping more robust. After calling onError for an ad, IMA will sometimes trigger an ad group load error, so this needs to be handled in a way that allows some ads to be loaded already for the ad group. This change also fixes calculation of the expected ad index to take into account whether the position is being faked to trigger loading an ad or is the actual player position. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185655844
-
由 andrewlewis 提交于
Releasing the player released the internal playback thread once renderers were released. Releasing a MediaPeriod queued a Loader.ReleaseTask on the loading thread which would post back to the playback thread. If the playback thread had been quit by the time this happened, the release task wouldn't be run. Release on the loading thread instead of the playback thread. This avoids needing to block releasing the player until the loading threads have ended, and ensures that release tasks will run eventually. As part of this change, ExtractorMediaPeriod's call to Extractor.release will now run on the loading thread (which means that all Extractor methods are called on that thread) and other cleanup in ReleaseCallback will run on the loading thread instead of the playback thread. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185651320
-
由 olly 提交于
Issue: #3724 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185548632
-
由 tonihei 提交于
Issue:#3835 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185501181
-
由 andrewlewis 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185138158
-
由 tonihei 提交于
If the period uid doesn't match, the update procedure currently doesn't remove the correct periods. This may cause the player to get stuck or to play the wrong periods. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185129503
-
由 aquilescanta 提交于
Issue:#3816 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185124378
-
由 andrewlewis 提交于
Device models are from https://support.google.com/googleplay/answer/1727131?hl=en. It looks like among these devices Build.MANUFACTURER can be set to either "PHILIPS" or "Philips", based on looking at internal bug reports. Issue: #3807 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185121182
-
由 andrewlewis 提交于
Allow skipping an ad group when requested by IMA, even if we aren't currently playing one, to handle cases where no ads in an ad group will load (so IMA requests resuming content but we never managed to start playing an ad). Use the known ad group index (rather than the expected one) when handling ad group load errors. This ensures we skip the right ad group if we notify IMA of playback errors for every ad in the ad group, then IMA notifies that the ad group is empty via a load error. Also make some other miscellaneous small fixes to ads code: - Avoid warning about unexpected ad group indices more than once. - Output a warning if the ad count in an ad group decreases. - Remove unnecessary assertion. - Fix getting the ad duration for ad indices that haven't loaded yet. - Allow setting an ad group state to its current value. - Fix javadoc for setting the ad resume position. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184831495
-
由 andrewlewis 提交于
The ad index in the ad group may need to skip over ads that failed to load, so it can't just be incremented any more. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184812556
-
由 tonihei 提交于
This feature is supported in the ConcatenatingMediaSource and is easily copied to this media source. Also adding tests to check whether the atomic property works in normal concatenation and in also in nested use. Also fixes a bug where timeline methods of the DeferredTimeline were not correctly forwarded. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184526881
-
由 tonihei 提交于
This could happen when a media source is removed from a DynamicConcatenatingMediaSource and one of its media periods is still active. This media period is only removed by the player after the player received a timeline update and thus we shouldn't release the removed child source as long as it has active media periods. Issue:#3796 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184522836
-
由 andrewlewis 提交于
Resolve the media period for ad playback when resolving a subsequent period and when receiving a timeline where the playing period in range (but wasn't before). Fix the seek position calculation when a current ad must be skipped and is followed by another ad. Check MediaPeriodInfos match when checking MediaPeriodHolders, to handle cases where a future ad should no longer be played. This may involve playing two content media periods consecutively. Issue: #3584 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184514558
-
由 eguven 提交于
DefaultExtractorInput.SCRATCH_SPACE buffer is used to skip data by reading it into this buffer and discarding. Simultaneous use of skip methods corrupts this buffer. Normally the read data is discarded so it doesn't matter but the underlying DataSource may use the buffer too. If it's a CacheDataSource it uses this buffer to read data from upstream then write to cache. Issue: #3762 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184502170
-
由 andrewlewis 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184501752
-
由 andrewlewis 提交于
This avoids reading a format that is not equal because of switching between NO_VALUE and 0. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184298076
-
由 andrewlewis 提交于
This should be a no-op change. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184150266
-
- 01 2月, 2018 11 次提交
-
-
由 tonihei 提交于
Even if a developer synchronizes every method, thread safety is still not guaranteed because the internal callback methods can't be synced from outside. Issue:#3773 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184122072
-
由 olly 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184122057
-
由 olly 提交于
1. Add string for STATE_CANCELED. Lint doesn't like that the switch statement on the state IntDef doesn't have a case for STATE_CANCELED. May as well add one, even if we're not planning on our demo app showing notifications for this state. 2. Replace non-human-readable error message with one provided by ErrorMessageProvider. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184120892
-
由 olly 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184120873
-
由 tonihei 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184119097
-
由 olly 提交于
I think (?) they're harmless, but lint doesn't like them. Using them within the class body means the TargetApi annotation applies, which makes lint happy. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184117951
-
由 hoangtc 提交于
In MediaCodecRenderer, we currently uses codec.getInput/OutputBuffers event though these APIs are deprecated and are not recommended from API 21+. This change makes sure that: - On API 20 and below, we will keep using codec.getInput/OutputBuffers. - On API 21+, we will use getInput/OutputBuffer(index) APIs instead. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184112329
-
由 olly 提交于
*** Reason for rollback *** Broke everything *** Original change description *** Clean up message naming in EPII *** ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184061352
-
由 olly 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184056034
-
由 tonihei 提交于
This make sure all media sources can be reprepared after being released. Issue:#3498 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183990416
-
由 tonihei 提交于
When the dynamic media source contains multiple empty timelines in a row and some of them dynamically change to a non-empty timeline, the window and period indices are not updated correctly because the index of the changed child source is wrong. To fix this bug, the child index is added to the media period holder to have direct access on the current child index to prevent ambiguity. Furthermore, the uid is changed to be the hash code of the MediaSourceHolder not the MediaSource itself to allow adding the same MediaSource twice without violating the unique uid policy. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183973462
-