6833 Commits

Author SHA1 Message Date
tonihei
d035f24e87 CEA608: Fix repeated Special North American chars.
We currently handle most the control code logic after handling special
characters. This includes filtering out repeated control codes and checking
for the correct channel. As the special character sets are control codes as well,
these checks should happen before parsing the characters.

Issue:#6133
PiperOrigin-RevId: 256993672
2019-07-09 11:33:21 +01:00
tonihei
1538e5d966 CEA608: no-op readability clean-up
PiperOrigin-RevId: 256676196
2019-07-09 11:33:15 +01:00
Oliver Woodman
91728d41de Merge pull request #5908 from sr1990:dev-v2
PiperOrigin-RevId: 256147805
2019-07-09 11:32:28 +01:00
olly
3d5d23778a FLV extractor fixes
1. Only output video starting from a keyframe
2. When calculating the timestamp offset to adjust live streams to start
   at t=0, use the timestamp of the first tag from which a sample is actually
   output, rather than just the first audio/video tag. The test streams in
   the referenced GitHub issue start with a video tag whose packet type is
   AVC_PACKET_TYPE_SEQUENCE_HEADER (i.e. does not contain a sample) and whose
   timestamp is set to 0 (i.e. isn't set). The timestamp is set correctly on
   tags that from which a sample is actually output.

Issue: #6111
PiperOrigin-RevId: 256147747
2019-07-09 11:32:05 +01:00
bachinger
c4c7f4bafa MediaSessionConnector: Document how to provide metadata asynchronously
Issue: #6047
PiperOrigin-RevId: 255992898
2019-07-09 11:31:36 +01:00
tonihei
71e0f2e81c Don't consume touch events if no controller is attached.
Issue:#6109
PiperOrigin-RevId: 255933121
2019-07-09 11:31:24 +01:00
andrewlewis
5365272b60 Use the floor of the frame rate for capability checks
PiperOrigin-RevId: 255584000
2019-07-09 11:31:11 +01:00
bachinger
d3e7ea89d9 call setPlayWhenReady in any case
ISSUE: #6093
PiperOrigin-RevId: 255471282
2019-07-09 11:30:59 +01:00
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