- Add build test to [] so it runs in presubmit
- Tweak README.md instructions
- Use symlinks to make the extension usable in Android
Studio internally, without taking any special action
- Remove unnecessary dependencies
- Simplify setup instructions in README.md
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129733466
- Support specifying a preferred text language.
- Score based selection for text/audio/other tracks.
- Prefer default tracks to non-default ones.
- Allow overriding of base select*Track methods.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129626994
When seekToPeriodPosition found that the seek destination period was already
prepared, it would not disable/re-enable renderers. This was fine if the
playing period wasn't changing, but in other cases the renderers would be left
reading the incorrect streams (and the underlying periods may have been
released).
Also, transition to the buffering state before re-enabling renderers, so that
the renderers are not started until leaving the buffering state.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129625632
- Enforce viewport constraints for fixed video track selection.
- Select best fixed video track, not the first one.
- Better handling of video tracks with unknown dimensions.
- Mini bug fix.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129226593
- Only setup a codec to allow adaptation to other compatible
formats in the stream. If something like the mimeType is
changing adaptation will never be possible, so there's no
point.
- Incorporate maxInputSize into the reconfiguration logic.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129088464
On an edge case, player may get stuck when the renderers are ready but the buffer doesn't get full enough because of a fatal error in data source. An example state can be created by starting a live DASH stream and switching between normal and slow network connections.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129084824
An override applies across periods provided they expose the
same track groups according to .equals, but the formats in
the override are then compared against the period's formats
according to ==. Use .equals consistently to fix.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129081591
For self-initializing segments, DefaultTrackOutput receives
a null format and then the actual format. This broke the
deduplication logic in InfoQueue.format, since there were
two transitions: FormatX->Null and Null->FormatX. This CL
allows deduplication to succeed in this case.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129081583
The codec cannot be reconfigured if the format rotation
changes, or if the format dimensions exceed the current
decoder's configured maximum dimensions.
Issue #1707
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129004187
This wont help much until the buttons to get the dialogs
to display are focusable! Use of MediaController seems to
make that tricky (to be continued...).
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128989328
When seeking to the default position in a period, the containing source may
actually return a position in another period. Multi-period live sources can do
this to seek the player to the live edge.
ExoPlayerImplInternal uses the same functionality when the playback position
reaches the end of a period to determine what period/position to play next.
This means that when playback transitions to a multi-period live source from
some other source (playing a concatenation of those two sources), the player
will play the live edge rather than the beginning of the earliest period.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128984355
Useful functionality promoted to core library:
1. Management of SurfaceHolder.Callback lifecycle
promoted to SimpleExoPlayer
2. Ability to determine whether audio/video tracks
exist but are all unsupported promoted to
MappingTrackSelector.TrackInfo
3. Read external storage permissions check promoted
to Util
4. SubtitleView given ability to act directly as a
TextRenderer.Output to remove layer of indirection
5. SubtitleView given ability to configure itself to
user's platform wide caption styling
6. KeyCompatibleMediaController promoted to library's
UI package.
Relocation of boring stuff:
1. ID3 frame logging moved to EventLogger.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128714230
This change merges the duties of FormatEvaluator into
TrackSelection classes, so that both the static and
dynamic parts of track selection are implemented in a
single place.
New feature: Demo app now allows you to enable random
adaptation in the track selection dialog.
Notes:
- It should be quite easy to allow application side
track blacklisting in addition to source side, as an
extension to this. That would effectively allow
applications to do seamless/deferred track selection
by creating a TrackSelection with all tracks enabled,
and then toggling the blacklist flags to select the
ones they want to be active.
- It should be trivial to implement format blacklisting
for DASH and SS as an extension to this. Will do in a
follow up CL.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128707517
- Invoked --> Called
- Gets --> Returns
- "True if X. False otherwise." --> "Whether X."
- Removed some @returns where the Javadoc is in "Returns X" form
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128678638
This is in preparation for allowing MediaSources to skip over periods when one
period ends, which is needed for starting to play a multi-period live stream
that is concatenated on to another period at the live edge.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128674659
- Suppress spurious resource type warnings.
- Make AS happy by making private method non-final.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128584391
As per the spec of MediaPeriod.getDurationUs, when a live
stream ends we need to start returning the correct final
duration.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128471183
We were forgetting to reset renderers during track
selections where muxed media is used.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128391816
It's only "needed" for HLS, and this requirement will
go away soon. It's safe to remove the flag ahead of
this because a TrackSelector can/should not attempt to
adapt between multiple audio/text tracks.
Also remove unnecessary restrictions on TrackGroups
being non-empty and only of known types.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128376601