- 30 Jan, 2019 2 commits
-
-
PiperOrigin-RevId: 231567138
aquilescanta committed -
PiperOrigin-RevId: 231425073
olly committed
-
- 29 Jan, 2019 38 commits
-
-
If there is data after the last samples in the container, we may request continue loading after the last samples have been read but before the load has completed. In this situation the buffered position is returned as Long.MAX_VALUE, which prevents continuing loading, yet the media period is not treated as fully buffered because its buffered position is not C.TIME_END_OF_SOURCE. PiperOrigin-RevId: 231406964
andrewlewis committed -
We can keep the reading media period and continue playing if we haven't read beyond the new duration. Otherwise, we can keep the period, but need to reset the renderers as we already read too far. PiperOrigin-RevId: 231406252
tonihei committed -
PiperOrigin-RevId: 231396213
olly committed -
On older API levels it's also necessary to implement openOrCreateDatabase, to be called by SQLiteOpenHelper. PiperOrigin-RevId: 231387559
olly committed -
It better describes what the class does. More importantly, we've had inconsistent class names since we added offline support, for which we added ProgressiveDownloader ("ExtractorDownloader" doesn't make any sense). We could really do with aligning the names for clarity. (Sorry) PiperOrigin-RevId: 231387268olly committed -
Issue:#2867 PiperOrigin-RevId: 231385677
tonihei committed -
These methods take a list of languages to be downloaded and add selections for each of the languages. PiperOrigin-RevId: 231385632
tonihei committed -
The subclasses only call specific constructor combinations and can easily replaced by static methods. PiperOrigin-RevId: 231385606
tonihei committed -
This requires to prepare the media source and the periods in a small helper similar to the metadata retriever. It also gets rid of the need to have abstract protected methods to load the manifest, to extract the track groups and to convert to stream keys, as this can now be handled by the media period. PiperOrigin-RevId: 231385590
tonihei committed -
PiperOrigin-RevId: 231385563
tonihei committed -
Currently, we remove all variants if none of the stream keys contains any variants. This causes HlsMediaPeriod to throw exceptions as it expects at least one variant. Change it to support master playlists without variants. PiperOrigin-RevId: 231385547
tonihei committed -
PiperOrigin-RevId: 231385518
tonihei committed -
Converting a single track selection to stream keys is only possible if the output is independent from other track selections being made. This is not the case for DASH and HLS embedded track groups which should select the already selected primary track if possible (and thus needs to know whether a primary track group is selected). Also, update the test method to take a period index. PiperOrigin-RevId: 231385490
tonihei committed -
This should be removed after releasing. PiperOrigin-RevId: 231380393
tonihei committed -
The way it is currently, it's very unclear that an operation on the version table will correctly belong to a transaction in code such as this, taken from DefaultDownloadIndex: writableDatabase.beginTransaction(); try { writableDatabase.execSQL(...); versionTable.setVersion(...); writableDatabase.setTransactionSuccessful(); } finally { writableDatabase.endTransaction(); } This change explicitly passes the database, to make it obvious that the operation will really go into the same transaction: writableDatabase.beginTransaction(); try { writableDatabase.execSQL(....); VersionTable.setVersion(writableDatabase, ...); writableDatabase.setTransactionSuccessful(); } finally { writableDatabase.endTransaction(); } PiperOrigin-RevId: 231374933olly committed -
PiperOrigin-RevId: 231223201
eguven committed -
Goal: reduce binary size. PiperOrigin-RevId: 231198579
olly committed -
Float output is only possible from API 21, but the high-res int to float conversion path was checking for 32-bit PCM not float output capability. PiperOrigin-RevId: 231172495
andrewlewis committed -
PiperOrigin-RevId: 231171425
olly committed -
PiperOrigin-RevId: 230889470
olly committed -
This will allow CachedContentIndex to start using database storage without us having to change the SimpleCache and CachedContentIndex constructors to require a Context or a DatabaseProvider. PiperOrigin-RevId: 230884501
olly committed -
This brings in a memory leak fix. Issue: #4114 PiperOrigin-RevId: 230880521
andrewlewis committed -
If are allowing changing durations of periods, we shouldn't use the end position of clipped content as part of the id as it may change. This change moves the end position back to MediaPeriodInfo and adds the next ad group index to the id instead to ensure we still have unique ids for all content parts. PiperOrigin-RevId: 230878389
tonihei committed -
PiperOrigin-RevId: 230743198
aquilescanta committed -
PiperOrigin-RevId: 230734189
aquilescanta committed -
PiperOrigin-RevId: 230717561
aquilescanta committed -
The combination of pre-16 API levels accounting for ~0.5% of the device population, and that the most important components in ExoPlayer (e.g. the MediaCodec renderers) have always required API level 16, mean it's very unlikely this will negatively impact on anyone. PiperOrigin-RevId: 230701808
olly committed -
This interface will get an SQLite implementation in a subsequent CL PiperOrigin-RevId: 230693881
olly committed -
We need to support serialization to/from an SQLite table. The model of passing something around for each class to write into doesn't work well for SQL, and it would be messy to have two different structural designs for serialization. This change centralizes the logic in CachedContentIndex, where a centralized SQL based version can more easily sit alongside it. PiperOrigin-RevId: 230692291
olly committed -
This method is a generalization of the existing hasReadStreamToEnd. It is useful to determine whether a renderer already read beyond a new duration of a period. PiperOrigin-RevId: 230689165
tonihei committed -
Necessary in two scenarios: + When the demo app starts casting to a receiver app that already had a queue. + When two demo apps are connected to the same receiver app and both make modifications. PiperOrigin-RevId: 230546851
aquilescanta committed -
1. The method kept track of the current period index to check if the next period is still in the correct period. This is unneccessary since we no longer use the period index but the actual uid in MediaPeriodId and mismatches are already detected by canKeepMediaPeriodHolder. 2. We updated the MediaPeriodIndfo twice: once in getFollowingMediaPeriodInfo and once in getUpdatedMediaPeriodInfo. That's confusing and difficult to follow. The only difference is that getUpdatedMediaPeriodInfo keeps the content position while getFollowingMediaPeriodInfo resets it. This is made more explicit for readability. 3. The durations compatibility check for all following periods was broken as it compared the same durations (partly due to the confusion caused by 2.) PiperOrigin-RevId: 230519295
tonihei committed -
Issue: #4253 PiperOrigin-RevId: 230497544
olly committed -
PiperOrigin-RevId: 230496581
aquilescanta committed -
Seems like more useful default behaviour PiperOrigin-RevId: 230356813
olly committed -
PiperOrigin-RevId: 230260266
olly committed -
This doesn't happen automatically after all on older devices PiperOrigin-RevId: 230251258
olly committed -
PiperOrigin-RevId: 230220448
olly committed
-