Add methods to ExoPlayer for setting/getting the playback speed, using
SonicAudioProcessor.
Remove PlaybackParams support, as the AudioTrack timestamp does not work
reliably on Marshmallow. The platform also uses Sonic and performance
should be comparable between the Java and native versions on recent Android
runtimes.
In a later change, SonicAudioProcessor will be made public so it can
be used in conjunction with other processors.
Issue: #26
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=151027121
The way it was before worked, but it's not really documented
that DrmSession methods implemented by DefaultDrmSessionManager
can be called after the session has been released, and it feels
wrong to do this.
At some point we should probably consider moving the DrmSession
part of DefaultDrmSessionManager into an inner class, to force
usage in the "normal" way.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=151003855
Notes:
- Now only generating a single module Javadoc task for the
release variant.
- Combined Javadoc now includes extensions. VP9 is excluded
for now since it's failing for an unknown reason.
Issue: #2139
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150865589
Notes:
- The VP9 one is failing claiming that the util package
doesn't exist and that LibraryLoader cannot be found.
Unsure why, since it appears to be setup exactly like
other extensions (e.g. Opus) that does work.
- @link across modules will not work when generating
Javadoc for a single module. This is WAI. I subsequent
change will add an aggregated Javadoc generator that
will generate Javadoc for all modules together and
apply cross module @link correctly.
Issue: #2139
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150864273
Also renamed releaseResources->release to be consistent with the
rest of the library, and added some synchronization to ensure
correct usage.
Issue: #2139
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150753414
This CL makes SimpleExoPlayerView show a mock representation
when in the layout editor of AndroidStudio.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150739442
1. Move entire library from v2/library/ to v2/library/core
2. Add v2/library/all that depends on v2/library/core
Issue: #2139
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150455693
Also added a TODO to track clarifying SequenceableLoader
more accurately and auditing existing implementations.
Issue: #2396
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150305685
This will allow us to use the same class for Audio adaptation.
Issue:#1975
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150302561
This allows the user to get the HlsMasterPlaylist through
Exoplayer.getCurrentManifest().
Issue:#2537
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150232455
RepresentationKey defines a representation location in a DashManifest.
DashManifest copy method creates a copy of the manifest which includes
only the representations pointed by the given RepresentationKeys.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150195990
- Update bintray-release version
- Publish to exoplayer-test unless -PpublicRepo=true
- Publish GVR extension
- Minimize duplication with new publish.gradle
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150185740
This will allow us to make a single adaptive selection prioritizing
video selections.
Issue:#1975
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150185086
- Don't resize the peek buffer to be twice as large as a
large amount!
- Trim the peek buffer, to allow large peek buffer allocations
to be reclaimed.
Issue: #2553
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150184291
This greatly reduces the amount of server requests issued by
the playlist tracker.
Issue:#2548
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150055046
- Use a variable for the (default) minSdkVersion. There will
be more modules that need it, and it'll be easier to manage
if it's in one place.
Issue: #2139
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150050663
Without this, it is possible that a non timestamp master instances
the adjuster with its own chunk start time. When chunks are not
aligned, this breaks adjustment.
Issue:#2424
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=149764488
CacheDataSource allows null DataSink. Do the same in CacheDataSourceFactory.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=149750696
Caption characters weren't being assigned to the correct window and the lack of
pen location support was causing multiple lines (and words) to be concatenated.
As per the CEA-708-B specification, section 8.10.5, when we encounter a DefineWindow
command, we're also supposed to update the current window to the newly defined one.
We were not doing this previously, resulting in text that should have been in separate
windows being combined into one. Furthermore, some content uses the SetPenLocation
command to move the cursor down a line instead of appending a new line. As we don't
currently support SetPenLocation, this resulted in multiple lines (and words) being
concatenated together, potentially causing the text to extend past the edge of the
window/screen. This change implements a workaround (until SetPenLocation is properly
supported) for this issue in which setting the pen location to a new row will append
a new-line to that window.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=149679613
As per the CEA-708-B specification, section 8.10.4, cues don't necessarily
need either an ETX command or any of the C1 commands before being updated
with the latest buffered content. While those commands do indicate that the
cues should be updated immediately, the cues can also be updated after a
service block has been processed if it appended text to the buffer.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=149673162
This allows the client to define what data source is used for
media chunks, encryption chunks and playlists.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=149537766
I think it's likely we'll revert back to discarding media
in sync with the playback position for ExtractorMediaSource
and HlsMediaSource too, where the tracks are muxed with ones
we're requesting anyway.
Note: discardBuffer is named as it is because it'll also be
used to discard for enabled tracks soon, as a result of the
remaining TODO in ChunkSampleStream. For enabled tracks the
discard will also be conditional on the samples having been
consumed, obviously.
Issue: #2362
Issue: #2176
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=149525857
We use the segments' start time when the timestmap is not present.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=149006252
This method can be used to determine not cached parts of a content.
The 'length' parameter allows quicker responses without going through all adjacent spans.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=149005688
This allows building a TsPayloadReader.Factory without
having to wrap the default one.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=149004102
This mode allows the extractor to support streams with multiple
programs declared in the PAT, but only one PMT. This is necessary
to support tuner-obtained media.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148636312
textWidth can be negative if textLeft extends parentRight (i.e.
the subtitle is positioned entirely off the screen to the RHS).
We should just discard and log a warning in this case.
Issue: #2497
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148481310
This change exposes declared CEA-608 and EMSG tracks. The
tracks currently provide no samples.
Issue: #2362
Issue: #2176
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148390849
I'm going to introduce an EmptySampleStream that will be used in
some cases in conjunction as part of 608/EMSG support. This change
avoids EmptySampleStream having to provide a dummy format.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148383831
At the end of playback, BufferProcessors need to be drained to process all
remaining data, then the output needs to be written to the AudioTrack before
stop() is called.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148339194
This allows the TsExtractor to automatically determine the
closed caption tracks to expose by parsing available
descriptors.
Issue:#2161
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148321380
This allows BufferProcessors to partially and/or asynchronously handle
input/output. Document contract for queueInput and getOutput.
Update ResamplingBufferProcessor to use the new interface.
Separate submitting bytes vs. writing data to the AudioTrack.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148212269
This CL allows passing multiple formats describing CC channels to the
TS payload reader factory. As a simple usecase, ATSC can expose both
608 channels by passing a two element list with the corresponding
accessibility channels. The HLS media source can construct this list
from the EXT-X-MEDIA:TYPE="CLOSED-CAPTIONS" tags, including language
and selection flags. The interface extends without modification to
708.
Pending work:
* Multiple CC channels in HLS.
* caption_service_descriptor parsing for overriding the user's selection.
* 708 support in SEI reader.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148030293
This avoids breaking the player if the first variant is not
supported by the device.
Issue:#2353
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148025791