- 15 Sep, 2017 21 commits
-
-
Issue: #3249 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168844850
andrewlewis committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168834998
aquilescanta committed -
Also expose break_durations in microseconds instead of 90kHz. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168816992
aquilescanta committed -
1. Only tell sessions that want provisioning when provisioning occurs. 2. Also propagate failure to provision to these sessions. 3. If a session responsible for provisioning is released, start provisioning using another session instead. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168713918
olly committed -
- MediaDrmEventListener.onEvent is typically called on the app's main thread. mediaDrmHandler is instantiated on the playback thread. Hence mediaDrmHandler should be volatile to ensure visibility. - Nulling mediaDrmHandler could result in a NPE in onEvent. Instantiate mediaDrmHandler (and don't null it again) to avoid this. MediaDrmHandler.handleMessage will correctly discard any events for sessions that are now closed. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168707938
olly committed -
AdsMediaSource lives in the core library so only ImaAdsLoader remains in the ima extension. AdsMediaSource takes an AdsLoader implementation. ImaAdsMediaSource is deprecated rather than removed for now. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168707921
andrewlewis committed -
This allows test runs to continue when the activity is paused (but not stopped), which is in line with what we do in the demo app's PlayerActivity. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168699521
olly committed -
Issue: #3258 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168669969
andrewlewis committed -
Currently, to make transition to next media period seamless, after the renderer has read until the end of the current SampleStream, we may send it the next SampleStream so the renderer may read from the next SampleStream ahead of the transition. For NoSampleRenderer, we should avoid doing this: skipping ahead for such renderer doesn't have any benefit (the renderer does not consume data from SampleStream), and it will change the provided rendererOffsetUs while the renderer is still rendering from the playing media period. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168669800
hoangtc committed -
This allows listeners to easily determine the source of the discontinuity. Reasons can be period transitions, seeks, and internal reasons. Listeners still using the deprecated ExoPlayer.EventListener interface were updated to Player.EventListener. GitHub: #3252 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168549612
tonihei committed -
Remove gapless functionality that relies on MediaCodec, and implement this in an AudioProcessor instead. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168547487
andrewlewis committed -
Currently our Renderer is always associated with and consume data from some SampleStreams, which were constructed from the provided MediaSource. There are use-cases, in which the users want to have simple Renderer implementation that does not consume data from SampleStream at all, but render using their custom logic at each rendering position - they mostly just need ExoPlayer to keep track of the playback position and enable/disable the renderer. This CL adds support for such Renderer by adding a TRACK_TYPE_NONE. Renderer of such type will be: - Associated with null TrackSelection as the result of track-selection operation. - Associated with EmptySampleStream. GitHub: #3212 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168545749
hoangtc committed -
In live streaming, if the playback position is very close to live edge, the buffered duration will never reach minDurationForQualityIncreaseMs, which prevents switching from ever happening. So we will provide the durationToLiveEdgeUs to AdaptiveTrackSelection in live streaming case, so it can handle this edge case. GitHub: #3017 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168535969
hoangtc committed -
Issue: #3259 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168378650
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168366847
aquilescanta committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168259911
olly committed -
The sleep used to simulate data load times is ignoring InterruptedExceptions. (This is intended and in line with SystemClock.sleep()). However, when a Loader cancels an ongoing load, it uses interrupts. To be able to catch these and to immediately return from the reading data source, a handler callback is used instead of the sleep() method which allows interuptable waiting. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168212652
tonihei committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168209817
tonihei committed -
When having a repeat() action and another subsequent action, the next action should only be scheduled once (and not repeatedly). Thus, the "next" pointer in the repeated action needs to be nulled in the first iteration to prevent repeated scheduling of the next action. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168202212
tonihei committed -
Releasing the media period should also release the sample streams to allow resources to be cleaned up. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168201377
tonihei committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168194589
olly committed
-
- 10 Sep, 2017 1 commit
-
-
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168155713
olly committed
-
- 08 Sep, 2017 6 commits
-
-
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168020525
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168007345
olly committed -
The release callback handler in Loader might not be alive anymore. Catch this case to prevent warnings about sending messages on dead threads. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167996538
tonihei committed -
This simulates reading from the buffer (which is what actual renderers would do). Otherwise the buffer always gets expanded and might cause memory issues. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167994899
tonihei committed -
In this case the playback state transitions to IDLE, which isn't caught so far. (This code is equivalent to the one in ExoHostedTest.java) ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167980981
tonihei committed -
Remaining instrumentation tests either use android.os.Handler or rely on assets. In the latter case, the tests are difficult to migrate due to differences between the internal and external build systems, and configuration needed in Android Studio. In addition, SimpleCacheSpanTest remains as an instrumentation test because it fails due to a problem with string encoding on the internal build (and two other tests in its package are kept with it because they depend on it). This test removes a dependency from testutils on Mockito, as a different version of Mockito needs to be used for instrumentation tests vs Robolectric tests, yet both sets of tests need to rely on testutils. Mockito setup is now done directly in the tests that need it. Move OggTestData to testutils so it can be used from both instrumentation and Robolectric tests. It may be possible to simplify assertions further using Truth but this is left for possible later changes. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167831435
andrewlewis committed
-
- 06 Sep, 2017 12 commits
-
-
Oliver Woodman committed
-
Issue: #3156 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167718081
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167717715
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167711928
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167711267
olly committed -
Everything should go through the ExoMediaDrm layer. We still need to abstract away the android.media exception classes, but this is left as future work. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167710213
olly committed -
This appears to be fixed in Oreo, but given how harmless the workaround is we can probably just apply it on all API levels to be sure. Issue: #3160 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167709070
olly committed -
Reporting incorrect positions for ad playbacks was causing IMA to think the ad wasn't playing, when in fact it was. Issue: #3180 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167702032
olly committed -
Also pass an unresolved end point to ClippingMediaPeriod. This removes some assertions checking timestamps in the ClippingMediaPeriod, but makes it possible to identify when the end point is at the end of the media. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167683358
andrewlewis committed -
When creating PlaybackControlView inside SimpleExoPlayerView, we want certain attributes to be passed through. This lets you set control attributes on the SimpleExoPlayerView directly. We don't want all attributes to be propagated though; only our own custom ones. Not sure if there's a cleaner way to do this. Pragmatically this solution seems ... ok :)? ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167619801
olly committed -
Spec: https://storage.googleapis.com/wvdocs/Widevine_DRM_Android_Using_Key_Rotation.pdf 1. Implement multisession to support drm key rotation 2. Put MediaDrmEventListener back to manager since this is a per mediaDrm thing. 3. It seems diffrenciate between single/multi session is unnecessary. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167602965
zhihuichen committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=167584287
andrewlewis committed
-