8507 Commits

Author SHA1 Message Date
aquilescanta
53283ecb52 Add CastPlayer tests for repeatMode masking
PiperOrigin-RevId: 279091742
2019-11-15 05:12:42 +00:00
kimvde
d1da3d925b Fix FLAC bit rate computation
PiperOrigin-RevId: 279088193
2019-11-15 05:12:34 +00:00
kimvde
a226bd0d69 Fix extractor sniffing in FLAC extension
Assuming that a flac stream starts with bytes
['f', 'L', 'a', 'C', 0, 0, 0, 0x22] is not always correct as it could
also start with ['f', 'L', 'a', 'C', 0x80, 0, 0, 0x22]
(see https://xiph.org/flac/format.html#metadata_block_streaminfo).

PiperOrigin-RevId: 279080562
2019-11-15 05:12:25 +00:00
olly
355ed11a3c Suppress warnings emitted by Checker Framework version 2.11.1
More information:
https://docs.google.com/document/d/16tpK6aXqN68PvTyvt4siM-m7f0NXi_8xEeitLDzr8xY/edit?usp=sharing

Tested:
    TAP --sample ran all affected tests and none failed
    http://test/OCL:278915274:BASE:278884711:1573074344615:a6701677
PiperOrigin-RevId: 279080514
2019-11-15 05:12:17 +00:00
kimvde
29d110b7eb Fix FLAC extension tests
- Add @Test annotations.
- Fix seeking to ignore potential placeholders
  (see https://xiph.org/flac/format.html#metadata_block_seektable).

PiperOrigin-RevId: 279074092
2019-11-15 05:12:09 +00:00
olly
6f9baffa0c Suppress warnings emitted by Checker Framework version 2.11.1
More information:
https://docs.google.com/document/d/16tpK6aXqN68PvTyvt4siM-m7f0NXi_8xEeitLDzr8xY/edit?usp=sharing

Tested:
    tap_presubmit: http://test/OCL:278683723:BASE:278762656:1573036487314:924e1b0b
    Some tests failed; test failures are believed to be unrelated to this CL
PiperOrigin-RevId: 279034739
2019-11-15 05:12:01 +00:00
bachinger
5c2806ecca Playlist API: add Playlist and PlaylistTest
PiperOrigin-RevId: 278875587
2019-11-15 05:11:53 +00:00
bachinger
cd2c1f2f24 Playlist API: Add setMediaItem() and prepare()
PiperOrigin-RevId: 278867153
2019-11-15 05:11:45 +00:00
olly
4570cd37c5 Testutils: Add missing Javadoc + Misc cleanup
PiperOrigin-RevId: 278835106
2019-11-15 05:11:36 +00:00
olly
0a27d7b482 Don't use DRM prior to API level 18
PiperOrigin-RevId: 278660557
2019-11-15 05:11:26 +00:00
Stanislav Ionascu
6d9c707255 Detect Dolby Vision profile 7
In official documentation dvProfile 7 uses dvhe as the codec type.
2019-11-14 08:30:30 +01:00
Oliver Woodman
d73d64bc6f
Merge pull request #6619 from google/dev-v2-r2.10.7
r2.10.7
2019-11-06 13:06:22 +00:00
olly
e30f4f20f0 Bump version to 2.10.7
PiperOrigin-RevId: 278658259
2019-11-05 18:37:56 +00:00
olly
87003b30fc Bump version to 2.10.7
PiperOrigin-RevId: 278658259
2019-11-05 18:36:21 +00:00
olly
f51f7bd405 Fix SurfaceControl demo app layout
The fixes sizes could end up being wider than the screen (e.g on Pixel 3a)

PiperOrigin-RevId: 278642828
2019-11-05 18:36:14 +00:00
aquilescanta
efc7f55616 Make DefaultDrmSession package private
PiperOrigin-RevId: 278639779
2019-11-05 18:36:04 +00:00
olly
02a83a5377 Delete unused theme
PiperOrigin-RevId: 278638978
2019-11-05 18:35:56 +00:00
kimvde
9ac13f91b6 Fix inverted arguments in FlacReader format creation
PiperOrigin-RevId: 278332587
2019-11-05 17:41:29 +00:00
kimvde
1ea878a0b0 Add parameter names to Format creation
PiperOrigin-RevId: 277963928
2019-11-05 17:41:04 +00:00
aquilescanta
6c7fbe8b52 Add shuffle and repeat modes to media session playback state invalidation
Which ensures both get updated when the MediaSessionConnector player
changes.

Issue:#6582
PiperOrigin-RevId: 277254889
2019-11-05 17:40:35 +00:00
olly
accb31e489 Reset MediaSession shuffle/repeat modes if player is null
- This is for consistency with PlayerControlView.

- Also update PlayerNotificationManager notification if shuffle
  mode changes. This is for consistency with what happens when
  the repeat mode changes. By default the notification will be
  unchanged, but custom implementations can extend and then
  override createNotification, and given these modes change
  infrequently it feels like we can just do this. The alternative
  for achieving consistency would be to remove handling of repeat
  mode changes.

Issue: #6582
PiperOrigin-RevId: 277925094
2019-11-05 17:39:01 +00:00
kimvde
cc94ae7bfb Fix typo in WavHeader class
PiperOrigin-RevId: 277910360
2019-11-05 17:38:24 +00:00
andrewlewis
7ada1a848f Fix detection of Dolby Atmos in HLS
E-AC3 with JOC is signaled using the CHANNELS attribute for HLS:
https://developer.apple.com/documentation/http_live_streaming/hls_authoring_specification_for_apple_devices/hls_authoring_specification_for_apple_devices_appendices

PiperOrigin-RevId: 277680300
2019-11-05 17:37:41 +00:00
andrewlewis
f4b9042bf0 Recreate Opus decoder for stream change
The framework opus decoder discards some samples after a call to
flush(). Because we flush a decoder that is being retained across an
input format change, this means that the start of audio gets truncated
when transitioning to a new opus stream. See also
https://android.googlesource.com/platform/frameworks/av/+/refs/heads/android10-release/media/libstagefright/codecs/opus/dec/SoftOpus.cpp.

Avoid this by recreating opus decoders instead of flushing them. It
seems fine to do this for all opus decoders as reinitialization should
be cheap, OEM-provided implementations may also discard samples and
playback shouldn't be interrupted on reinitialization due to the
downstream AudioTrack buffer.

PiperOrigin-RevId: 277458759
2019-11-05 17:37:12 +00:00
olly
acb84396d5 Fix incorrect anamorphic handling in Leanback extension
The leanback library doesn't know about non-square pixels. So if
we're playing content that uses non-square pixels, we need to adjust
the video dimensions that we provide to leanback such that it
renders the video with the correct aspect ratio.

PiperOrigin-RevId: 277042560
2019-11-05 17:35:34 +00:00
ibaker
6788a830da Use -Float.MAX_VALUE for Cue#DIMEN_UNSET
Float.MIN_VALUE is very close to zero:

PiperOrigin-RevId: 276674142
2019-11-05 17:33:50 +00:00
aquilescanta
6aa792aad5 Document error handling in the Extractor interface
PiperOrigin-RevId: 276660235
2019-11-05 17:33:24 +00:00
ibaker
2c721130b1 Update parseStbl to handle edit lists & gapless info
Without this, a subtitle track empty edit list used to offset the start of
subtitles is ignored.

Also the current code seems to depend on the order in which
we parse the tracks (audio first means we have gapless info when we parse
video track, while video first we wouldn't).

It's not clear why we can't handle both edit lists & gapless info

PiperOrigin-RevId: 276029744
2019-11-05 17:32:13 +00:00
tonihei
2dbc5755f6 Fix NPE in FakeAdaptiveMediaPeriod.
The compositeSequenableLoader was causing NPEs in isLoading. Initializing it
upfront prevents this problem and is in line with what we do in all real
MediaPeriods.

PiperOrigin-RevId: 275491511
2019-11-05 17:30:17 +00:00
christosts
7cc3943b4f Experimental API to skip MediaCodec.stop()
Add experimental API on MediaCodecRenderer to skip calling
MediaCodec.stop() before the call to MediaCodec.release().

PiperOrigin-RevId: 278621032
2019-11-05 16:18:46 +00:00
kimvde
c8170e18d0 Update AndroidX Test versions to latest
Split the version of the sublibraries because their latest version
number is different. See
https://developer.android.com/jetpack/androidx/releases/test#1.2.0.

PiperOrigin-RevId: 278585090
2019-11-05 16:18:38 +00:00
olly
9842ea7f22 Move classes that don't belong in testutils out of testutils
PiperOrigin-RevId: 278401000
2019-11-05 16:18:24 +00:00
olly
d587def451 Fix Javadoc broken due to lack of import
PiperOrigin-RevId: 278399475
2019-11-05 16:18:16 +00:00
olly
5968c8345b Remove auto-value dependency
PiperOrigin-RevId: 278398045
2019-11-05 16:18:09 +00:00
kimvde
165ff55502 Fix inverted arguments in FlacReader format creation
PiperOrigin-RevId: 278332587
2019-11-05 16:18:01 +00:00
olly
46d58b5eda Add missing IntDef case in switch
PiperOrigin-RevId: 278332276
2019-11-05 16:17:54 +00:00
kimvde
bd61b63ebc Remove unnecessary exceptions in method signature
PiperOrigin-RevId: 278327151
2019-11-05 16:17:46 +00:00
olly
880b879e8c Suppress warnings emitted by Checker Framework version 2.11.1
More information:
https://docs.google.com/document/d/16tpK6aXqN68PvTyvt4siM-m7f0NXi_8xEeitLDzr8xY/edit?usp=sharing

Tested:
    TAP train for global presubmit queue
    http://test/OCL:278152710:BASE:278144052:1572760370662:22459c12
PiperOrigin-RevId: 278241536
2019-11-05 16:17:39 +00:00
olly
7e070683a3 Expose getMetrics() in ExoV1 and ExoV2 FrameworkMediaDrm classes.
PiperOrigin-RevId: 278054214
2019-11-05 16:17:31 +00:00
ibaker
922991da88 Add @NonNullApi to text packages with no blacklisted files
PiperOrigin-RevId: 277969385
2019-11-05 16:17:24 +00:00
kimvde
5d46d4f74f Add parameter names to Format creation
PiperOrigin-RevId: 277963928
2019-11-05 16:17:16 +00:00
ibaker
15f8d8668e Select exolist-specified subtitles by default
If a sample has a subtitle file listed, it makes sense to show it by
default.

PiperOrigin-RevId: 277934597
2019-11-05 16:17:08 +00:00
olly
8dcd1e53bc Remove or suppress warnings where we use our own deprecated APIs
PiperOrigin-RevId: 277928790
2019-11-05 16:17:01 +00:00
ibaker
07e93c15f9 Add support for subtitle files in the demo app
issue:#5523
PiperOrigin-RevId: 277927555
2019-11-05 16:16:53 +00:00
olly
c5c50078d7 Reset MediaSession shuffle/repeat modes if player is null
- This is for consistency with PlayerControlView.

- Also update PlayerNotificationManager notification if shuffle
  mode changes. This is for consistency with what happens when
  the repeat mode changes. By default the notification will be
  unchanged, but custom implementations can extend and then
  override createNotification, and given these modes change
  infrequently it feels like we can just do this. The alternative
  for achieving consistency would be to remove handling of repeat
  mode changes.

Issue: #6582
PiperOrigin-RevId: 277925094
2019-11-05 16:16:45 +00:00
andrewlewis
a4e7274cca Update audio extension build configurations
- Fix FLAC extension build (currently broken due to use of std::array,
  but fixed by migrating to NDK r20).
- Move opus and ffmpeg extensions to NDK r20. For ffmpeg, upgrade to
  release 4.2 which requires using libswresample and updates to the
  build script.

Issue: #6601
PiperOrigin-RevId: 277924119
2019-11-05 16:16:38 +00:00
ibaker
2106e5f328 Annotate webvtt package with @NonNullApi
PiperOrigin-RevId: 277916734
2019-11-05 16:16:30 +00:00
ibaker
616f4774e1 Remove WebvttCueParser from null-checking blacklist
PiperOrigin-RevId: 277916639
2019-11-05 16:16:22 +00:00
ibaker
129efa2ebf Remove WebvttCssStyle from null-checking blacklist
PiperOrigin-RevId: 277916508
2019-11-05 16:16:15 +00:00
ibaker
2139973e2c Remove WebvttParserUtil from null-checking blacklist
PiperOrigin-RevId: 277916279
2019-11-05 16:16:07 +00:00