Commit graph

4339 commits

Author SHA1 Message Date
olly
033b83c82e Make toUpperCase conversions locale invariant
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190942033
2018-03-29 19:04:31 +01:00
olly
f77077a84c Don't call getLayoutDirection before API level 17
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
2018-03-29 19:02:54 +01:00
olly
7be249ea2b Bump version to 2.7.2 + update release notes
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190941619
2018-03-29 19:02:43 +01:00
olly
90bdf09f15 Fix Javadoc generation + Javadoc
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190916130
2018-03-29 16:23:49 +01:00
olly
9433e44c09 Update build tools for Android Studio 3.1
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190896757
2018-03-29 16:22:46 +01:00
olly
f36de381d9 Fix "FLAC decoder input buffer too small" issue
Issue: #3514

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190752950
2018-03-29 16:22:12 +01:00
tonihei
516f163887 Update Ffmpeg README with supported NDK versions disclaimer.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190751660
2018-03-29 16:21:36 +01:00
hoangtc
9299d3b3a5 Update Gradle version from 4.1 to 4.4
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
2018-03-29 16:21:03 +01:00
aquilescanta
50457d9110 Assume TS when the HLS segment URI has no path
Issue:#4033

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190603518
2018-03-29 16:19:04 +01:00
aquilescanta
6d9201e8db Escape 💨 emoji in RELEASENOTES
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190591835
2018-03-29 16:18:56 +01:00
olly
febe604ca1 Trim zero padding from EBML string values
Issue #4010

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=190442962
2018-03-29 16:18:42 +01:00
aquilescanta
da6ec9cafe Add santoni and mido to codecNeedsSetOutputSurfaceWorkaround
Issue:#4006

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=189896023
2018-03-29 16:17:48 +01:00
bachinger
b04ec2190b Omit fast forward and rewind actions when current window is not seekable
Issue: #4001

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=189722812
2018-03-29 16:17:03 +01:00
hoangtc
5ce0c6fead Match codecs starting with "mp4a" to different Audio MimeTypes
Currently, we are treating all codecs starting with "mp4a" as AAC. However,
some codec strings starting with "mp4a" are not AAC format, as should be
treated differently.

GitHub: #3779

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=189163517
2018-03-29 16:15:26 +01:00
olly
38914a260b Upgrade bintray-release and gradle versions
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=189153913
2018-03-29 16:14:29 +01:00
ojw28
b6155d2e08
Merge pull request #3983 from google/dev-v2-r2.7.1
r2.7.1
2018-03-14 00:17:06 +00:00
Oliver Woodman
ff43df1e89 Remove versions from IMA demo manifest that are now specified via gradle 2018-03-13 23:48:55 +00:00
Oliver Woodman
bd71a60f48 Remove stray test 2018-03-13 23:44:52 +00:00
aquilescanta
5706105b7c Recreate the cast media queue whenever the timeline is cleared
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188871914
2018-03-13 15:45:00 +00:00
olly
f9b70c2374 Bump version to 2.7.1 and update release notes
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188514063
2018-03-13 12:18:53 +00:00
olly
bdc5b5624d Centralize version and target sdk constants
We had these specified directly in AndroidManifest.xml due to
our internal build setup. This change makes our internal build
re-write AndroidManifest.xml to dynamically insert the required
values, meaning they no longer need specifying in each manifest.

Bonus 1: Internally built demo apps now include the CL number at
which they're built in the version name :).

Bonus 2: Removes lint warning that complains min/target SDK
values in the manifest are redundant.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188489115
2018-03-13 12:17:00 +00:00
olly
29839ab6a6 Fix min api check in RobolectricUtil
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188716201
2018-03-13 11:54:12 +00:00
olly
f44a96f184 Remove "r" from instructions for extension modules
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188038757
2018-03-07 18:40:39 +00:00
hoangtc
f91e6349fd Migrate ExoPlayer Gradle build files.
- Change 'compile' configuration (deprecared) to using 'implementation'
and 'api' configurations instead.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=187311778
2018-03-07 18:40:16 +00:00
tonihei
4519c31c58 Move extension tests to Robolectric.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=187021822
2018-03-07 18:37:46 +00:00
Aditya Anand
7c7711c355 replace 'compile' with 'implementation' 2018-03-07 18:32:26 +00:00
andrewlewis
91c4490249 Work around stalled AudioTrack up to API 28
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188173078
2018-03-07 18:31:47 +00:00
andrewlewis
f71b087fe4 Force rendering a frame every 100 ms
Also remove logic for tracking the next output buffer in LibvpxVideoRenderer, as
this allowed many consecutive frames to be rendered that were actually late
after dropping to keyframe. It looks better to show frames at a consistent
100 ms rate.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188144739
2018-03-07 18:31:40 +00:00
bachinger
7a386d9179 Add separate interface RatingCallback to handle user ratings.
To support Google Assistant media apps need to support the action
ACTION_SET_RATING. Before this change developers have to use a QueueEditor for
this which does not have any other mandatory actions required for Assistant.
With this change developers can implement the rating action with the
PlaybackPreparer which they need to implement anyway to support Assistant.

https://developer.android.com/guide/topics/media-apps/interacting-with-assistant.html#transport_controls

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188056722
2018-03-07 18:31:33 +00:00
tonihei
0160b87c43 Fix divergence of timeline between ExoPlayerImpl and ExoPlayerImplInternal.
The playback state in ExoPlayerImpl and ExoPlayerImplInternal is usually kept
in sync. Only the timeline was so far not updated in the same way with the
internal player using a null timeline while ExoPlayerImpl keeps the previous
timeline.

This change removes the need to keep a null timeline which allows to update
the internal timeline in the same way as the external one. This fixes problems
when retrying a failed playback multiple times.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188034988
2018-03-07 18:30:49 +00:00
tonihei
b7d2ae1457 Fix wrong start position in resetInternal.
The start position was set to the old start position instead of the current
playback position. We need to set the start position to the current playback
position to ensure a repreperation with the same media starts from the last
playback position.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188025439
2018-03-07 18:30:42 +00:00
olly
b10f033229 Derive duration from sample table if missing from track header
Issue: #3926

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=188020756
2018-03-07 18:30:31 +00:00
olly
110d6e4fdf Propagate failures handling messages on the playback thread
This restores functionality that was lost when we added
support for general timed message delivery.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=187866807
2018-03-07 18:29:47 +00:00
andrewlewis
d8d3bd7b3f Make the period and initial window positions match for all HLS streams
Before this change, HlsMediaSource timelines had a period starting at the epoch.
For VOD streams the window position in the period was the program date time.

This change makes period and initial window positions match. For live streams
the window position advances as segments are removed, so its position in the
period is the difference between the initial program date time and the program
date time of the latest playlist.

This also makes it possible to insert ads in VOD HLS content with program date
time, as the period and window are now aligned.

Issue: #3865

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=187590948
2018-03-07 18:28:51 +00:00
andrewlewis
452e4debcc Fix ImaAdsMediaSource isTopLevelSource
AdsMediaSource must be top-level. Currently the (deprecated) ImaAdsMediaSource
can't be used because it prepares its contained AdsMediaSource as a child
source.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=186990882
2018-03-07 18:24:14 +00:00
tonihei
052de3c677
Update ISSUE_TEMPLATE 2018-03-01 10:32:27 +00:00
ojw28
eb9c67fbc5
Merge pull request #3882 from google/dev-v2-r2.7.0
r2.7.0
2018-02-22 11:48:01 +00:00
Oliver Woodman
166c4ba795 Remove dev release notes from 2.7.0 2018-02-22 11:43:02 +00:00
Oliver Woodman
1f6607a9aa Merge branch 'release-v2' into dev-v2-r2.7.0 2018-02-22 11:39:57 +00:00
Oliver Woodman
6054ba418f Fix bad Javadoc 2018-02-22 11:14:03 +00:00
Oliver Woodman
1a5d985e2a Remove stray translations 2018-02-22 10:24:11 +00:00
Oliver Woodman
2cff596162 Allow audio position to jump on first input buffer
Allow the position to jump on receiving the first presentable input buffer,
if and only if the buffer timestamp differs significantly from what was
expected. This prevents a stuck buffering case for streams that are thought
to start at t=0, but actually start at t=large_value.
2018-02-22 10:05:16 +00:00
olly
f69cc191ab Drop EMSG atoms before MOOV
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=186454715
2018-02-21 23:42:24 +00:00
olly
93a40d1048 Fix bad @see Javadoc in CastPlayer
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=186305613
2018-02-20 16:31:13 +00:00
Oliver Woodman
5e6a2e57af Fix issue template 2018-02-20 14:36:33 +00:00
olly
c851ee9388 Fix robolectric tests when running with gradle
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=186291489
2018-02-20 14:36:26 +00:00
Oliver Woodman
d7a467c6be Remove unnecessary strings for 2.7.0 2018-02-20 13:39:48 +00:00
olly
db1f9d0a0f Bump to 2.7.0 and prepare release notes
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=186200840
2018-02-20 11:27:11 +00:00
andrewlewis
da27e7d22c Fix content progress updates and position faking
Occasionally the player could transition from playing content to playing an ad
after IMA called playAd. The discontinuity triggered faking the content
position, and the fake position was passed to IMA when content resumed causing
the wrong ad group to be loaded. Fix this by only faking the position if the
player transitions before playAd.

Also fix the calculation of the expected ad group index for a postroll ad, and
wait for the player to transition back from ad to content before passing a
content progress update.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=185994229
2018-02-20 11:24:56 +00:00
andrewlewis
20dc5dc096 Catch exceptions in all IMA callbacks
If an exception is thrown in an IMA callback it crashes the process with lots of
logging from WebView (including several stack traces, etc.). This change wraps
ImaAdsLoader code that might throw, skips any remaining ads (as the errors are
not recoverable, in general) and notifies a new load error callback so that the
application can implement its own handling. The intention is to make the loader
robust to unexpected requests from IMA and avoid crashes.

Also handle IMA loading an ad in an ad group that has no available ads. In rare
cases IMA will try to load an ad for which an error was previously notified, so
this drops those load requests allowing playback of the content to continue.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=185985850
2018-02-20 11:24:56 +00:00