This helps to distinguish between the MediaPeriodId the deferred media period is being
created with and the MediaPeriodId which is used to create the actual underlying period.
This serves two purposes:
1. The error reporting of ad prepare errors uses the correct media period id (the
externally visible ad media period id).
2. The transition to using media period uid instead of indices is simplified.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=206160463
Using our own no-op castNonNull prevents linking into checkerframeworks library.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=206152148
Inner classes generally has generic names and they make sense when they
are considered with the top level class they appear in.
When this setting is disabled, Android Studio inserts import for the top
level class and append the top level class's name before the reference
to the inner class name.
NO_SQ
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=206127763
Rewrite FlacBinarySearchSeeker and extract out the core binary search algorithm
into BinarySearchSeeker class so it can be re-used for other formats.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=206012900
This changes the default initial bitrate estimate to be country (group) and
network type specific. The existing overwrite still works as before and new
overwrites for the country or specific network types are provided for
customization.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205972705
While the timeline is empty, we keep a dummy MediaPeriodId in PlaybackInfo with
a period index of 0. We leak this MediaPeriodId in actual use in these
situations:
1. When issuing an IllegalSeekPosition after preparation. The timeline becomes
non-empty, but the media period id stays at its dummy value.
2. When re-adding sources to a previously empty timeline. The dummy period id
is used as the start position for the new non-empty timeline.
This change makes:
- the constructor of PlaybackInfo using those dummy values more explicit
- prevents the issues above by using the correct default position in the new
non-empty timeline for the above mentioned cases.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205803006
All known instances use DataSource as generic type and thus code can be simplified
by removing the generic type altogether.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205798542
Using this surface it's possible to play 360 videos in a non-VR Activity that is
affected by phone and touch input.
RELNOTES=true
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205720776
This reduces the number of calls to the DataSpec constructor and minimizes the number of files that need to be updated when adding a new DataSpec parameter (ex: followup []
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205719005
As the manifest and media data sources can be the same now, we can provide
a simplified constructor with just one data source factory.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205658046
Also switch from using a CommentFrame to a new InternalFrame type for ID3 data
stored with ID '----', to distinguish internal data from actual ID3 comments.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=201315254
The number is shelved in calls to queue.clear() to keep it for the next
media period. However, the queue may also become empty by repeated calls to
advancePlayingPeriod which may happen when seeking to an unprepared period.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205376036
The sample queues haven't been created when the first init call
occurs. In this case we need to set sourceId when we subsequently
create the queues.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=204467538
After [] we support default font size for TTML, relative to the cellResolution of the document. However, this introduced a bug that makes TTML font-size in such case always follow the cellResolution font size, even when SubtitleView.setApplyEmbeddedStyles(false) and SubtitleView.setApplyEmbeddedFontSizes(false) were used.
This CL updates the fix so that the default font-size using cellResolution works in the same way as other embedded styles, and can be turned off using setters from SubtitleView.
GitHub: #4491
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=204467033
Also fixed showing "remove notification" when download is completed.
Issue:#4469
Issue:#4488
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=203927268
It's no longer text specific (it's used for metadata as well, and
in theory could apply to any stream in which samples contain multiple
sub-samples)
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=203767825
Until now, the streams were released and re-enabled for each type of stream
(primary, event, embedded) in that order. That leads to problems when replacing
streams from one type to another (for example embedded to primary).
This change restructures the track selection to:
1. Release and reset all streams that need to be released or replaced.
1(a). Including embedded orphan streams.
2. Select new streams.
Issue:#4477
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=203751233
Viewport constraints apply to adaptive content even if the
actual playback isn't adaptive (i.e. because the selector
ends up making a fixed track selection).
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=203726831