1834 Commits

Author SHA1 Message Date
olly
ffbb0da893 Prevent Cea608Decoder from generating Subtitles with null Cues list.
PiperOrigin-RevId: 223580953
2018-12-01 00:08:21 +00:00
olly
d98ab35a61 Add several devices to setOutputSurface workaround:
- Asus ZenFone GO (ASUS_X00AD_2)
- Sugar S9 (i9031)
- Redmi Note 3 (kate)

These devices trigger native crashes similar to
https://github.com/google/ExoPlayer/issues/4460

I'm not sure why Asus Zenfone Go (model: ZB500KL, device: ASUS_X00AD_2) was removed here
73af056da3

PiperOrigin-RevId: 223580393
2018-12-01 00:08:16 +00:00
tonihei
8ffef3d632 Add clarification to TextOutput doc.
The list may be empty if no cues are available.

PiperOrigin-RevId: 223527105
2018-12-01 00:07:59 +00:00
olly
88af944891 Move CachedContentIndex and SimpleCacheSpan tests to robolectric
PiperOrigin-RevId: 223518390
2018-12-01 00:07:48 +00:00
tonihei
ea483f8c8e Fix some potential Uri nullness violations.
PiperOrigin-RevId: 223476569
2018-11-30 16:13:42 +00:00
andrewlewis
282cf303a4 Fix clearkey DRM UUID passed to MediaCrypto
PiperOrigin-RevId: 223324279
2018-11-29 12:35:30 +00:00
andrewlewis
699fee9727 Replace remaining stbl assertions with warnings
Issue: #5162
PiperOrigin-RevId: 223193019
2018-11-29 12:35:12 +00:00
olly
f45943b4fb Bump for 2.9.2
PiperOrigin-RevId: 223141203
2018-11-28 11:44:41 +00:00
andrewlewis
510749fa15 Handle metadata failing to decode in MetadataRenderer
Issue: #5149
PiperOrigin-RevId: 223121651
2018-11-28 09:32:17 +00:00
olly
1ce33362c9 Strip private ID3 data from HLS sample formats
Issue: #5063
PiperOrigin-RevId: 222975020
2018-11-27 15:45:58 +00:00
olly
6819192690 Clean up CacheDataSourceTest
PiperOrigin-RevId: 222965111
2018-11-27 15:45:51 +00:00
olly
aacb212c17 Remove duplicate CacheAsserts class
PiperOrigin-RevId: 222963935
2018-11-27 15:45:45 +00:00
olly
e317305909 Remove custom data from remove actions
A remove action will eventually just be the unique ID of the download
that should be removed. This is a step toward that goal.

PiperOrigin-RevId: 222832456
2018-11-27 15:45:38 +00:00
Zsolt Matyas
d1e49f2074 CEA608: PAINT-ON Mode must keep the last shown captions on the screen
[Problem]
PAINT-ON mode is not implemented. From the compliance tests:
* RDC command has no effect except to select paint-on style.
* Next data are written directly to the display upon receipt.
* If other captioning is already on the screen, the four-row
limit is still in effect.

[Solution]
It is a rare use case, we do not support overriding characters in
existing cueBuilders as PAINT-ON would require. But several
compliance tests check if the screen is cleared when the mode
switch happens. We must keep the old captions when switching
to PAINT-ON mode

[Test]
- Live Over-the-Air content, beginning of commercials often uses
PAINT-ON mode
2018-11-26 11:39:02 -08:00
olly
a31a3f3c73 Simplify DownloadActionTest legacy tests using assets
PiperOrigin-RevId: 222819933
2018-11-26 16:40:34 +00:00
olly
40c65dbcea Move deserialization code to a more natural location
- Add DownloadAction.fromByteArray for symmetry with toByteArray
- Make DownloadService call fromByteArray, for symmetry with calls
  to toByteArray

PiperOrigin-RevId: 222801703
2018-11-26 16:40:08 +00:00
Oliver Woodman
5284ad2e41 Merge pull request #5144 from google:dev-v2-vttfix
PiperOrigin-RevId: 222798467
2018-11-26 11:06:10 +00:00
olly
17eadcc433 Fix Cea608 caption valid
PiperOrigin-RevId: 222797622
2018-11-26 11:05:55 +00:00
Oliver Woodman
166acad93d Noop fix to WebvttDecoder
We already have tests for comment blocks, and they already
pass because we discard the comment when we fail to parse it
as a cue. We should just skip it directly, however.
2018-11-26 10:50:49 +00:00
olly
799bf16764 Pull reading of data bytes back above if(...){continue} clauses
PiperOrigin-RevId: 222633838
2018-11-23 17:59:27 +00:00
Oliver Woodman
e2e1c459c8 Merge #5140: Cea608 - Check parity and valid bits
Imported from GitHub PR https://github.com/google/ExoPlayer/pull/5140

https://github.com/google/ExoPlayer/pull/5086 moved onto the right branch.
Merge 8822e188d24c1d9b3ed101918763b16e46c8debc into 0c385a854d1c54f794789b390a5793a43a0eb147

PiperOrigin-RevId: 222633340
2018-11-23 17:47:40 +00:00
olly
1216068255 Add Lint.IfChange/ThenChange for repeat modes
PiperOrigin-RevId: 222630411
2018-11-23 17:40:54 +00:00
BrainCrumbz
d3095cccfe Merge #5126: fix(playlist): always call onCompletion when moving media sources
Imported from GitHub PR https://github.com/google/ExoPlayer/pull/5126

Closes #5125
Merge 55a4c1e15de7f100f37e38119f1da360910fd1e3 into fe41f17c387b7c18a818c8cf2a1ebcdfbd36836a

PiperOrigin-RevId: 222612873
2018-11-23 12:37:57 +00:00
aquilescanta
fe41f17c38 Move listener invocation classes to BasePlayer
PiperOrigin-RevId: 222609579
2018-11-23 12:31:35 +00:00
tonihei
f8a3c135e5 Use overflow-save add operation for blacklisting duration.
This allows to specify open-ended blacklisting with Long.MAX_VALUE.

PiperOrigin-RevId: 222550939
2018-11-23 12:31:12 +00:00
olly
dd2cba04dd Offline refactor step 1b - Consolidate tests
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222529260
2018-11-22 13:40:38 +00:00
aquilescanta
5f12b065a4 Support removal of ranges from ShuffleOrders
This allows more efficient range removals and is consistent with addition,
which supports adding multiple elements in a single operation.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222396310
2018-11-22 12:50:01 +00:00
olly
265462bcbd Support Opus and Flac in MP4/DASH
Issue: #4883

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222392621
2018-11-22 12:48:24 +00:00
tonihei
1699fbfa74 Add experimental option to subtract non-allocatable bandwidth.
This allows to account for bandwidth used by fixed track selections.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222383736
2018-11-22 12:42:32 +00:00
eguven
10eaa7d748 Replace BandwidthMeter with BandwidthProvider in AdaptiveTrackSelection
BandwidthProvider allows bandwidth allocation logic to be customized.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222293581
2018-11-22 12:41:05 +00:00
olly
6ebb6124bb Offline refactor step 1a - Make DownloadAction concrete
1. Pull up all subclasses of DownloadAction into DownloadAction
2. Add DownloaderFactory for Downloader instantiation, and DefaultDownloaderFactory
   to replace the instantiation logic being removed from the DownloadAction
   subclasses.

This change will upgrade existing action files gracefully (i.e. it does not
lose compatibility with the existing offline implementation, other than some
minor breaking changes to the API).

TODOs:

1. Move test methods from the XDownloadActionTest classes into DownloadActionTest.
   This will be done in a subsequent CL. There's a lot of consolidation that can
   be done here, including de-duplicating some of the test code added in this CL.
2. Look at merging DownloaderConstructorHelper into DefaultDownloaderFactory.
3. Use customCacheKey in DASH/HLS/SS Downloaders, for completeness.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222258983
2018-11-22 12:39:37 +00:00
Arnold Szabo
651db9159e #1583 - Adding support for pixel defined regions 2018-11-22 11:09:44 +02:00
eguven
527f2cf730 Add TrackSelection.Factory createTrackSelections
createTrackSelections decides whether to create an adaptive or a fixed track seletion to create.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222231011
2018-11-20 17:43:01 +00:00
tonihei
55cc0df558 Create actual copy of listener list instead of just copying the reference.
Forwarding the listeners to the notification update is meant to ensure we
only notify the listeners which were registered at the time the event happened

However, we currently just copy the reference to the actual list instead of
doing a deep copy of the listeners.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222227735
2018-11-20 17:41:24 +00:00
tonihei
b7ab570094 Use serialized listener notification for all listener notifications.
This ensures that all callbacks use the same notification mechanism.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222226913
2018-11-20 17:39:40 +00:00
tonihei
771db2c9fc Move playWhenReady update out of PlaybackInfoUpdate.
The update is actually unrelated and putting it all in one large update
object complicates adding the same update mechanism for other values.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222226825
2018-11-20 17:38:04 +00:00
tonihei
edff52ba5f Add buffer size based adaptive track selection.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222221294
2018-11-20 17:36:28 +00:00
eguven
f48ad85b19 Add experiment to use WindowedTrackBitrateEstimator
WindowedTrackBitrateEstimator, uses future and past chunks in a window
of time to estimate track bitrate values.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=222065409
2018-11-20 17:30:04 +00:00
mdoucleff
c096e156b1 Interpret single-item audio stream edit lists as audio padding specification. Use the information to strip out padding from decoded audio streams.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=221865861
2018-11-20 17:26:46 +00:00
tonihei
9dd814fcfe Improve DefaultLoadControl.shouldContinueLoading for the minBuffer=maxBuffer case.
Currently no path may be chosen if
minBufferUs == maxBufferUs == bufferedDurationUs.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=221639199
2018-11-20 17:25:06 +00:00
tonihei
7cf62a03f0 Ensure DefaultLoadControl.Builder is single-use.
This is needed because the allocator can't be reused for example.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=221638233
2018-11-20 17:23:22 +00:00
aquilescanta
67b662158c Add binarySearchCeil method for integers
This matches the binarySearchFloor method overload.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=221617114
2018-11-20 17:21:39 +00:00
olly
b77109148e Workaround for TS seeking
- Increase the search window size to fix TS seeking for problematic
  media we've had provided to us.
- As per my comments on the issue, we should look at doing more here
  to better fix the problem. This will solve the worst of the
  immediate problem, however.
- The memory usage is non-trivial, particularly with the increased
  search window size. I've made the allocations only live whilst
  determining duration and seeking to address this. I've done the same
  for PS just for consistency.

Issue: #5097

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=221449988
2018-11-14 18:11:12 +00:00
olly
5e6174fe38 DASH: Fix detection of end of live events
The remaining work is to split Window.isDynamic so that it's
possible to represent a window that wont be appended to, but
may still be removed from.

Issue: #4780

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=221439220
2018-11-14 18:09:44 +00:00
aquilescanta
76eb06d6f2 Add Timeline to nullness check
This allows client code to run nullability checks.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=221437215
2018-11-14 18:08:08 +00:00
olly
866b088d0b Noop cleanup of binary seeking / duration reading.
This is a precursor for fixing the ref'd issue. These classes are
well tested, so the tests passing should give you reasonable
confidence I didn't break anything :).

Issue: #5097

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=221435824
2018-11-14 18:06:31 +00:00
olly
c20b157bd7 Wire up experiment to use AdaptiveTrackSelection based selections
LegacyVideoTrackSelection is the previous implementation (unchanged).
VideoTrackSelection is rewritten to extend AdaptiveTrackSelection.

An experiment is added to allow use of the new VideoTrackSelection
implementation. It's envisaged that this transition will be more or
less a no-op change. The experiment flag is only in case of bugs
during roll-out, and will be removed with LegacyVideoTrackSelection
upon successful transition.

VideoTrackSelection also implements discard-on-trick-play-exit, which
was a TODO in the previous implementation.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=221153827
2018-11-14 18:04:52 +00:00
aquilescanta
51461d7e00 Add constructor to DefaultShuffleOrder to support sideloaded shuffle orders
Issue: #4915

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=221075615
2018-11-14 17:59:56 +00:00
eguven
4754aa59bd Use estimated bitrates in AdaptiveTrackSelection
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=220643861
2018-11-14 17:48:20 +00:00
andrewlewis
bce1fab03c Include channel count in capabilities check
Issue: #4690

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=220640737
2018-11-14 17:46:39 +00:00