krocard
0dd296c2c9
Move BundleableUtil in common
...
It is used to implement `Bundleable` for
`TrackSelection`.
PiperOrigin-RevId: 383408386
2021-07-09 09:17:57 +01:00
aquilescanta
8b1fcfc40f
Drop support for subclass instance unbundling in PlaybackException
...
PiperOrigin-RevId: 383408075
2021-07-09 09:16:41 +01:00
kimvde
1608f6f9da
Remove the seekBack/Forward increment setters
...
This simplifies the API surface and the MediaController implementation.
PiperOrigin-RevId: 383385436
2021-07-09 09:12:49 +01:00
aquilescanta
73b5d0c37b
Expand documentation of ERROR_CODE_DRM_CONTENT_ERROR
...
PiperOrigin-RevId: 383382813
2021-07-09 09:11:34 +01:00
aquilescanta
5b2e854344
Add missing call and rename getErrorCodeForMediaDrmErrorCode
...
PiperOrigin-RevId: 383251000
2021-07-09 09:06:00 +01:00
kimvde
15c565c7d7
Rename fastForward/rewind to seekForward/Back in Player
...
This matches the Javadoc better.
PiperOrigin-RevId: 383228021
2021-07-09 09:02:17 +01:00
ibaker
ee488e6625
Clarify the thread requirements of a SurfaceView or SurfaceHolder
...
Issue: #9005
PiperOrigin-RevId: 382765045
2021-07-09 08:54:07 +01:00
ibaker
5e4056eb4c
Encode emsg duration & ID as int64 instead of uint32
...
The serialization scheme used here is custom, it doesn't need
to be compatible with emsg-v0 or emsg-v1 (since
97183ef558 ).
This means that C.TIME_UNSET will propagate correctly through the
serialization.
#minor-release
Issue: #9123
PiperOrigin-RevId: 382762873
2021-07-09 08:49:27 +01:00
ibaker
ee426822ee
Mark BasePlayer constructor as protected
...
This is an abstract class so it can only be constructed from the context
of a subclass anyway.
PiperOrigin-RevId: 382756293
2021-07-09 08:46:58 +01:00
claincly
6035932fa3
Make HttpDataSourceException use PlaybackException error codes.
...
PiperOrigin-RevId: 382710409
2021-07-09 08:44:36 +01:00
claincly
747b0f057b
Make DataSourceException use PlaybackException error codes.
...
- Use `PlaybackException.ErrorCode` IntDef for `DataSourceException` error code
- Deprecate `DataSourceException.POSITION_OUT_OF_RANGE`
- All other changes are related to replacing the deprecated constant and
constructor
PiperOrigin-RevId: 382683522
2021-07-09 08:43:22 +01:00
claincly
ee0d905eed
Add ERROR_CODE_TIMEOUT.
...
Also remove the method for creating a TYPE_RENDERER ExoPlaybackException
with unknown renderer name and index.
PiperOrigin-RevId: 382589655
2021-07-09 08:40:38 +01:00
claincly
dda1d37368
Make HttpDataSourceException subclass DataSourceException.
...
PiperOrigin-RevId: 382551642
2021-07-09 08:39:26 +01:00
aquilescanta
b0ddef5bcf
Assign DRM error codes
...
PiperOrigin-RevId: 382527115
2021-07-09 08:38:13 +01:00
aquilescanta
c1995745e7
Move platform error mapping to common
...
In order to use it for error code assignment. Note that these DRM errors
could be thrown on API < 18 (from MediaCodec.CryptoException), which is
the reason we can't put the mapping in FrameworkMediaDrm.
PiperOrigin-RevId: 382512414
2021-07-09 08:36:53 +01:00
aquilescanta
124a6aea50
Remove unused method Log.getLogStackTraces
...
It was impossible to call because it was a non-static method in a class
with a private constructor.
PiperOrigin-RevId: 382504128
2021-07-09 08:34:38 +01:00
krocard
4de4f85739
Document threading guarantee of Player.addListener
...
These guarantees were documented for `EventListener` and
hold as well for Listener but were not documented.
PiperOrigin-RevId: 382498188
2021-07-09 08:33:26 +01:00
aquilescanta
a24bbbdd5e
Reimplement getErrorCodeFromPlatformDiagnosticsInfo to save the pattern
...
PiperOrigin-RevId: 382494191
2021-07-09 08:31:10 +01:00
aquilescanta
d9d02710c0
Add tests for Util.getErrorCodeFromPlatformDiagnosticsInfo
...
PiperOrigin-RevId: 382311518
2021-07-09 08:27:17 +01:00
aquilescanta
2ca7432bf6
Move Util.getErrorCodeFromPlatformDiagnosticsInfo into common
...
Will be needed for error code assignment.
PiperOrigin-RevId: 382305328
2021-07-09 08:26:03 +01:00
Scott
dffcf258ee
Updated mimetypes to support DTSX and to correct assign dtse to DTS Express
2021-07-08 11:11:26 +01:00
olly
dea52048cb
Bump dependency versions
...
PiperOrigin-RevId: 382277352
2021-06-30 13:53:01 +01:00
samrobinson
9013facdd7
Rename PlaylistMediaMetadata to PlaylistMetadata in Player.
...
This affects the setter, getter and callback, as well as various
media 3 methods.
PiperOrigin-RevId: 382275672
2021-06-30 13:51:51 +01:00
aquilescanta
764f9f20d6
Add info about trick-playness to the Format log string
...
PiperOrigin-RevId: 382139109
2021-06-30 13:50:32 +01:00
aquilescanta
155e27ec7c
Move ExoPlaybackException back into core
...
PiperOrigin-RevId: 381941053
2021-06-30 13:47:30 +01:00
claincly
ffbec2234d
Assign PlaybackException.ErrorCode to renderer failures.
...
PiperOrigin-RevId: 381852092
2021-06-30 13:45:02 +01:00
aquilescanta
465f7c06d8
Add ERROR_CODE_IO_CLEARTEXT_NOT_PERMITTED
...
And assign it to CleartextNotPermittedException.
PiperOrigin-RevId: 381247430
2021-06-30 13:34:31 +01:00
olly
1e9b6d66a3
[CronetDataSource] Support keeping the POST method and body for 302
...
Currently when a HTTP POST request receives a 302, CronetDataSource will change the request method from POST to GET for the redirected request, and drop the post body. This aligns with the behaviours of many user agents, but our use case would like to keep the POST method and the post body.
org.chromium.net.UrlRequest.followRedirect also changes POST to GET for 302, so should be avoided here.
PiperOrigin-RevId: 381233011
2021-06-30 13:28:50 +01:00
aquilescanta
fc26d4eeb1
Remove the last deprecated ParserException constructor
...
PiperOrigin-RevId: 381221669
2021-06-30 13:27:45 +01:00
samrobinson
2d44f82aa4
Correct naming of compilation field MediaMetadata.
...
PiperOrigin-RevId: 381016088
2021-06-30 13:20:18 +01:00
aquilescanta
1a8592c5c0
Add Player.Listener.onPlayerErrorChanged
...
Equivalent to onPlayerError, except it's also called for null.
PiperOrigin-RevId: 381015336
2021-06-30 13:17:49 +01:00
aquilescanta
81c542b6a7
Remove deprecated ParserException constructor
...
And replace it with factory method which includes more
context for error code assignment.
PiperOrigin-RevId: 380624625
2021-06-21 22:29:27 +01:00
samrobinson
775507088c
Add a playlist title field to MediaMetadata.
...
Allows for compatibility with METADATA_KEY_COMPILATION.
PiperOrigin-RevId: 380179505
2021-06-21 22:17:25 +01:00
aquilescanta
fc1d3dd192
Make onPlayerError take a PlaybackException
...
PiperOrigin-RevId: 380174672
2021-06-21 22:15:01 +01:00
samrobinson
9c12d08531
Do not check the validity of dates in MediaMetadata.
...
PiperOrigin-RevId: 380009757
2021-06-21 22:08:51 +01:00
samrobinson
259f0f67a3
Add genre to MediaMetadata.
...
PiperOrigin-RevId: 380000589
2021-06-21 22:07:39 +01:00
samrobinson
d1aacc5f3b
Add release date and recording date fields to MediaMetadata.
...
PiperOrigin-RevId: 379962022
2021-06-21 22:06:29 +01:00
kimvde
56e97783eb
Simplify DefaultControlDispatcher by using Player methods
...
PiperOrigin-RevId: 379732136
2021-06-21 21:59:14 +01:00
olly
63f12f0216
Remove obsolete Checker Framework suppression strings
...
More information: go/checker-3130-lsc
Tested:
TAP for global presubmit queue passed after automated deflaking of failures: http://mondo/deflaker/run/ff80a4f9-d5d7-47ac-9560-63372e1ff624 http://mondo/deflaker/run/ca3ce61f-2af8-4fa7-b6e4-c98b5c4d950c
http://test/OCL:379405669:BASE:379421861:1623763190392:bd2d256a
PiperOrigin-RevId: 379623080
2021-06-21 21:57:56 +01:00
olly
a3dbd61239
Remove obsolete Checker Framework suppression strings
...
More information: go/checker-3130-lsc
Tested:
Some test failures are present, but the CL author has decided to mail the change anyway
PiperOrigin-RevId: 379622938
2021-06-21 21:56:37 +01:00
ibaker
391ad7dbb9
Add DRM info to Format.toLogString
...
The Widevine H264 samples in the demo app now log this from the EventLogger:
```
[X] Track:0, id=1, mimeType=video/avc, bitrate=772315, codecs=avc1.42c01e, drm=[widevine,cenc], res=320x142, fps=24.0, supported=YES
```
And the VP9 ones log:
```
[X] Track:0, id=1, mimeType=video/x-vnd.on2.vp9, bitrate=588256, codecs=vp9, drm=[widevine], res=320x142, fps=23.809525, supported=YES
```
#minor-release
PiperOrigin-RevId: 379498332
2021-06-15 18:43:46 +01:00
kimvde
912acacbe1
Add onFastForward/RewindIncrementChanged to Player
...
PiperOrigin-RevId: 379497408
2021-06-15 18:42:19 +01:00
samrobinson
7d81f20f92
Add disc fields to MediaMetadata.
...
PiperOrigin-RevId: 379469182
2021-06-15 18:40:46 +01:00
Oliver Woodman
f90d0a26a4
Merge pull request #9023 from DolbyLaboratories:dev-v2-multicodecs
...
PiperOrigin-RevId: 379440699
2021-06-15 18:39:14 +01:00
olly
0b97f08955
Suppress warnings in preparation for Checker Framework 3.13.0 upgrade.
...
LSC: go/checker-lsc
Tested:
TAP train for global presubmit queue
http://test/OCL:379220771:BASE:379219228:1623675799153:ea986c7c
PiperOrigin-RevId: 379284240
2021-06-15 18:34:39 +01:00
jinpark
581e543d39
Add toBundle(boolean excludeMediaItems) to Timeline.
...
Add MediaItem.EMPTY.
PiperOrigin-RevId: 379273172
2021-06-15 18:30:32 +01:00
gyumin
8777146e33
Fix forwarding onPlaybackSuppressionReasonChanged
...
PiperOrigin-RevId: 379264658
2021-06-15 18:29:09 +01:00
aquilescanta
5f1921f531
Make Player.getPlayerError return a PlaybackException
...
PiperOrigin-RevId: 378899373
2021-06-15 18:27:48 +01:00
samrobinson
19629513af
Populate MediaMetadata artwork from PictureFrame.
...
PiperOrigin-RevId: 378889901
2021-06-15 18:25:17 +01:00
aquilescanta
c62e444c13
Make PlaybackException be able to de-serialize subclasses
...
Otherwise, Player clients would not be able to benefit from
PlaybackException subclasses, like ExoPlaybackException.
PiperOrigin-RevId: 378873767
2021-06-15 18:22:51 +01:00
samrobinson
b511ed3b37
Add more MediaMetadata fields.
...
Added composer, conductor and writer.
PiperOrigin-RevId: 378844760
2021-06-11 12:26:37 +01:00
samrobinson
22f05e549a
Populate MediaMetadata from VorbisComment.
...
PiperOrigin-RevId: 378844617
2021-06-11 12:25:39 +01:00
kimvde
53d67daaef
Add available commands to fast forward and rewind
...
PiperOrigin-RevId: 378842286
2021-06-11 12:24:37 +01:00
olly
3e819d082a
Make javadoc valid html5
...
As of [JDK-8247957](https://bugs.openjdk.java.net/browse/JDK-8247957 ), doclint
no longer supports html4.
Tested:
Some test failures are present, but the CL author has decided to mail the change anyway
PiperOrigin-RevId: 378819179
2021-06-11 12:23:35 +01:00
jaewan
3a519b539b
Include remote player cases for reason constants in Player
...
PiperOrigin-RevId: 378779411
2021-06-11 12:22:28 +01:00
olly
047037e74b
Bump version to 2.14.1 and tidy release notes
...
#minor-release
PiperOrigin-RevId: 378665771
2021-06-10 17:39:58 +01:00
aquilescanta
805cd47682
Add methods for comparing PlaybackException data
...
Also replace the equals() method in MediaUtils.
PiperOrigin-RevId: 378638642
2021-06-10 17:37:42 +01:00
aquilescanta
b5dbadee0c
Remove ParserException(cause) constructor
...
PiperOrigin-RevId: 378635295
2021-06-10 17:36:29 +01:00
samrobinson
5204bb0d44
Add playlist MediaMetadata to the Player.
...
PiperOrigin-RevId: 378407609
2021-06-10 11:23:30 +01:00
kimvde
e4263c4a67
Add fast forward and rewind methods to Player
...
PiperOrigin-RevId: 378104210
2021-06-08 13:04:56 +01:00
olly
4b30cca914
Update @SuppressWarnings annotations for go/nullness diagnostics
...
in preparation for upgrading the version of the Checker Framework in google3.
More information: go/checker-3110-lsc
PiperOrigin-RevId: 377925828
2021-06-08 13:02:47 +01:00
olly
b56b769faa
Update @SuppressWarnings annotations for go/nullness diagnostics
...
in preparation for upgrading the version of the Checker Framework in google3.
More information: go/checker-3110-lsc
PiperOrigin-RevId: 377374612
2021-06-08 12:50:09 +01:00
aquilescanta
af4b891c99
Use UnrecognizedFormatException for progressive media only
...
PiperOrigin-RevId: 377303025
2021-06-03 20:07:04 +01:00
kimvde
b0a3bc5b28
Rename ExoFlags to FlagSet
...
We want to remove mentions of ExoPlayer for
convergence.
PiperOrigin-RevId: 377290376
2021-06-03 20:04:39 +01:00
aquilescanta
36841d4f6f
Replace one of the ParserException constructors with factory method
...
PiperOrigin-RevId: 377281961
2021-06-03 20:03:16 +01:00
olly
bb2e0bc0ef
Bump targetSdkVersion to 30
...
- Remove Robolectric workarounds that are no longer needed
- Add workarounds for b/190021699
PiperOrigin-RevId: 377279422
2021-06-03 20:01:50 +01:00
andrewlewis
2260678bee
Fix texture transformation in gldemo
...
`SurfaceTexture` provides a transform matrix with each buffer. Previously
gldemo ignored this but it is important to apply it to have the video render
properly.
The transformation matrix from the surface texture includes flipping so this
change removes the hard-coded flipping from `a_texcoord`.
Issue: #8992
#minor-release
PiperOrigin-RevId: 377271389
2021-06-03 19:59:43 +01:00
jinpark
0edb7873e0
Make RemotableTimeline public
...
PiperOrigin-RevId: 377231322
2021-06-03 13:52:42 +01:00
tonihei
2938d40bf4
Allow to specify the number of removed ad groups in AdPlaybackState.
...
This helps to remove old ad groups (e.g. those that fell out
of the live window) to keep the data size of AdPlaybackState small.
Also added this case to some existing unit tests to ensure it's
covered.
PiperOrigin-RevId: 376170653
2021-05-27 18:49:53 +01:00
tonihei
0d0ccadc83
Add getter for ad groups in AdPlaybackState.
...
This allows to decouple the data structure from the access. In
a future change, this allows to completely remove old ad groups
(e.g. for live streams where the number of groups would otherwise
grow forever).
Also move the time into the group itself for better encapsulation.
PiperOrigin-RevId: 376170408
2021-05-27 18:48:40 +01:00
ibaker
4033832cba
Cleanup the MediaItem.Builder javadoc for 'conditional' setters
...
Many of the setters are ignored unless others are set - this change:
* Lists these conditions exhaustively.
* Uses more concise language to avoid overshadowing the main details
of what the setter sets.
* Tweaks the language from 'is ignored' to 'shouldn't be called', to
open up the future possibility of throwing an error if these are
called without the 'required' setter also being present (see
Issue: #8957 ).
#minor-release
PiperOrigin-RevId: 376162385
2021-05-27 16:10:54 +01:00
claincly
6d04b998f9
Use more factory method to create ParserException.
...
ParserException's constructor methods are deprecated.
#minor-release
PiperOrigin-RevId: 376150191
2021-05-27 16:04:10 +01:00
ibaker
41ce635a42
Fix docs on MediaItem.Builder#setDrmUuid
...
The docs on setLicenseUri say it's optional, and it has been since
379cd8a04f
(which should have changed this javadoc too)
#minor-release
PiperOrigin-RevId: 376139158
2021-05-27 16:02:56 +01:00
claincly
4f59394f51
Use factory method to create ParserException.
...
ParserException's constructor methods are deprecated.
#minor-release
PiperOrigin-RevId: 376127494
2021-05-27 16:01:38 +01:00
aquilescanta
c353151288
Add errorCode to the EventLogger
...
PiperOrigin-RevId: 376126959
2021-05-27 16:00:32 +01:00
olly
ee2af43a54
Fix file formatting
...
PiperOrigin-RevId: 375919564
2021-05-27 10:40:54 +01:00
gyumin
beb13f62a7
Add FOLDER_TYPE_NONE to MediaMetadata
...
PiperOrigin-RevId: 375883879
2021-05-26 11:33:41 +01:00
klhyun
2e5c95e80a
Remove obsolte TODO
...
PiperOrigin-RevId: 375830765
2021-05-26 11:33:04 +01:00
aquilescanta
2e8d4c9110
Extract function for mapping ColorInfo-related constants
...
PiperOrigin-RevId: 375705247
2021-05-26 11:31:52 +01:00
aquilescanta
4e5e654eff
Add convenience method for getting the name of an error code
...
PiperOrigin-RevId: 375686596
2021-05-26 11:31:12 +01:00
samrobinson
6b7a0d8c11
Add year to MediaMetadata.
...
#minor-release
PiperOrigin-RevId: 375674759
2021-05-26 11:30:36 +01:00
ibaker
926df59081
Defensively copy potentially mutable text in Cue constructor
...
Without this the Cue isn't deeply immutable, which can be a bit
surprising.
PiperOrigin-RevId: 375477571
2021-05-26 11:27:59 +01:00
ibaker
2081f4b466
Annotate Cue.Builder getters with @Pure
...
This reduces the null-checking required in a follow-up change.
PiperOrigin-RevId: 375468504
2021-05-26 11:27:22 +01:00
samrobinson
8d550bf05b
Add an extras bundle to MediaMetadata.
...
#minor-release
PiperOrigin-RevId: 375435339
2021-05-26 11:25:27 +01:00
samrobinson
e793a9031b
Add a mediaType field to MediaMetadata.
...
#minor-release
PiperOrigin-RevId: 375097412
2021-05-21 18:25:49 +01:00
aquilescanta
1c4294175f
Add contentIsMalformed and dataType to ParserException
...
PiperOrigin-RevId: 374874272
2021-05-21 12:02:29 +01:00
klhyun
9e4315f48d
Implement MediaController#getCurrentCues
...
It only covers MediaSession - MediaController
(Does not consider cases that either a legacy session or a legacy controller is involved)
Add PlayerInfo#Builder to clean it up.
PiperOrigin-RevId: 374785779
2021-05-20 15:39:34 +01:00
christosts
65d8ff80db
ForwardingPlayer only forwards Player operations
...
PiperOrigin-RevId: 374621615
2021-05-19 20:24:53 +01:00
krocard
41afb6ac4e
Add guarantied invalid command to allow niche optimisations
...
This allows users to use `int` to store an optional command.
PiperOrigin-RevId: 374600127
2021-05-19 20:24:29 +01:00
aquilescanta
66c1aedeb3
Assign ERROR_CODE_BEHIND_LIVE_WINDOW to BehindLiveWindowExceptions
...
PiperOrigin-RevId: 374425179
2021-05-19 20:23:38 +01:00
aquilescanta
227795964b
Add an IntDef for DATA_TYPE_* constants
...
PiperOrigin-RevId: 374418502
2021-05-19 20:22:48 +01:00
aquilescanta
6c06b4efd1
Re-order error codes for symmetry
...
PiperOrigin-RevId: 374416794
2021-05-19 20:22:23 +01:00
aquilescanta
61c92007b7
Bubble up the errorCode argument in preparation for new factory methods
...
Notes:
- The only functional change is that createForRemote now assings ERROR_CODE_REMOTE_ERROR.
- createForSource still uses ERROR_CODE_UNSPECIFIED, even though it expects an
IOException. The reason for not using ERROR_CODE_IO_UNSPECIFIED is that the reason for
the error might not be IO. For example, malformed media, or BehindLiveWindowException,
which have non-IO error codes. So using UNSPECIFIED saves a later change in category.
PiperOrigin-RevId: 374390407
2021-05-19 20:21:57 +01:00
tonihei
378b3f6eb5
Add Util class for server-side inserted ads.
...
When working with SSAI ads, we need to easily convert positions between
the underlying stream and the media model that exposes ad groups. To
simplify this, we can add util methods (that are testable on their own).
In addition, we need an easy way to build AdPlaybackStates for SSAI
inserted ads. The metadata is obtained out-of-band and usually has the
ad group start and end times in the underlying stream only. Hence, we
also add a util method to add a new ad group based on this information.
PiperOrigin-RevId: 374369360
2021-05-19 20:21:32 +01:00
samrobinson
25b453a5fe
Add track number & total to MediaMetadata
...
#minor-release
PiperOrigin-RevId: 374235979
2021-05-19 20:20:43 +01:00
tonihei
04d6c8ed19
Fix grammar nit
...
PiperOrigin-RevId: 374186953
2021-05-17 18:20:14 +01:00
krocard
6a30af567f
Add Commands.Builder.addAllCommands for easy init
...
MediaSession default command state contains all
commands.
To avoid having to update MediaSession when a command
is added, allow to create a Commands.Builder that
starts with all commands.
PiperOrigin-RevId: 374183484
2021-05-17 18:19:53 +01:00
aquilescanta
17209ed1ee
Use the term equivalent instead of equal in assertion
...
The assertion doesn't check equality (as in x.equals(y)), but rather
whether a subset of the fields are equal.
PiperOrigin-RevId: 374183338
2021-05-17 18:19:32 +01:00
olly
2566b24642
Remove deprecated Listener.onTimelineChanged
...
PiperOrigin-RevId: 374171038
2021-05-17 18:19:13 +01:00
christosts
1dfda7ab6e
ForwardingPlayer implements Player
...
Make ForwardingPlayer implement Player and not extend BasePlayer so that
ForwardingPlayer forwards each Player method directly to the wrapped
Player instance.
PiperOrigin-RevId: 374161084
2021-05-17 18:18:14 +01:00