- 08 3月, 2018 2 次提交
-
-
由 andrewlewis 提交于
Before this change, HlsMediaSource timelines had a period starting at the epoch. For VOD streams the window position in the period was the program date time. This change makes period and initial window positions match. For live streams the window position advances as segments are removed, so its position in the period is the difference between the initial program date time and the program date time of the latest playlist. This also makes it possible to insert ads in VOD HLS content with program date time, as the period and window are now aligned. Issue: #3865 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=187590948
-
由 andrewlewis 提交于
AdsMediaSource must be top-level. Currently the (deprecated) ImaAdsMediaSource can't be used because it prepares its contained AdsMediaSource as a child source. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=186990882
-
- 01 3月, 2018 1 次提交
-
-
由 tonihei 提交于
-
- 22 2月, 2018 7 次提交
-
-
由 ojw28 提交于
r2.7.0
-
由 Oliver Woodman 提交于
-
由 Oliver Woodman 提交于
-
由 Oliver Woodman 提交于
-
由 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
-
- 21 2月, 2018 1 次提交
-
-
由 olly 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=186305613
-
- 20 2月, 2018 29 次提交
-
-
由 Oliver Woodman 提交于
-
由 olly 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=186291489
-
由 Oliver Woodman 提交于
-
由 olly 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=186200840
-
由 andrewlewis 提交于
Occasionally the player could transition from playing content to playing an ad after IMA called playAd. The discontinuity triggered faking the content position, and the fake position was passed to IMA when content resumed causing the wrong ad group to be loaded. Fix this by only faking the position if the player transitions before playAd. Also fix the calculation of the expected ad group index for a postroll ad, and wait for the player to transition back from ad to content before passing a content progress update. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185994229
-
由 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
-
由 andrewlewis 提交于
If there was no preroll and the pending content position was set before the first midroll, the pending content position was never cleared so loading the ad was never triggered. Only set a pending content position if we know that we need to trigger playing an ad for the current position and IMA will poll for an ad (because there is a midroll ad group). Clearing the pending content position happens when IMA pauses content to play the ad. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185818315
-
由 andrewlewis 提交于
IMA sometimes delivers an ad group load error just after the time of the ad group, which is problematic now that we set the expected ad group index based on the last returned content progress. Only update the expected ad group index once we are within a fixed preloading threshold of the next ad. Also fix updating the ad group to use the new ad count, and check for ad group load errors when we have no expected ad group defensively. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185803086
-
由 tonihei 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185681751
-
由 andrewlewis 提交于
Content progress is only polled if there are midroll ad groups. If the ad tag had only preroll/postroll ads, the pending content position was not provided to IMA, which meant that the postroll ad could never play. Only set the pending content position if there are midroll ads. Issue: #3715 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185680803
-
由 aquilescanta 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185676652
-
由 eguven 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185526653
-
由 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
-
由 andrewlewis 提交于
This error marks the current ad group as unplayable. Issue: #3801 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185663472
-
由 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 提交于
IMA's cue points may not be in order, so sort them. It looks like IMA events use time ordered ad indices, so it is not necessary to map between the original cue point order and the time order. Issue: #3716 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185495798
-
由 olly 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185409304
-
由 tonihei 提交于
There are 4 tests which can't currently be moved: - DownloadManagerTest explicitly uses the main looper which isn't easily supported because the test runs on this thread. - ContentDataSourceTest uses an AssetFileDescriptor which wraps a ParcelFileDescriptor. It seems Robolectric doesn't correctly forward the inner wrapped file descriptor leading to NPE. - CacheContentIndexTest and SimpleCacheSpanTest both work fine with Gradle but fail with seemingly valid test failures on Blaze. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185366678
-
由 andrewlewis 提交于
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=185139106
-
由 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
-