10716 Commits

Author SHA1 Message Date
krocard
830982496d Move Timeline to common
PiperOrigin-RevId: 345398603
2020-12-03 17:11:38 +00:00
krocard
553d5351c2 Move Renderer.VideoScalingMode back to C
As Player depends on VideoScalingMode, and
Renderer should not move to common,
to move Player to common, VideoScalingMode
needs to move first.

#player-to-common

PiperOrigin-RevId: 345314448
2020-12-03 17:11:30 +00:00
bachinger
affdff65e3 Remove HLS chunks based on parts not in playlist anymore
Issue: #5011
PiperOrigin-RevId: 345275266
2020-12-03 17:11:22 +00:00
ibaker
10b9de8342 Add an MKV asset with SSA subtitles for extractor and playback tests
Asset generated using a temporary SSA file and:
```
$ mkvmerge -o sample_with_ssa_subtitles.mkv sample.mkv input.ssa
```

PiperOrigin-RevId: 345217628
2020-12-03 17:11:13 +00:00
Oliver Woodman
b22b53f6f1 Merge pull request #8215 from TiVo:p-fix-apple-iframe-bug
PiperOrigin-RevId: 345202157
2020-12-03 17:11:03 +00:00
olly
8192bb5503 VideoFrameReleaseTimeHelper: Simplify and add comments
PiperOrigin-RevId: 345198316
2020-12-03 17:10:53 +00:00
olly
69dcad71de Update StyledPlayers control overlay scrim from 30% opacity to 60% opacity for Accessibility requirements.
PiperOrigin-RevId: 345190774
2020-12-03 17:10:44 +00:00
olly
104ad64b76 Change CronetDataSource.buildRequestBuilder method to protected.
This allows overriding the implementation of building the UrlRequest
from dataSpec when necessary

PiperOrigin-RevId: 345149165
2020-12-03 17:10:35 +00:00
olly
815927cf32 Mini release note tweaks
PiperOrigin-RevId: 345036042
2020-12-03 17:10:27 +00:00
christosts
1ff0965a10 Do not advance SystemClock manually in tests
Changes MetadataRetriever and Transformer so that their
respective tests don't need to manually control the SystemClock
in order to execute taks posted with delay from Loader.

PiperOrigin-RevId: 345024140
2020-12-03 17:10:19 +00:00
bachinger
1a5d79b78a Schedule load for non-primary playlist for low latency streams
Low latency streams potentially need to remove preload chunks in case they are removed from the playlist. Hence we need to schedule loading the next playlist even if the playlist is not a primary playlist.

Issue: #5011
PiperOrigin-RevId: 344995891
2020-12-03 17:10:10 +00:00
andrewlewis
c7e1d3f222 Mark assertion methods as @Pure
See https://checkerframework.org/manual/#type-refinement-purity.

PiperOrigin-RevId: 344994705
2020-12-03 17:10:01 +00:00
andrewlewis
69dad31b67 Mask ad media periods before the URI is available
Previously `MediaPeriodQueue` would return null if an ad media URI hadn't
loaded yet, but this meant that the player could be stuck in `STATE_READY` if
an `AdsLoader` unexpectedly didn't provide an ad URI. Fix this behavior by
masking ad media periods. `MaskingMediaPeriod` no longer requires a
`MediaSource` to instantiate it.

This also fixes a specific case where playback gets stuck when using the IMA
extension with an empty ad where the IMA SDK unexpectedly doesn't notify the ad
group fetch error.

Issue: #8205
PiperOrigin-RevId: 344984824
2020-12-03 17:09:53 +00:00
tonihei
8349d7849e Prevent reading into preload parts.
This is to ensure we can still discard the data if needed.

Issue: #5011
PiperOrigin-RevId: 344977548
2020-12-03 17:09:44 +00:00
ibaker
84a7ffc12a Add ParsableByteArray#ensureCapacity() method that keeps data
#exofixit

PiperOrigin-RevId: 344845328
2020-12-03 17:09:35 +00:00
samrobinson
7e635d9560 Set Format gapless info separately to Metadata in Extractors.
PiperOrigin-RevId: 344838400
2020-12-03 17:09:26 +00:00
bachinger
e6046a5c07 Discard HLS preload chunks when an HTTP 410 or 404 occurs
This change avoids an early fatal exception for replaced hinted parts.

Issue: #5011
PiperOrigin-RevId: 344828076
2020-12-03 17:09:17 +00:00
Ian Baker
ffea2a64b3
Merge pull request #8300 from google/dev-v2-r2.12.2
r2.12.2
2020-12-01 15:39:11 +00:00
ibaker
1cb346ee17 Bump version to 2.12.2
PiperOrigin-RevId: 344801462
2020-11-30 16:32:13 +00:00
ibaker
e508fb64f3 Bump version to 2.12.2
PiperOrigin-RevId: 344801462
2020-11-30 16:11:44 +00:00
tonihei
de67030f24 Add back VpxOutputBuffer proguard config.
This is needed to support old binary builds that still rely on the
existance of this class.

PiperOrigin-RevId: 344799495
2020-11-30 16:11:36 +00:00
tonihei
f8041e1bc0 Add explaning comment to UI proguard file.
PiperOrigin-RevId: 344787160
2020-11-30 16:11:27 +00:00
aquilescanta
054bff80fd Fix ffmpeg build script's strip tool for armeabi-v7a
Broken in bf21e3c690.

PiperOrigin-RevId: 344777455
2020-11-30 16:11:19 +00:00
olly
bcd577ba90 Clean up demo app samples
- Retire YouTube streams. They're flaky (e.g., one of them has transformed into
  an audio only stream!). There is also a desire for us to stop relying on special
  non-expiring YouTube URLs.
- Reorganize the remaining streams.

PiperOrigin-RevId: 344421031
2020-11-30 10:51:27 +00:00
olly
0e4d3162eb SonicAudioProcessor: Fix scaling to account for pending input bytes
PiperOrigin-RevId: 344420436
2020-11-30 10:51:19 +00:00
olly
26aa6f6dbf DefaultAudioSink: Fix transient position calculation errors
PiperOrigin-RevId: 344408351
2020-11-30 10:51:10 +00:00
olly
46396a93e9 Make special exception for cleartext-not-permitted
#exofixit

PiperOrigin-RevId: 344246408
2020-11-30 10:51:03 +00:00
andrewlewis
9bedaca0c7 Fix ad progress updates after rebuffering an ad
Issue: #8239

PiperOrigin-RevId: 344211877
2020-11-30 10:47:22 +00:00
olly
41d6c26904 Improve Player next/previous documentation
#exofixit
Issue: #5602
PiperOrigin-RevId: 344093622
2020-11-30 10:42:44 +00:00
olly
27d8bcf4cb Support enabling next/previous actions in PlayerNotificationManager
The ref'd issue was marked as a doucmentation candidate, but I think
the confusion likely arises from the lack of "next" and "previous" in
the method names. Our other UI components also support enabling each
button individually, so this also brings notifications in line with
those.

Issue: #6491
#exofixit
PiperOrigin-RevId: 344058969
2020-11-30 10:42:06 +00:00
kim-vde
d605b6c766 Merge pull request #8257 from xufuji456:dev-v2
PiperOrigin-RevId: 344057097
2020-11-30 10:41:52 +00:00
christosts
07a8b59a2e Set tag for every track in TrackSelectionView
#minor-release

PiperOrigin-RevId: 344051610
2020-11-30 10:40:03 +00:00
olly
5b51cb7284 Reference IMA language code bug
PiperOrigin-RevId: 343883034
2020-11-30 10:40:02 +00:00
olly
d5829336eb Remove unused logic in SonicAudioProcessor
PiperOrigin-RevId: 343882631
2020-11-30 10:40:02 +00:00
olly
10bc77c15d Localize IMA based on device locale by default
PiperOrigin-RevId: 343871061
2020-11-30 10:39:44 +00:00
ibaker
a04400cfb9 Tweak ParsableByteArray#readLine javadoc
Don't refer to the "system's default charset", just specify UTF-8
explicitly.

PiperOrigin-RevId: 343839878
2020-11-30 10:32:19 +00:00
tonihei
9f6ff55c0f Replace PeriodSeekInfo by static methods.
The inner class was only used to obtain 3 distinct pieces of
information which is better handled by static methods.

#exofixit

PiperOrigin-RevId: 344767661
2020-11-30 09:33:22 +00:00
krocard
538445572d Move FormatSupport in common
#player-to-common

PiperOrigin-RevId: 344558028
2020-11-30 09:33:11 +00:00
olly
50bbfb57c0 Mini phrasing tweak
PiperOrigin-RevId: 344535069
2020-11-30 09:33:00 +00:00
andrewlewis
99f48ccaa0 Fix typo
PiperOrigin-RevId: 344526343
2020-11-30 09:32:48 +00:00
aquilescanta
e4adf99ac0 Use symlinking for dependency on libvpx
As opposed to in-source git-clone.

PiperOrigin-RevId: 344525899
2020-11-30 09:32:37 +00:00
andrewlewis
4446e2637d Fix unexpected multiline comments
#exofixit

PiperOrigin-RevId: 344517105
2020-11-30 09:32:25 +00:00
samrobinson
6d01d40971 Remove unused get*Format from MediaCodecRenderer.
#exofixit

PiperOrigin-RevId: 344516187
2020-11-30 09:32:13 +00:00
krocard
93506f6395 Copy REPEAT_MODE to C temporary for timeline
This copy will be removed once Player is migrated to
common.

#exo-offload

PiperOrigin-RevId: 344515979
2020-11-30 09:32:01 +00:00
ibaker
46598a46fd Audit usages of ParsableByteArray#reset(int)
This method should be assumed to clear the data of the underlying array
(it will do this if the new limit > data.length).

This means it should only be called (directly) before writing into the
backing array.

It shouldn't be used as a shorthand for position=0, limit=x - those
should be two explicit method calls.

Most of these changes are no-ops, but they make the code more correct.

The TS SectionReader can't be easily changed to be 'safe', because it
relies on sectionData maintaining state between iterations of the while
loop. Instead I've added comments justifying the existing code.

PiperOrigin-RevId: 344515340
2020-11-30 09:31:49 +00:00
tonihei
e66f0032aa Remove stopTest workaround in ExoHostedTest
The workaround to post a message was needed to ensure we
receive any final onIsPlayingChanged event before the test
is finished (to record the correct playing time).

Using onEvents allows us to do this synchronously as the
callback guarantees that there is no other pending event.

#exofixit

PiperOrigin-RevId: 344436180
2020-11-27 11:08:49 +00:00
olly
9d8a41712d Move AnalyticsCollector method to correct block
#exofixit

PiperOrigin-RevId: 344428571
2020-11-27 11:08:42 +00:00
tonihei
87cd644d00 Add remaining proguard config tests.
This ensures we have full test coverage for proguard configs now.
The only configs not covered by tests are:
 - IMA and OkHttp which copy recommended configs from the respective
   library. I couldn't reproduce failures by removing them (and thus
   couldn't write a test that ensures they are correct).
 - Some dontwarn lines that just suppress warnings.

In addition, this change fixes a couple of related issues:
 - Moved AV1 proguard config to correct module.
 - Removed mentioning of deprecated ExtractorMediaSource from README
 - Suppressed warning from IMA code that prevent proguarding under
   strict rules
 - Fixed wrong proguard exclusion in VP9 module.
 - Moved FLAC exclusion (DefaultExtractorsFactory) to correct module.
 - Added AlertDialog suppression for de-jetified code.
 - Removed unusued dependency from UI module that causes large APK
   size increase.

#exofixit
#minor-release

PiperOrigin-RevId: 344427532
2020-11-27 11:08:34 +00:00
olly
1d4d5887c0 Clean up demo app samples
- Retire YouTube streams. They're flaky (e.g., one of them has transformed into
  an audio only stream!). There is also a desire for us to stop relying on special
  non-expiring YouTube URLs.
- Reorganize the remaining streams.

PiperOrigin-RevId: 344421031
2020-11-27 11:08:26 +00:00
olly
596dca6a86 SonicAudioProcessor: Fix scaling to account for pending input bytes
PiperOrigin-RevId: 344420436
2020-11-27 11:08:18 +00:00