6675 Commits

Author SHA1 Message Date
olly
cdf70edf6e Remove unnecessary FileDescriptor sync
PiperOrigin-RevId: 255380796
2019-07-09 11:30:38 +01:00
olly
d57a8587d2 Add threading model note to hello-word page
Also add layer of indirection between code and the guide, to
make moving content easier going forward.

PiperOrigin-RevId: 255182216
2019-07-09 11:30:22 +01:00
Nam Nguyen Hoai
e3f1332b1e Update TrackSelectionDialog.java
Fix a super tiny typo.
2019-07-09 11:29:59 +01:00
tonihei
18f1b06a68 Fix all FIXME comments.
These are mostly nullability issues.

PiperOrigin-RevId: 253537068
2019-07-09 11:29:45 +01:00
tonihei
feefaacb31 Gracefully handle revoked ACCESS_NETWORK_STATE permission.
This permission has normal access right and can't be revoked by the user.
However, an app can choose to revoke it when using ExoPlayer, e.g. if
no network is required and the app doesn't want to list this permission.

Support this use case by gracefully catching the exception in the relevant
places.

Issue:#6019
PiperOrigin-RevId: 253759332
2019-07-09 11:29:18 +01:00
Oliver Woodman
1c7bb2899c Merge pull request #6055 from xirac:dev-v2
PiperOrigin-RevId: 254182080
2019-07-09 11:27:31 +01:00
tonihei
913dcb3e1d Display last frame when seeking to end of stream.
We currently don't display the last frame because the seek time is behind the
last frame's timestamps and it's thus marked as decodeOnly.

This case can be detected by checking whether all data sent to the codec is
marked as decodeOnly at the time we read the end of stream signal. If so, we
can re-enable the last frame. This should work for almost all cases because the
end-of-stream signal is read in the same feedInputBuffer loop as the last
frame and we therefore haven't released the last frame buffer yet.

Issue:#2568
PiperOrigin-RevId: 251425870
2019-07-09 10:54:31 +01:00
Oliver Woodman
1ab402cf27
Create player-accessed-on-wrong-thread.md 2019-06-26 09:59:55 +01:00
Oliver Woodman
f6297f4f51
Merge pull request #5986 from google/dev-v2-r2.10.2
r2.10.2
2019-06-23 16:15:27 +01:00
Oliver Woodman
b9c8861b3e Disable publishEnabled
Issue: #6016
2019-06-21 19:59:39 +01:00
andrewlewis
4703ce1b26 Fix ad pod index offset calculation without preroll
Issue: #5928
PiperOrigin-RevId: 254379085
2019-06-21 18:38:45 +01:00
olly
fbf58425b2 Release notes language tweaks
PiperOrigin-RevId: 254156143
2019-06-21 18:37:57 +01:00
Andrew Lewis
6799097930
Fix decoder fallback for E-AC3 JOC to E-AC3
Issue: #6073
2019-06-21 11:50:12 +01:00
Oliver Woodman
c8955ed5ff Fix build 2019-06-19 18:59:31 +01:00
bachinger
66e1211350 allow multiple style rules in a STYLE block of a webvtt file
PiperOrigin-RevId: 253959976
2019-06-19 18:54:41 +01:00
bachinger
5d544974e9 keep notification when stop(false) is called
ISSUE: #6041
PiperOrigin-RevId: 253958225
2019-06-19 18:53:43 +01:00
olly
0f514a093b Update release notes for 2.10.2 cherrypicks
PiperOrigin-RevId: 253808562
2019-06-19 18:53:36 +01:00
tonihei
8286e1d725 Prevent negative renderer timestamps when seeking back.
We are currently queuing periods in a way such that the new start position
lines up with the end of the previous period (to ensure continuous playback).
However, if the start position of the new period is larger than the total of
all previously played period durations, we may end up with negative renderer
timestamps when seeking back to the beginning of this new period. Negative
timestamps should be avoided as most decoders have problems handling them
correctly.

This change forces a renderer reset if we detect such a seek to a negative
renderer time and also resets the renderer offset to 0 every time all
renderers are disabled, as this is the only time where we can savely change
the offset of an existing media period.

Also, if playback starts with an ad, we choose the content position as
renderer offset to prevent the whole issue from occurring for the seek-behind-
midroll case.

Issue:#6009
Issue:#5323
PiperOrigin-RevId: 253790054
2019-06-19 18:52:56 +01:00
olly
def01f68b9 Let AudioTrack write headers on SDK_INT >= 26
Issue: #6031
PiperOrigin-RevId: 253784986
2019-06-19 18:52:20 +01:00
aquilescanta
d072a5261e Fix application of maxAudioBitrate for adaptive audio track groups
Issue:#6006
PiperOrigin-RevId: 253781533
2019-06-19 18:52:13 +01:00
tonihei
9da2c3305b Prevent negative total buffered duration at the point where it is calculated.
In some edge cases the renderer position may be slightly ahead of the
buffered position and the total buffered duration is thus negative. We already
filter that in ExoPlayerImpl for the publicly accessible value. However, we
forward the unfiltered value to other components like the LoadControl, which
may be confusing.

Issue:#6015
PiperOrigin-RevId: 253780460
2019-06-19 18:51:38 +01:00
aquilescanta
a090f7ecca Remove unused variable
PiperOrigin-RevId: 253762488
2019-06-19 18:51:33 +01:00
tonihei
e1ff3d028f Gracefully handle revoked ACCESS_NETWORK_STATE permission.
This permission has normal access right and can't be revoked by the user.
However, an app can choose to revoke it when using ExoPlayer, e.g. if
no network is required and the app doesn't want to list this permission.

Support this use case by gracefully catching the exception in the relevant
places.

Issue:#6019
PiperOrigin-RevId: 253759332
2019-06-19 18:51:25 +01:00
bachinger
76b9175072 Add bug report section to question and content_not_playing issue templates.
PiperOrigin-RevId: 253593267
2019-06-19 18:50:41 +01:00
Toni
7f435b4787 Merge pull request #6036 from angelrc96:dev-v2
PiperOrigin-RevId: 253228214
2019-06-19 18:50:33 +01:00
arodriguez
692f4152d5 Support for UDP data source 2019-06-19 18:49:41 +01:00
Marc Baechinger
7e407089f9
add sections for bug report and link to test content 2019-06-18 19:43:29 +01:00
Marc Baechinger
67879f9557
add sections asking for bug report 2019-06-18 19:42:39 +01:00
Marc Baechinger
95c08ad864
tell user that #1234 should be the issue number 2019-06-18 19:41:01 +01:00
olly
d3967b557a Don't throw DecoderQueryException from getCodecMaxSize
It's only thrown in an edge case on API level 20 and below. If it
is thrown it causes playback failure when playback could succeed,
by throwing up through configureCodec.

It seems better just to catch the exception and have the codec be
configured using the format's own width and height.

PiperOrigin-RevId: 251745539
2019-06-06 17:41:52 +01:00
aquilescanta
f638634fe2 Simplify re-creation of the CastPlayer queue in the Cast demo app
PiperOrigin-RevId: 251617354
2019-06-06 17:41:44 +01:00
aquilescanta
2f8c8b609f Fix detection of current window index in CastPlayer
Issue:#5955
PiperOrigin-RevId: 251616118
2019-06-06 17:41:27 +01:00
aquilescanta
83a6d51fd1 Use listener notification batching in CastPlayer
PiperOrigin-RevId: 251399230
2019-06-06 17:41:21 +01:00
olly
edee3dd340 Bump to 2.10.2
PiperOrigin-RevId: 251216822
2019-06-03 19:20:22 +01:00
andrewlewis
578abccf16 Add SilenceMediaSource
Issue: #5735
PiperOrigin-RevId: 248745617
2019-06-03 16:37:39 +01:00
tonihei
d11778dbc8 Add ResolvingDataSource for just-in-time resolution of DataSpecs.
Issue:#5779
PiperOrigin-RevId: 249234058
2019-06-03 16:36:23 +01:00
Oliver Woodman
19de134aa6 CEA608: Handling XDS and TEXT modes 2019-06-03 16:35:11 +01:00
eguven
c231e1120e Fix misreporting cached bytes when caching is paused
When caching is resumed, it starts from the initial position. This makes
more data to be reported as cached.

Issue:#5573
PiperOrigin-RevId: 250678841
2019-05-31 23:03:59 +01:00
eguven
811cdf06ac Modify DashDownloaderTest to test if content length is stored
PiperOrigin-RevId: 250655481
2019-05-31 23:01:21 +01:00
eguven
bbf8a9ac13 Simplify CacheUtil
PiperOrigin-RevId: 250654697
2019-05-31 23:01:15 +01:00
eguven
92e2581e23 Fix CacheUtil.cache() use too much data
cache() opens all connections with unset length to avoid position errors.
This makes more data then needed to be downloading by the underlying
network stack.

This fix makes makes it open connections for only required length.

Issue:#5927
PiperOrigin-RevId: 250546175
2019-05-31 23:01:01 +01:00
tonihei
25e93a178a Toggle playback controls according to standard Android click handling.
We currently toggle the view in onTouchEvent ACTION_DOWN which is non-standard
and causes problems when used in a ViewGroup intercepting touch events.

Switch to standard Android click handling instead which is also what most
other player apps are doing.

Issue:#5784
PiperOrigin-RevId: 245219728
2019-05-31 22:57:50 +01:00
tonihei
b9f3fd429d Make parallel adaptive track selection more robust.
Using parallel adaptation for Formats without bitrate information currently
causes an exception. Handle this gracefully and also cases where all formats
have the same bitrate.

Issue:#5971
PiperOrigin-RevId: 250682127
2019-05-31 22:46:13 +01:00
tonihei
d626e4bc54 Rename host_activity.xml to avoid manifest merge conflicts.
PiperOrigin-RevId: 250672752
2019-05-31 22:45:49 +01:00
olly
7cdcd89873 Update cast extension build
PiperOrigin-RevId: 250664791
2019-05-31 22:45:41 +01:00
olly
9860c486e0 Keep controller visible on d-pad key events
PiperOrigin-RevId: 250661977
2019-05-31 22:45:24 +01:00
aquilescanta
9da9941e38 Fix TTML bitmap subtitles
+ Use start for anchoring, instead of center.
+ Add the height to the TTML bitmap cue rendering layout.

Issue:#5633
PiperOrigin-RevId: 250519710
2019-05-31 22:41:10 +01:00
andrewlewis
082aee692b Allow passthrough of E-AC3-JOC streams
PiperOrigin-RevId: 250517338
2019-05-31 22:40:25 +01:00
andrewlewis
41ab7ef7c0 Fix video size reporting in surface YUV mode
In surface YUV output mode the width/height fields of the VpxOutputBuffer were
never populated. Fix this by adding a new method to set the width/height and
calling it from JNI like we do for GL YUV mode.

PiperOrigin-RevId: 250449734
2019-05-31 22:38:55 +01:00
andrewlewis
8bc14bc2a9 Allow enabling decoder fallback in DefaultRenderersFactory
Also allow enabling decoder fallback with MediaCodecAudioRenderer.

Issue: #5942
PiperOrigin-RevId: 250301422
2019-05-31 22:38:32 +01:00