5567 Commits

Author SHA1 Message Date
tonihei
e4c20aa3de Add convenience methods player.next() and player.previous()
This simplifies code skipping items in a playlist programatically.

Issue:#4863

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=214580742
2018-11-01 09:43:12 +00:00
tonihei
bbd82cf5da Add BasePlayer to avoid code duplication for common convenience methods.
A lot of methods just forward to other methods and there is no conceivable
way a player should implement it another way. Moving these methods to a
base player class allows to remove duplicated code across our player
implementations.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215374192
2018-11-01 09:41:38 +00:00
Oliver Woodman
4d9044d690 Fix release notes typo 2018-10-31 22:18:31 +00:00
Oliver Woodman
c04cf30960 Update release notes 2018-10-31 22:04:37 +00:00
tonihei
eef7e28ab2 Add test action to wait for an isLoading change.
This allows to wait until loading started or finished.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215704424
2018-10-31 21:59:12 +00:00
tonihei
7a3447fe9c Simplify some buffered position related code.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215704344
2018-10-31 21:57:48 +00:00
Oliver Woodman
c9c4bd89c7 Fix nullability 2018-10-31 21:55:54 +00:00
Oliver Woodman
9c0bba3b5a Misc fixes / stylistic consistency changes for merged pull requests 2018-10-31 21:55:20 +00:00
ojw28
b88c88e21e Merge pull request #4930 from Comcast/program_information
Add Support for Parsing ProgramInformation
2018-10-31 21:55:12 +00:00
Oliver Woodman
8200fe5ae6 Merge branch 'customize-ads-rendering-settings-more' of https://github.com/ogaclejapan/ExoPlayer into ogaclejapan-customize-ads-rendering-settings-more 2018-10-31 21:54:46 +00:00
ojw28
22ee67617e Merge pull request #5004 from pakerfeldt/status-message-invalidresponsecodeexception
Provide http status message to InvalidResponseCodeException
2018-10-31 21:54:36 +00:00
ojw28
e4989d1743 Merge pull request #4996 from YukiMatsumura/fix-idle-requirements
fix checkIdleRequirement
2018-10-31 21:54:21 +00:00
ojw28
bb09f5cb12 Merge pull request #4911 from Comcast/feature/hls-audio-text-id-uniqueness
Create unique id for HLS audio and text tracks
2018-10-31 21:54:06 +00:00
tonihei
1fb2d83ba5 Clarify Java 8 gradle requirement in developer guide.
Issue:#5026

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=219454985
2018-10-31 21:53:13 +00:00
andrewlewis
b1d5966ea5 Allow MP4s with truncated stco to be played
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=219448836
2018-10-31 21:53:03 +00:00
andrewlewis
b007cbf2b4 Let apps specify whether to focus skip button on ATV
Issue: #5019

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=219267048
2018-10-31 21:52:42 +00:00
andrewlewis
e6b49a5410 Fix handling of MP3s with appended data
Issue: #4954

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=218357113
2018-10-24 18:59:38 +01:00
olly
13e0513ea3 Give EventDispatcher more predictable behavior
If EventDispatcher.removeListener is called to remove a listener,
and if the call is made from the same thread that said listener
handles events on, then it should be guaranteed that the listener
will not be subsequently invoked on that thread.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=218331427
2018-10-24 18:58:35 +01:00
tonihei
5ae60a6f18 Swap google() and jcenter() in docs and gradle config.
This seems to be more stable in case Bintray has issues updating the ExoPlayer
sources.

Issue:#4997

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=218327350
2018-10-24 18:58:27 +01:00
tonihei
8b1080d5cc Check if source has been prepared before releasing it.
In ConcatenatingMediaSource, the source may be removed before it started
preparing (this may happen if lazyPreparation=true). In this case, we
shouldn't call releaseSource as the preparation didn't start.

Issue:#4986

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=218141658
2018-10-24 18:58:14 +01:00
andrewlewis
efb0251541 Add ACCESS_NETWORK_STATE permission for MH tests
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=218058185
2018-10-24 18:56:46 +01:00
tonihei
9607c6de1b Properly reset period id and start position in ExoPlayerImpl.
This is a no-op change as the respective values are not used so far but
the change makes the current state cleaner and is less error-prone.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=217892421
2018-10-24 18:56:31 +01:00
tonihei
6ae015ecbd Replace DefaultBandwidthMeter with CountryAndNetworkTypeBandwidthMeter.
This removes the experimental bandwidth meter and uses it as the new default.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215404065
2018-10-20 14:37:22 +01:00
Oliver Woodman
40b91090fc Update release notes 2018-10-20 14:34:21 +01:00
aquilescanta
41129280cf Update the cast framework gradle dependency in the Cast extension
Issue:#4960

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=217707957
2018-10-20 14:17:08 +01:00
olly
e346707199 Code shrinking doesn't like Class.super.defaultMethodName
Just not doing it seems simplier and more obviously correct
than suppressing the warnings in our proguard file.

Issue: #4890

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=217675527
2018-10-20 14:16:00 +01:00
andrewlewis
225230b984 Support seeking based on MLLT metadata
Issue: #3241

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=217252254
2018-10-20 14:15:43 +01:00
olly
0d169ca456 Remove assertion causing failure on some Samsung devices
The assertion was so weak it probably wouldn't detect genuine
misuse of the DefaultAllocator API, so it seems fine just to
remove it.

We don't really know what happens when the player is allowed to
continue on the affected devices, but hopefully it either "just
works" or fails in a more graceful way.

Issue: #4532

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=217113060
2018-10-20 14:15:21 +01:00
olly
8bf8b44799 Fix DashManifestParser to properly skip unknown tags
Robustness fix to make sure we ignore tags with known names, but
which are nested inside of unknown tags. For example we don't want
to parse the third period in:

<Period>...</Period>
<Period>...</Period>
<CustomTag>
  <Period>...</Period>
</CustomTag>

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=217101630
2018-10-20 14:15:11 +01:00
andrewlewis
362a21e17b Handle rotation signaled in MKV track name from HTC devices
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=216704331
2018-10-20 14:14:56 +01:00
andrewlewis
db0f107fb3 Project start position for preroll ad to content transitions
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=216675981
2018-10-20 14:14:44 +01:00
olly
4d8b6803af Minor fixes for period clipping
- Always clip to period duration for the last chunk. We previously
  did this only when the last chunk explicitly exceeded the period
  end time. We now also do it when the chunk claims to end at the
  period boundary, but still contains samples that exceed it.
- If pendingResetPositionUs == chunk.startTimeUs == 0 but the
  chunk still contains samples with negative timestamps, we now
  clip them by setting the decode only flag. Previously we only
  clipped such samples if the first chunk explicitly preceeded the
  start of the period.

Issue: #4899

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215763467
2018-10-20 14:13:05 +01:00
tonihei
a35bf5151d Fix updates of loading period and buffered positions in PlaybackInfo.
This makes the following changes to improve consistency among the PlaybackInfo
values:
 1. Update buffered position and total buffered duration after loading period
    is set as both values are affected by a loading period update.
 2. Add copyWithPosition to allow updating the position without resetting the
    loading period.
 3. Forward the total buffered duration to playing position updates
    as it may have changed with the new playing position.

Issue:#4899

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215712328
2018-10-20 14:12:30 +01:00
Oliver Woodman
4347bf0416 Subrip cleanup 2018-10-20 14:11:34 +01:00
ojw28
4d6b008ef6 Merge pull request #4582 from szaboa/feature/4306_srt_position_tags
#4306 - Extract tags from SubRip subtitles, add support for alignment
2018-10-20 14:11:00 +01:00
tonihei
6ee946515a Fix left position for subtitles.
When SubtitlePainter positions the cues centred in the given box, it must add
the left offset of the box to get the correct position.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215535289
2018-10-20 14:07:26 +01:00
tonihei
e2c82a256e Fix positioning of subtitles.
SubtitleView forwards the cue box position to SubtitlePainter. This should be
the position relative to the canvas of the SubtitleView. Currently, however,
we forward the position relative to the parent of SubtitleView. That causes
problems if SubtitleView has a non-zero offset position to its parent.

Issue:#4788

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215535281
2018-10-20 14:07:15 +01:00
eguven
b59781b3eb Increase supported libflac version to 1.3.2
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215214894
2018-10-20 14:04:59 +01:00
tonihei
4921595041 Fix prepare position of DeferredMediaPeriods for windows with non-zero offset.
If we prepare a deferred media period before the actual timeline is available,
we either prepare with position zero (= the default) or with a non-zero
initial seek position.

So far, the zero (default) position got replaced by the actual default position
(including any potential non-zero window offset) when the timeline became known.

However, a non-zero initial seek position was not corrected by the non-zero
window offset. This is fixed by this change.

Related to that, we always assumed that the deferred media period will the
first period in the actual timeline. This is not true if we prepare with an
offset (either because of an initial seek position or because of a default
window position). So, we also determine the actual first period when the
timeline becomes known.

Issue:#4873

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215213030
2018-10-20 14:04:16 +01:00
tonihei
6b562f0a74 Add @Documented to @IntDef and @StringDef annotations.
This makes the annotations appear in the generated JavaDoc.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=214952419
2018-10-20 14:01:13 +01:00
Andrew Shu
edee8cfbde Make DefaultTrackSelector.AudioTrackScore protected
This allows selectAudioTrack() to be overridden.
2018-10-20 13:58:34 +01:00
hacker1024
a51c114942 Call rating with extras 2018-10-20 13:57:58 +01:00
ojw28
fa9d7d5e3e
Update RELEASENOTES.md
Fix markdown
2018-10-05 13:24:01 +01:00
tonihei
ab05408419
Update release notes to better describe Java 8 chang
Apps need to set the target compatibility to VERSION_1_8 to enable the
automatic desugaring if they haven't done so already.

Issue:#4907
2018-10-04 15:24:20 +01:00
ojw28
afba6386d3
Merge pull request #4881 from google/dev-v2-r2.9.0
r2.9.0
2018-09-27 19:38:12 +01:00
Oliver Woodman
1f9a003b4b Merge branch 'release-v2' into dev-v2-r2.9.0 2018-09-27 19:37:04 +01:00
tonihei
150e54b560 Fix issue with stale createPeriod events in ConcatenatingMediaSource.
If a source is removed from the playlist, the player may still call createPeriod
for a period of the removed source as long as the new timeline hasn't been handled
by the player. These events are stale and can be ignored by using a dummy media
source. The stale media period will be released when the player handles the updated
timeline.

Issue:#4871

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=214787090
2018-09-27 17:55:09 +01:00
andrewlewis
66c9d41ba0 Update release notes for 2.9.0
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=214784773
2018-09-27 17:54:55 +01:00
aquilescanta
1bb7ec8203 Make DefaultLoadErrorHandlingPolicy non-final
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=214584874
2018-09-26 13:20:26 +01:00
olly
d92787b58d Don't request session sharing on CDMs that don't support it
Issue: #4834

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=214258163
2018-09-24 15:43:22 +01:00