- 01 Feb, 2018 20 commits
-
-
100ms is unrealistically short and, for example, causes the player to buffer many periods ahead when looping. Previously this was not feasible, because ExoPlayerTest as instrumentation test actually needed to wait for the realtime playback duration. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183646772
tonihei committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183643457
olly committed -
It's really spammy. Decided not to document tag as also being nullable in case we ever use it for anything else in the base action class. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183632944
olly committed -
Only filter HlsMasterPlaylists. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183394956
eguven committed -
GitHub:#3498 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183392095
tonihei committed -
GitHub:#3498 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183391117
tonihei committed -
MediaPeriodInfoSequence has functionality for determining what MediaPeriod should be loaded next. Move this into the queue as an initial step towards moving logic concerning updating the queue of media periods out of ExoPlayerImplInternal. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183391114
andrewlewis committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183390851
aquilescanta committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183389701
aquilescanta committed -
This removes some boiler-plate code for compostite sources and will also simplify resuing media source in the future (because this class can keep track of child listeners). Issue:#3498 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183387123
tonihei committed -
GitHub:#3498 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183378776
tonihei committed -
This is only allowed for user-replaced manifest uris. If the manifest itself forwards to another manifest, we keep the original manifest in case the forwarding changes. Also removed the initialManifest as it can be simplified by using the sideloadedManifest indicator. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183376209
tonihei committed -
GitHub:#3498 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183373647
tonihei committed -
GitHub:#3498 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183369041
tonihei committed -
Issue:#3747 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183366339
aquilescanta committed -
GitHub:#3498 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183253017
tonihei committed -
When SsMediaSource loads Manifest, it dispatches loadCompleted event even when the load is cancelled. This change makes sure SsMediaSource dispatch loadCancelled event instead. GitHub: #3754 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183241940
hoangtc committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183238240
andrewlewis committed -
Since AspectRatioFrameLayout supports zoom mode as another resize_mode, PlayerView's resize mode xml attribute should include this as well. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183237663
hoangtc committed -
Helper class to create notifications for downloads using DownloadManager. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183225948
eguven committed
-
- 24 Jan, 2018 14 commits
-
-
- This gives LoadControl enough information in shouldContinueLoading to know whether returning false will result in a terminal non-playback state. - DefaultLoadControl will always return true when returning false will result in a terminal non-playback state, unless the target buffer size is exceeded. This can help to avoid getting stuck in the case that a MediaPeriod is providing samples from an unexpected starting time. - Make the terminal state actually terminal. Previously the player would end up in an indefinite buffering state. We now fail with an error. - Also remove the opportunity for LoadControl implementations to livelock playback. No sane LoadControl should simultaneously tell the player that it doesn't want to load anything and that it doesn't want to start playback. So this change removes the opportunity and starts playback in EPII instead in this case. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183114797
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183102837
aquilescanta committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183098172
olly committed -
Try to delay failure for as long as possible. That is, propagate DRM session failures only after an encrypted buffer arrives or clear sample playback without session is not allowed. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183076348
aquilescanta committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183068548
aquilescanta committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183065262
andrewlewis committed -
Oliver Woodman committed
-
Oliver Woodman committed
-
add support in mediacodecaudiorenderer for 24bit pcm to float
ojw28 committed -
Improve raw resource data source (recreated)
ojw28 committed -
Issue: #1606 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183058160
olly committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183056883
olly committed -
Track the expected next ad group index so that it can be used as a fallback if IMA does not notify the ad index via a LOADED event. Also do some miscellaneous minor cleanup (including logging all LOG events, and logging at debug level where appropriate). ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183048612
andrewlewis committed -
setBytesRemaining() doesn't work when called after closeCurrentSource() ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=182999254
eguven committed
-
- 23 Jan, 2018 6 commits
-
-
These parsers can be used to get a manifest which includes only the representations identified by the given keys. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=182932874
eguven committed -
So far this wasn't possible because Robolectric's Looper and MessageQueue implementations have multiple shortcomings: 1. The message loop of new HandlerThreads is an not an actual loop and scheduled messages are executed on the thread the message is enqueued (not the handler thread). 2. The scheduler used to replace the message queue is synchronizing all its methods. Thus, when a test attempts to add messages to a Handler from two different threads, it may easily run into a deadlock. 3. The scheduler doesn't correctly emulate the order of messages as they would be in an actual MessageQueue: a. If the message is enqueued on the handler thread, it gets executed immediately (and not after all other messages at the same time). b. The list of messages is always re-sorted by time, meaning that the order of execution for messages at the same time is indeterminate. 4. Robolectric's SystemClock implementation returns the current scheduler time of the main UI thread. So, unless this scheduler is used to add messages in the future, the SystemClock time never advances. This CL adds two helper classes which extend and replace Robolectric's ShadowLooper and ShadowMessageQueue. 1. We intercept messages being enqueued or deleted in the message queue. Thus Robolectric's faulty scheduler gets never used. Instead, we keep a blocking priority queue of messages, sorted first by execution time and then by FIFO order to correctly emulate the real MessageQueue. 2. We also keep a list of deleted messages to know which messages to ignore when they come up in the looper. 3. When a new Looper is started, we override the dummy loop to an actual eternal while loop which waits for new messages, checks if they haven't been deleted, and runs the messages (similar to what Robolectric's MessageQueue would have done at this point). Because we don't actually use the main UI thread in our tests, we can't rely on the SystemClock to progress in any sensible manner. To overcome this issue, we can use the auto-advancing FakeClock also used for the simulation tests. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=182912510tonihei committed -
This achieves two things: 1. All our tests use the same type of assertions. 2. The tests currently run as instrumentation test can be moved to Robolectric without changing the assertions. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=182910542
tonihei committed -
Instead of DefaultBandwidthMeter, TransferListener<? super DataSource> is used. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=182785785
eguven committed -
These were caused by two issues: 1. The FakeMediaSource can be updated with a new timeline. The setNewSourceInfo is called from a different thread than prepareSource and both access local variables without synchronization. 2. For multi-window playback, the FakeRenderer claims that isReady and isEnded are both set to false if it read the end of the stream. However isReady should be true because it is able to "render" its data until the end of the stream. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=182785169
tonihei committed -
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=182770109
andrewlewis committed
-