Commit graph

135 commits

Author SHA1 Message Date
andrewlewis
085042d6aa Fix minor exoplayer.dev issues
PiperOrigin-RevId: 422349626
2022-01-25 17:51:17 +00:00
hschlueter
f8d84eec59 Allow multiple Transformer listeners to be registered.
Multiple listeners can be added to Transformer and its builder.
All or specific listeners can also be removed.

PiperOrigin-RevId: 421047650
2022-01-14 14:39:20 +00:00
ibaker
831cfe2026 Add Cronet keywords to SSL certificate troubleshooting entry
We [recommend apps use Cronet](https://exoplayer.dev/network-stacks.html#choosing-a-network-stack)
and the demo app uses it, so we should make it easy to look-up errors
like this in our troubleshooting page.

Issue: google/ExoPlayer#9851

#minor-release

PiperOrigin-RevId: 421015537
2022-01-14 14:24:10 +00:00
ibaker
103b170a56 Rename some references from PlayerView to LegacyPlayerView
These were missed in 46ab94bd41

These references will be re-written to PlayerView when exporting to
exoplayer2, so this commit results in some small reformatting changes.

Also fix a reference to LegacyPlayerControlView that should be
StyledPlayerControlView.

PiperOrigin-RevId: 420707706
2022-01-10 12:53:59 +00:00
ibaker
fa419f21a9 Fix deprecated reference to Player.EventListener in the dev guide
#minor-release

PiperOrigin-RevId: 417961565
2022-01-04 13:01:33 +00:00
ibaker
086688ed3c Fix reference to deprecated ExoPlayer.retry() method in dev guide.
#minor-release

PiperOrigin-RevId: 417959956
2022-01-04 12:56:37 +00:00
ibaker
5e8d1eb7f3 Add MediaSource.Factory and deprecate MediaSourceFactory
This more closely matches the pattern we have for all implementations
except DefaultMediaSourceFactory (e.g. ProgressiveMediaSource.Factory)
and other factory interfaces like (Http)DataSource.Factory.

PiperOrigin-RevId: 417826803
2022-01-04 12:51:47 +00:00
tonihei
65c444538b Rename HLS master playlist to multivariant playlist
The spec renamed this type of playlist in the latest revision
to use a more inclusive technical term (see
https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-10)

PiperOrigin-RevId: 417560274
2021-12-21 17:14:42 +00:00
ibaker
46ab94bd41 Rename PlayerView to LegacyPlayerView in media3
The old name is kept in exoplayer2.

PiperOrigin-RevId: 417378759
2021-12-20 13:53:35 +00:00
ibaker
6cce3dfb50 Remove references to MediaSourceFactory#setStreamKeys from dev guide
This method has been deprecated since 2.12.0:
d1bbd3507a

PiperOrigin-RevId: 416827149
2021-12-20 12:58:24 +00:00
ibaker
c1f878deb1 Move DefaultMediaSourceFactory.AdsLoaderProvider to AdsLoader.Provider
Keep the old interface deprecated so any app code implementing it by
name (rather than with a lambda) will continue to work.

PiperOrigin-RevId: 416816566
2021-12-20 12:54:56 +00:00
hschlueter
5bd22c3ab7 Use TransformationException for error listener parameter.
PiperOrigin-RevId: 416307600
2021-12-14 17:47:23 +00:00
tonihei
1044cfe82a Turn on HLS chunkless preparation by default.
Using chunkless preparation greatly improves start up time if the master
playlist declares CODECS for the renditions. Hence, we turn this on
by default as it benefits most well-defined HLS master playlists.

The only known reason why developers may want to turn this feature off is
when the renditions contain muxed closed-caption tracks that are not
declared in the master playlist. So this change also updates the documentation
and RELEASENOTES to point out this caveat.

PiperOrigin-RevId: 413950036
2021-12-06 12:58:17 +00:00
Oliver Woodman
e288f9428f Merge pull request #9606 from ened:rtsp-socket-factory
PiperOrigin-RevId: 413751821
2021-12-06 12:36:42 +00:00
huangdarwin
0fbd4959fd Transformer: Move required Builder context to be a constructor arg.
Deprecates setContext() and moves the required Context arg into the constructor.

This way, the parameter can later be final and non-null, per the comment at:
ecb47ba564/depot/google3/third_party/java_src/android_libs/media/libraries/transformer/src/main/java/androidx/media3/transformer/TranscodingTransformer.java (97L)

Also, fixes setOutputMimeType_unsupportedMimeType_throws by providing a context
in the builder, and updating the FrameworkMuxer#supportsOutputMimeType to catch
IllegalArgumentExceptions thrown by FrameworkMuxer#mimeTypeToMuxerOutputFormat.

PiperOrigin-RevId: 412053564
2021-11-26 15:48:53 +00:00
claincly
e158f9ab0e
Merge branch 'dev-v2' into rtsp-socket-factory 2021-11-24 11:21:34 +00:00
kimvde
4a0ea37aae Transformer: deprecate setOutputMimeType
PiperOrigin-RevId: 411010270
2021-11-19 14:30:47 +00:00
tonihei
2fe3124825 Update release notes and Javadoc for 2.16.1 (again)
PiperOrigin-RevId: 410819003
2021-11-18 17:14:05 +00:00
huangdarwin
18a15fb995 Transformer: Rename setOutputMimeType() to setContainerMimeType().
This mime type is technically for the Muxer, and determines
the container used. In the context of the transformer, this can
be thought of more as a container mime type, to avoid confusion
with the video mime type and audio mime type.

Deprecates setOutputMimeType().

PiperOrigin-RevId: 410530707
2021-11-18 13:39:19 +00:00
tonihei
615a85f206 Update Javadoc for 2.16.1
PiperOrigin-RevId: 410021183
2021-11-16 09:43:17 +00:00
claincly
cdcf57374a
Merge branch 'dev-v2' into rtsp-socket-factory 2021-11-15 17:54:51 +00:00
tonihei
1564d5314c Add additional documentation regarding resource acquisition.
The main point of the IDLE state is that the player is not holding
resources. Clarify this in the documentation of STATE_IDLE, prepare and
stop.

PiperOrigin-RevId: 409950785
2021-11-15 14:47:51 +00:00
tonihei
d88accd49e Merge #9678: Fix typo in Hello world documentation.
PiperOrigin-RevId: 409129177
2021-11-11 14:14:59 +00:00
claincly
86447cb852
Merge branch 'dev-v2' into rtsp-socket-factory 2021-11-11 13:34:56 +00:00
tonihei
86f109c42f Add repeat/shuffle mode documentation to the playlist page.
We only had some documentation for a custom shuffle mode, but none
for generic repeat or shuffle modes.

#minor-release

Issue: google/ExoPlayer#9611
PiperOrigin-RevId: 409089623
2021-11-11 10:58:45 +00:00
tonihei
13806507b0 Update track selection documentation.
The Javadoc of DefaultTrackSelector can be shortened as it's not the
right place to document detailed options of the Player track selection
parameters.

The documentation page about track selection is updated to the new
APIs and extended with most relevant options and information needed
to work with ExoPlayer's track selection API.

#minor-release

PiperOrigin-RevId: 409088989
2021-11-11 10:54:15 +00:00
ibaker
ba9ade1c8e Update exoplayer.dev copyright notice to 2021
#minor-release

PiperOrigin-RevId: 408331834
2021-11-08 17:00:35 +00:00
ibaker
1eca6700ae Rollback of 95e6db931a
*** Original commit ***

Add link to annual media developer survey.

This will be removed after the survey has closed in ~1 month.

***

PiperOrigin-RevId: 408327757
2021-11-08 16:56:03 +00:00
Sebastian Roth
d89e18fe6d Merge branch 'dev-v2' into rtsp-socket-factory 2021-11-05 11:09:48 +00:00
tonihei
468e4aa0c4 Update Javadoc for 2.16.0
PiperOrigin-RevId: 407379522
2021-11-04 01:03:22 +00:00
ibaker
d5a87d13b7 Fix broken link on supported-formats dev guide page
#minor-release

PiperOrigin-RevId: 407305661
2021-11-03 15:26:02 +00:00
Sebastian Roth
b7b4903262 some RTSP docs 2021-11-02 15:07:46 +00:00
ibaker
405b811454 Update developer guide to use non-deprecated symbols
#minor-release

PiperOrigin-RevId: 406347412
2021-11-01 09:49:37 +00:00
ibaker
689a92c9ae Update the UI Components dev guide page to use MediaItem API
#minor-release

PiperOrigin-RevId: 406163529
2021-10-29 11:28:15 +01:00
ibaker
98200c2692 Replace ExtractorsFactory with MediaSourceFactory in ExoPlayer.Builder
This has a few benefits:
  * Aligns the Builder constructors with the setters
    (setRenderersFactory is missing, but can be easily added in a
    follow-up change).
  * Allows DefaultMediaSourceFactory to be stripped by R8 and
    makes the shrinking dev guide for the cases of providing a custom
    MediaSourceFactory or directly instantiating MediaSource instances
    less weird too.

#minor-release

PiperOrigin-RevId: 405632981
2021-10-27 12:57:24 +01:00
olly
f605165430 Add database module
PiperOrigin-RevId: 405626096
2021-10-26 14:19:43 +01:00
samrobinson
3c19850ed3 Migrate library usages of SimpleExoPlayer to ExoPlayer.
PiperOrigin-RevId: 402853522
2021-10-14 12:03:11 +01:00
olly
e7c6ed5e7f Mechanical README cleanups
PiperOrigin-RevId: 401767060
2021-10-09 18:14:36 +01:00
olly
410ddf458c Add link to annual media developer survey.
This will be removed after the survey has closed in ~1 month.

PiperOrigin-RevId: 399890121
2021-09-30 11:31:44 +01:00
ibaker
a04f1d1726 Migrate usages of MediaItem.PlaybackProperties to LocalConfiguration
PiperOrigin-RevId: 399206106
2021-09-28 16:35:31 +01:00
ibaker
a63155975a Use the new MediaItem.Builder#setLiveConfiguration method
PiperOrigin-RevId: 398215071
2021-09-23 14:57:19 +01:00
ibaker
a194d73c75 Use the new MediaItem.Builder#setAdsConfiguration method
PiperOrigin-RevId: 398185843
2021-09-23 14:53:21 +01:00
christosts
a0b235c537 Update javadoc for 2.15.1
#minor-release

PiperOrigin-RevId: 397976212
2021-09-21 14:25:22 +01:00
ibaker
13827186aa Use the new MediaItem.Builder#setDrmConfiguration method
PiperOrigin-RevId: 397290953
2021-09-17 13:12:53 +01:00
olly
985e73dec8 Fix documention for specifying a custom exolist.json
Issue: #9437
#minor-release
PiperOrigin-RevId: 397273931
2021-09-17 12:00:41 +01:00
samrobinson
0d4986f806 Remove deprecated static metadata methods.
PiperOrigin-RevId: 394196332
2021-09-02 09:44:04 +01:00
kimvde
01613a2e55 Remove usages of deprecated SimpleExoPlayer.Builder
PiperOrigin-RevId: 390130681
2021-08-11 17:34:19 +01:00
christosts
5a4f2348c8 Update javadoc for 2.15.0
#minor-release

PiperOrigin-RevId: 389862401
2021-08-10 14:58:59 +01:00
olly
7e8ba03147 Deprecate final non-nested Factory classes in upstream
PiperOrigin-RevId: 389661768
2021-08-09 20:07:24 +01:00
andrewlewis
9c27cfcda7 Fix parameter names on overridden methods
The dokka javadoc generation tool complains when parameter names don't match between a method and its override. This change updates occurrences where there is currently a mismatch.

Notable renamings that might be controversial:
- `onPlaybackStateChanged(int state)` to `onPlaybackStateChanged(int playbackState)` affected a lot of lines but seems more consistent with other '-Changed' methods.
- `handleMessage(int messageType, Object payload)` to `handleMessage(int messageType, Object message)`
- `ExtractorInput` and `DataSource` inherit `DataReader` which had `read(byte[] target, ...`, while data sources normally called the first parameter `buffer`. I have standardized these all to use `buffer` even though it looks out of place in the `ExtractorInput` interface (which has more `read` methods with `target`).

PiperOrigin-RevId: 387290360
2021-07-28 09:15:29 +01:00
olly
9e615ce5f3 Update dev guide to use non-deprecated factory
#minor-release

PiperOrigin-RevId: 386966219
2021-07-27 12:27:23 +01:00
olly
4c97b76208 Add exoplayer.dev page for network stack integration
PiperOrigin-RevId: 386841818
2021-07-27 12:20:43 +01:00
olly
cae309123b Rollback of 4c10d2bd4c
*** Original commit ***

Migrate /-as-division to math.div

If google3 is the source-of-truth for this third_party code (or if this is legacy code that is no longer synced with an external source), just LGTM this CL and Rosie will submit it. If not, you should patch the upstream source of these files, since we will be disabling support for /-as-division in google3 before support is formally removed from the language.

See go/lsc-slash-as-division-deprecation.

Tested:
    TAP found no affected targets. No targets were b...

***

PiperOrigin-RevId: 386432441
2021-07-23 14:14:31 +01:00
olly
d3125d0e90 Cleanup some RTSP documentation
#minor-release

PiperOrigin-RevId: 386048024
2021-07-21 18:58:47 +01:00
ibaker
a95e66d1ba Update javadoc for 2.14.2
This also deletes several files that should have been deleted as part
of the 2.14.0 release - both javadoc for classes that were removed in
that release and all the *-frame.html files that no longer seem
to be produced by the javadoc compiler. Also a jquery file
(jquery-1.10.2.js) that's no longer produced by the compiler.

#minor-release

PiperOrigin-RevId: 385997294
2021-07-21 14:51:49 +01:00
claincly
b77175da0a Add a note for requesting format support.
PiperOrigin-RevId: 385995740
2021-07-21 14:49:15 +01:00
andrewlewis
6a5b380359 Fix RTSP link
PiperOrigin-RevId: 385736588
2021-07-21 14:35:35 +01:00
andrewlewis
40993f4f75 Fix Metadata.Entry link
PiperOrigin-RevId: 385595264
2021-07-20 08:56:43 +01:00
andrewlewis
5bc080fd41 Fix diagram name typo
PiperOrigin-RevId: 385561505
2021-07-20 08:51:12 +01:00
ibaker
9cba98114c Document that apps must depend on a consistent module version
PiperOrigin-RevId: 385522972
2021-07-20 08:48:36 +01:00
ibaker
d4cb62eb7b Fix RTSP docs and add a missing release note
* Add release note for `RtspMediaSource.Factory.setTimeoutMs()`
* Remove mention of what we don't support (any such list is necessarily non-exhaustive)
* Remove markdown quote character ('>')

PiperOrigin-RevId: 385143574
2021-07-20 08:40:55 +01:00
ibaker
22247d65c7 Use the content URI as well as mediaId for the auto-generated ad ID
MediaItem.mediaId used to default to the content URI, but this changed:
cc26a92e07

Before the mediaId change linked above, a playlist of different content
all with the same ad URI would play the ads for every item. After the
change the ad would only play once (because mediaId == "" for every
item, so they're all the same). This change restores roughly the
original behaviour by always considering both mediaId and the content
URI.

#minor-release

Issue: #9106
PiperOrigin-RevId: 382763618
2021-07-09 08:52:51 +01:00
claincly
02db70bdd0 Amend RTSP dev guide to match the current code status.
PiperOrigin-RevId: 381852972
2021-06-30 13:46:13 +01:00
aquilescanta
fc1d3dd192 Make onPlayerError take a PlaybackException
PiperOrigin-RevId: 380174672
2021-06-21 22:15:01 +01:00
olly
4c10d2bd4c Migrate /-as-division to math.div
If google3 is the source-of-truth for this third_party code (or if this is legacy code that is no longer synced with an external source), just LGTM this CL and Rosie will submit it. If not, you should patch the upstream source of these files, since we will be disabling support for /-as-division in google3 before support is formally removed from the language.

See go/lsc-slash-as-division-deprecation.

Tested:
    TAP found no affected targets. No targets were built or tested.
    http://test/OCL:380056637:BASE:380052721:1623976139468:f2fd2cbd
PiperOrigin-RevId: 380140762
2021-06-21 22:11:14 +01:00
olly
82ca628ee4 Update Javadoc for 2.14.1
#minor-release

PiperOrigin-RevId: 378844770
2021-06-11 12:27:46 +01:00
olly
271011c6f9 Align README and helloworld documentation
#minor-release

PiperOrigin-RevId: 377269770
2021-06-03 13:56:56 +01:00
aquilescanta
6a8b9557cc Use ERROR_CODE_BEHIND_LIVE_WINDOW instead of instanceof checks
PiperOrigin-RevId: 375514509
2021-05-26 11:29:16 +01:00
olly
c80355c903 Update links for new Javadoc
PiperOrigin-RevId: 374216724
2021-05-17 18:20:33 +01:00
ibaker
ea597a8002 Remove reference to Issue #4133 in exoplayer.dev/drm
The issue is fixed in 2.14.0 - keys are fetched ahead of playback

#minor-release

PiperOrigin-RevId: 374159998
2021-05-17 18:17:54 +01:00
olly
cccb40065c Minor copy edits for RTSP docs
#minor-release

PiperOrigin-RevId: 373402932
2021-05-12 18:58:13 +01:00
olly
a038f875f6 Update Javadoc for 2.14.0
#minor-release

PiperOrigin-RevId: 373351935
2021-05-12 13:55:32 +01:00
claincly
2a2d6f667d Move misplaced RTSP doc.
#minor-release

PiperOrigin-RevId: 373175041
2021-05-12 11:50:55 +01:00
claincly
4dd383565a Add dev guide for RTSP.
#minor-release

PiperOrigin-RevId: 373173075
2021-05-12 11:50:31 +01:00
olly
d282ad25c1 Include RTSP module in gradle project
#minor-release

PiperOrigin-RevId: 372981022
2021-05-10 23:41:50 +01:00
olly
9a2ebbb72e Minor guide cleanup for 2.14
#minor-release

PiperOrigin-RevId: 372980349
2021-05-10 23:41:29 +01:00
samrobinson
2914e574e6 Rename MediaMetadata trackTitle and trackArtist to title and artist.
#minor-release

PiperOrigin-RevId: 372537414
2021-05-07 14:58:03 +01:00
samrobinson
837826c735 Update retrieving-metadata on ExoPlayer.dev
#minor-release

PiperOrigin-RevId: 371939159
2021-05-04 18:36:33 +01:00
krocard
3dc6cf6bec Deprecate EventListener in favor of Listener
#minor-release

PiperOrigin-RevId: 371348520
2021-04-30 18:56:35 +01:00
krocard
ffe31be08b Deprecate component listener in favor of player
All `add*Listener` and `add*Output` methods are
deprecated in favor of `addListener`.

As for the class themselves `VideoListener` and
`AudioListener` are not used internaly by ExoPlayer,
`VideoRendererEventListener`
and `AudioRendererEventListener` are use in their
place.
As a result `VideoListener` and `AudioListener`
can be deprecated in favor `Listener`.

On the other hand `TextOutput` and `MedataOutput`
are used both in the player interface and internally in
renderers.
This means that those class can't be deprecated.
There usage in the public interface are indirectly
deprecated as their is no way to use them without
using the deprecated `add*Output`.
Thus it's not an issue that the class themselves are
not deprecated.

#minor-release

PiperOrigin-RevId: 371318268
2021-04-30 18:55:06 +01:00
ibaker
e0502cb3e8 Fix in-page anchor link on exoplayer.dev troubleshooting page
Also consolidate the threading warning info with the same info on the
hello world page and update the version that the
setThrowsWhenUsingWrongThread() method will be removed in.

PiperOrigin-RevId: 369657759
2021-04-21 18:46:40 +01:00
andrewlewis
517e590967 Move docs to correct folder for GitHub Pages 2021-04-21 11:00:57 +01:00
olly
8a11875bd7 Correct Javadoc location
PiperOrigin-RevId: 369433627
2021-04-20 15:35:30 +01:00
andrewlewis
8fbe11aa54 Move extensions/cronet to libraries/datasource_cronet
See go/media-apis-codebase-google3.

PiperOrigin-RevId: 369425137
2021-04-20 15:34:52 +01:00
Oliver Woodman
f66bdc71a0 Add gh-pages to main dev branch 2021-04-20 14:26:36 +01:00