Partial rollback of [] which caused b/77294898 by deleting a public Exoplayer API.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=191519591
- Upgrade to latest version
- Use api dependency, since application code that uses the
extension more has to use OkHttp directly to make an
OkHttpClient instance
- Add proguard configuration
Issue #4059
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=191422594
Previously it was necessary to create a new Sonic instance every time the
processor was flushed. Add a flush() method to Sonic so that it can be reused
when seeking. It still needs to be recreated when parameters change.
SonicAudioProcessor and SilenceSkippingAudioProcessor have methods for setting
parameters that are documented as taking effect after a call to flush(), but
actually the value returned by isActive() was updated immediately. Track the
pending values and apply them in flush() to fix this.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=191442336
- Upgrade to latest version
- Use api dependency, since application code that uses the
extension more has to use OkHttp directly to make an
OkHttpClient instance
- Add proguard configuration
Issue #4059
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=191422594
We currently refresh repeatedly in this case. According to the
DASH spec omitting minUpdatePeriod indicates that the manifest
does not change, and therefore we should not refresh. I think
it might be valid to omit minUpdatePeriod in a dynamic manifest
if relying exclusively on EMSGs to trigger manifest refresh.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=191420247
applyContentMetadataMutations and getContentMetadata methods suppossed to be synchronized and assert the instance isn't released.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=191419637
This is in preparation for making it possible to flush a Sonic instance so that
it's not necessary to create new ones every time the processor is flushed.
There should be no behavior changes here.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=191410326
To be immediately rolled back after submission
Submitting on behalf of cblay.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=191128111
- Remove stray extra "/" from postprocessed oracle URLs
- Remove date lines so the Javadoc diff better shows what
actually changed between releases
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190973079
- Remove stray extra "/" from postprocessed oracle URLs
- Remove date lines so the Javadoc diff better shows what
actually changed between releases
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190973079
Weirdly, the Android Javadoc indicates that it returns something
before the API level on which the same Javadoc states it was added.
In any case, we can simply not call the method to avoid the
warning, since we only use the value if the API level is at least
23 anyway.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190941776
Weirdly, the Android Javadoc indicates that it returns something
before the API level on which the same Javadoc states it was added.
In any case, we can simply not call the method to avoid the
warning, since we only use the value if the API level is at least
23 anyway.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190941776
Video renderers assume that the player position is advancing linearly while in
the started state. MediaCodecVideoRenderer schedules frames for rendering in the
future in the expectation that the player position is advancing.
This assumption is not currently true when using a position from the AudioTrack:
the player position can be fixed for (in the worst case) up to about 100 ms
before it starts increasing. This leads to an effect where the first frame is
rendered then a few other frames are rendered, then there's a pause before
frames start being rendered smoothly.
Work around this issue by checking whether the position has started advancing
before scheduling frames to be rendered in the future.
It might be preferable to make the audio renderer only become ready when its
timestamp can start advancing, but this is likely to be complicated.
Issue: #3841
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190937429
In audio processors an audio frame consists of a sample (which is 2 bytes for
16-bit PCM) for each channel. Sonic used "sample" to refer to this.
We've already diverged from the original source for Sonic quite a bit (deleting
code and making stylistic changes) and there haven't been upstream changes so
far, so it seems fine to start making more substantial changes here.
There should be no behavior changes here.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190916793
In Gradle 4.4, it is a bug to resolve a configuration before the lint task is
created ([see [] Therefore, to upgrade
gradle version, we need to change the "generateJavadoc" task to remove using
files() call during initialization phase, but change move this to doFirst()
instead.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190634090