Currently, the sample queues are lazily enabled when they are first read from.
This causes problems when the player tries to discard buffer and the
HlsSampleStreamWrapper assumes the sample queue is disabled even though it's
actually enabled but hasn't been read from.
This change moves setting the sample queue index of the sample stream back into
HlsSampleStreamWrapper. It enables the sample queues at track selection if the
queues are already built, or immediately after they have been built for
chunkless preparation.
Issue:#4241
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=197415741
InstrumentationTestCase has been deprecated, and it does not offer some useful
features, such as targeting SDK version level for tests, or skipping tests if
necessary.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=197141082
A new playback nonce is created for each playback of the same item. Thus we
need to inject the nonce dynamically into the data source factory.
This CL adds the DataSource which does the actual insertion into the request
URLs and a MediaSource which listens to new media periods, to request the
nonce and to configure the data source factory for this media period to use
this nonce.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=197134217
This CL allows failure if a playlist load fails with a non-blacklistable
error. For example, loss of internet connection.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=197006579
For TTML, if the font size is expressed in %, the font size should be relative
to the cellResolution of the document which we did not support before. This CL
adds support for handling this correctly.
Note that this still does not support font size using c unit.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196985694
SparseIntArray.get(key) defaults to zero for missing keys (the null check was
left over from when a Map was used).
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196957452
Also update TrackSelectionView with nullness annotations.
Issue: #4263
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196849706
If the caption line has no text (empty line or only line break), we should not
display its background.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196823319
Due to a bug, for each TTML node, when applying its style to the encompassed
regions, it applies child nodes's styling several time for each region (the
number of time is equal to the number of region). This leads to a styling issue
if there are multiple regions in a node displayed at the same time in TTML file.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196810046
The sample size from the stsd box takes precedence over the sample size in the
stsz box.
Also remove assumption that C.INDEX_UNSET is -1 in ChunkIterator (which is a
no-op change).
Issue: #4228
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196661751
Added FlacBinarySearchSeeker, which supports seeking in a FLAC stream by searching for individual frames within the file using binary search.
Github: #1808.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196587198
Fix suppressing initial "state changed to paused" listener invocations
for new added tasks that are immediately started.
Notify listeners for loaded actions queued state if they are not started
immediately.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196542693
The app can set the player to null while messages from the player are still
in flight. This may cause NPEs.
Issue:#4238
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196504077
The lint error suppression only works locally and not for external developers
who still see the lint error and need to suppress it themselves.
This changes 'implementation' to 'compileOnly' in gradle to prevent the
dependency from being exported. Also removes the local lint suppression.
Issue:#4234
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196251407
This makes way for reusing EGLSurfaceTexture in other places, such as metadata
and frame retriever.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196240576
This is useful to get hold of the manifest to then obtain DRM init data in
the download flow for protected content (without having to download the
manifest again).
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196168938
Open was not calling through to upstream.open. This was not problematic for
reading, because DataSourceInputStream.read would open the upstream if it's
not open already. It was however a problem for calling getUri() between
calling open and the first call to read, which would end up calling
upstream.getUri() on the not-yet-opened upstream.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=195689472
Also only listen to requirements when actually necessary, else we can
put the service into the foreground when it needn't be there.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=195597750
This type of flicker was visible (at least on my S8) whenever starting
the demo app process (from being properly killed) when other notifications
(e.g. completed download notification) was present.
This change passes whether the service was started as foreground through
the intent, and only applies the show-notification-on-stop hack if it
was. It's only necessary to start as foreground if your app is not already
in the foreground, so it's not necessary to do this from activity/ui
components.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=195594930
If an app wants to reconcile its own state with that of a DownloadManager,
it's helpful to know when the DownloadManager has finished restoring any
previously persisted tasks.
Also suppress initial "state changed to paused" listener invocations for
tasks that are immediately started.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=195594881
- Start before stop
- Release near bottom
- Private after public
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=195570480
Also convert them to exposing periods and track groups, like
regular MediaSources do. This gets us much closer to being
able to use standard track selection components during offline
initialization. The helper is responsible for reverse mapping
selected tracks onto physical streams when generating the
download action. This is trivial except for the HLS case, which
is a TODO for now.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=195500826
This may be preferable for using custom binary data,
and it's still easy to store Strings if needed.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=195486817
The old event listener on AdsMediaSource is deprecated, in favor of
reporting in the normal way (via MediaSourceEventListener).
Add AdLoadException with information on what ad/ads failed to load.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=195426144