https://github.com/google/ExoPlayer

sort by:
Revision Author Date Message Commit Date
02f7aaf Merge pull request #9279 from google/dev-v2-r2.15.0 r2.15.0 11 August 2021, 14:04:22 UTC
d56b6a5 Move DASH multiple base URL release note The release note was put under 2.14.2 but the feature is released in 2.15.0. #minor-release PiperOrigin-RevId: 390093836 11 August 2021, 11:36:56 UTC
f344461 Bump version to 2.15.0 and tidy release notes PiperOrigin-RevId: 389871495 10 August 2021, 14:41:20 UTC
067fcdb Update javadoc for 2.15.0 #minor-release PiperOrigin-RevId: 389862401 10 August 2021, 14:24:31 UTC
bf462ac Fix bug in Timeline.getRemovedAdGroupCount() #minor-release PiperOrigin-RevId: 389174519 06 August 2021, 15:10:43 UTC
8fb1e5c Set StreamIndex Name as format.label in SS Issue: #9252 #minor-release PiperOrigin-RevId: 388889406 05 August 2021, 11:44:20 UTC
6ca0b30 Handle RTSP session id properly. Issue: #9254 #minor-release We used to allow only alphanumerical characters in session id. The spec also allows "$", "-", "_", ".", "+" (RFC2326 Sections 3.4 and 15.1). PiperOrigin-RevId: 388873742 05 August 2021, 11:43:57 UTC
17723c0 Simplify network-related error codes This change removes ERROR_CODE_IO_NETWORK_UNAVAILABLE, ERROR_CODE_IO_NETWORK_CONNECTION_CLOSED, and ERROR_CODE_IO_DNS_FAILED in favor of keeping only ERROR_CODE_IO_NETWORK_CONNECTION_FAILED. PiperOrigin-RevId: 388715972 04 August 2021, 18:05:41 UTC
f23ab8e Merge pull request #9247 from colinbarr:dev-v2-rtsp-fmtp-trailing-semicolon PiperOrigin-RevId: 388713101 04 August 2021, 18:04:04 UTC
ba3f868 Tweak use of TimestampAdjuster for seeking - Fix use of getTimestampOffsetUs in TsExtractor where getFirstSampleTimestampUs should have been used. - Don't reset TimestampAdjuster if it's in no-offset mode. - Improve comment clarity #minor-release PiperOrigin-RevId: 388682711 04 August 2021, 18:03:06 UTC
5689e09 Set HlsSampleStreamWrapper.trackType for audio-only playlists For audio-only playlists, when formats are communicated to the app with AnalyticsListener.onDownstreamFormatChanged(), the passed MediaLoadData do not indicate this is an audio track and therefore the PlaybackStatsListener cannot derive audio format-related information. This change sets the main SampleStreamWrappers track type to AUDIO, if the master playlist contains only audio variants. Issue: #9175 #minor-release PiperOrigin-RevId: 388676060 04 August 2021, 18:02:50 UTC
5b2b882 Change how AnalyticsCollector releases listeners The AnalyticsCollector releases listeners lazily so that listener callbacks triggered on the application looper after SimpleExoPlayer.release() are still handled. The change in ListenerSet to post the onEvents callback on the front of the application looper changed (correctly) how onEvents are propagated, however this made the AnalyticsCollector deliver onEvents with out-of-order EventTimes. This change fixes AnalyticsCollector to trigger onPlayerReleased() and the matching onEvents() event in the correct order. #minor-release PiperOrigin-RevId: 388668739 04 August 2021, 18:02:29 UTC
5932406 Use AudioTrack.isDirectPlaybackSupported on TVs only Issue: #9239 PiperOrigin-RevId: 388437614 04 August 2021, 18:01:19 UTC
95dcd89 Add `font-size` support to WebVTT `CssParser`. This CL addresses the github issue [#8946](https://github.com/google/ExoPlayer/issues/8964). That issue requests support for `font-size` CSS property in WebVTT subtitle format. This CL: * Adds support for `font-size` property by extending capabilities of WebVTT `CssParser`. Implementation of `font-size` property value parsing is based on the one in `TtmlDecoder`. * Adds unit test along with test file containing WebVTT subtitles with all currently supported `font-size` units. #minor-release PiperOrigin-RevId: 388423859 04 August 2021, 17:57:58 UTC
8732f2f HLS: Avoid stuck-buffering issues Issue: #8850 Issue: #9153 #minor-release PiperOrigin-RevId: 388257563 04 August 2021, 17:57:08 UTC
e95c42e Simplify TimestampAdjuster logic - Use timestampOffsetUs == C.TIME_UNSET directly as the way of determining whether the adjuster has determined the offset, rather than relying on lastSampleTimestampUs checks for this. - Remove comment referring to lastSampleTimestampUs as holding the "adjusted PTS". Its value may not have originated from a PTS timestamp. It's also confusing to refer to it as "adjusted" given timestampOffsetUs has not been applied to it. - Fix PassthroughSectionPayloadReader to make sure it'll never output a sample with an unset timestamp. #minor-release PiperOrigin-RevId: 388226180 04 August 2021, 17:56:39 UTC
ff71425 Fix resetting TimestampAdjuster with DO_NOT_OFFSET Prior to this change, an initalized TimestampAdjuster that's then reset with DO_NOT_OFFSET would incorrectly continue to apply the offset. Also add a test case for this issue, and for some other simple use cases. #minor-release PiperOrigin-RevId: 388182645 04 August 2021, 17:55:25 UTC
a9fdade Remove FfmpegVideoRenderer from 2.15.0 release 02 August 2021, 15:35:43 UTC
bbff5f0 Assign missing error codes in UdpDataSource PiperOrigin-RevId: 387794965 02 August 2021, 10:00:34 UTC
0bf40f8 Fix some ErrorCode assigning cases. DefaultHttpDataSource and OkHttpDataSource can share the same error code assigning logic. Fixes CronetDataSource's handling of closed connection. PiperOrigin-RevId: 387791679 02 August 2021, 09:59:30 UTC
df49f90 Simplify the error code handling. PiperOrigin-RevId: 387786273 02 August 2021, 09:58:11 UTC
f19a367 Assign ERROR_CODE_IO_FILE_NOT_FOUND for AssetDataSource PiperOrigin-RevId: 387777480 02 August 2021, 09:56:51 UTC
1bad403 Add fallback case for provisioning errors PiperOrigin-RevId: 387772641 02 August 2021, 09:55:36 UTC
c45d547 Simplify FileDataSource exception management And change one IO_UNSPECIFIED for a ERROR_CODE_FAILED_RUNTIME_CHECK. PiperOrigin-RevId: 387772253 02 August 2021, 09:54:20 UTC
e65bcef Reorder DataSourceException constructors and accept nullable parameters This CL doesn't introduce functional changes. PiperOrigin-RevId: 387613057 29 July 2021, 20:12:30 UTC
337d5aa 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. PiperOrigin-RevId: 387367509 29 July 2021, 20:09:30 UTC
5bc1c48 Assign CronetDataSource error codes PiperOrigin-RevId: 387301144 29 July 2021, 20:08:02 UTC
9c27cfc 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 28 July 2021, 08:15:29 UTC
41fe5aa Throw IllegalStateException from Util.gzip() instead of AssertionError The documentation on ByteArrayOutputStream and GZIPOutputStream isn't completely clear that an IOException will *never* happen, so AssertionError seems a bit strong - but it seems very unlikely, so we just use IllegalStateException instead. #minor-release PiperOrigin-RevId: 387169297 28 July 2021, 08:14:09 UTC
1aa76b5 Rename error code IO_BAD_HTTP_REQUEST to IO_INVALID_HTTP_CONTENT_TYPE In order to avoid confusion with HTTP 400 Bad request. PiperOrigin-RevId: 387145057 27 July 2021, 17:57:50 UTC
0df62a4 Add ERROR_CODE_FAILED_RUNTIME_CHECK for failed checks PiperOrigin-RevId: 387143625 27 July 2021, 17:56:25 UTC
f9d9420 Do not use index access with CopyOnWriteArrayList PiperOrigin-RevId: 387143449 27 July 2021, 17:54:54 UTC
7941b87 Merge pull request #9219 from DolbyLaboratories:dev-v2-eac3-codec-comment PiperOrigin-RevId: 387090075 27 July 2021, 17:53:18 UTC
d497541 Remove calls to initCause In favor of setting the cause in the constructor, which allows some code simplifications. PiperOrigin-RevId: 387062636 27 July 2021, 11:30:19 UTC
f53f44c Move NetworkTypeObserver 5G-NSA config to separate Config class PiperOrigin-RevId: 386970718 27 July 2021, 11:28:50 UTC
9e615ce Update dev guide to use non-deprecated factory #minor-release PiperOrigin-RevId: 386966219 27 July 2021, 11:27:23 UTC
cdf26a0 Remove error code inference in DataSourceException. The inference is used when nesting DataSourceExceptions. It is removed because nesting does not add additional value in surfacing the exceptions, and it is better to assign an error code at the throw site (in the "leaf" or the bottom most data source). PiperOrigin-RevId: 386919118 27 July 2021, 11:26:07 UTC
873e83c Fix `@see` javadoc syntax Doclava outputs an error when handling the javadoc where the `@see` clause is an anchor but also has other content. PiperOrigin-RevId: 386875722 27 July 2021, 11:24:44 UTC
3f9093c Add BaseUrlExlusionList and use it to select base URLs Issues: #771 and #7654 PiperOrigin-RevId: 386850707 27 July 2021, 11:23:34 UTC
c6e860b Fix 1 ErrorProneStyle finding: * @Flags is not a TYPE_USE annotation, so should appear before any modifiers and after Javadocs. (see go/java-style#s4.8.5-annotations) This CL looks good? Just LGTM and Approve it! This CL doesn’t look good? This is what you can do: * Suggest a fix on the CL (go/how-to-suggest-fix). * Revert this CL, by replying "REVERT: <provide reason>" * File a bug under go/error-prone-bug for category ErrorProneStyle if the change looks generally problematic. * Revert this CL and not get a CL that cleans up these paths in the future by replying "BLOCKLIST: <provide reason>". This is not reversible! We recommend to opt out the respective paths in your CL Robot configuration instead: go/clrobot-opt-out. This CL was generated by CL Robot - a tool that cleans up code findings (go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/java/com/google/android/libraries/media/METADATA which is reachable following include_presubmits from //depot/google3/third_party/java_src/android_libs/media/METADATA. Anything wrong with the signup? File a bug at go/clrobot-bug. #codehealth PiperOrigin-RevId: 386849198 27 July 2021, 11:22:08 UTC
4c97b76 Add exoplayer.dev page for network stack integration PiperOrigin-RevId: 386841818 27 July 2021, 11:20:43 UTC
f9162c0 Merge pull request #9207 from dlafayet:ruby-position PiperOrigin-RevId: 386836747 27 July 2021, 11:19:29 UTC
3512755 Exclude failing playlist before the HlsMediaPeriod has been prepared PiperOrigin-RevId: 386521255 27 July 2021, 11:18:16 UTC
33fa987 Assign ERROR_CODE_IO_UNSPECIFIED to unclassified IOExceptions The reason this was not an IO error code is that before other IOExceptions were classified, this catch would grab non-IO error codes, like ParserException. Now that we are getting closer to the final state, we can assume IOExceptions are ok to classify as IO error codes (unlike, for example, ParserExceptions or DrmSessionExceptions). PiperOrigin-RevId: 386496752 27 July 2021, 11:17:00 UTC
3488c04 Refine LoadErrorHandlingPolicy Javadoc PiperOrigin-RevId: 386453305 27 July 2021, 11:15:24 UTC
2ee6d6d Make getFallbackSelection nullable to indicate disabling of exclusion PiperOrigin-RevId: 386442542 27 July 2021, 11:14:04 UTC
cae3091 Rollback of https://github.com/google/ExoPlayer/commit/4c10d2bd4c046ede62dd47c89cab127483c17cdc *** 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 23 July 2021, 13:14:31 UTC
8e29e76 Merge pull request #9163 from ProtoScott:feature/dtsx_codec_updates PiperOrigin-RevId: 386428758 23 July 2021, 13:12:29 UTC
72cf9c3 Deprecate ControlDispatcher and DefaultControlDispatcher PiperOrigin-RevId: 386401066 23 July 2021, 13:11:00 UTC
d6c721f Move DRM exception classification method to public API PiperOrigin-RevId: 386232697 23 July 2021, 13:09:29 UTC
b33496a Deprecate ControlDispatcher in MediaSessionConnector PiperOrigin-RevId: 386227630 23 July 2021, 13:07:55 UTC
13ff72d Use RTSP header names as defined in the spec. Using all lower case RTSP headers is perfectly valid, as the spec mandates case insensitively. However, some RTSP servers do not implement the RTSP spec closely and does not recognize the lower case headers. This change aims at using the header names as defined in the RTSP spec to maximize compatibility. Issue: #9182 PiperOrigin-RevId: 386224566 23 July 2021, 13:05:50 UTC
5c95a59 Update E-AC3-JOC Codec String Name and Comment 23 July 2021, 04:00:22 UTC
08d8141 Merge pull request #22 from google/dev-v2 Merge from Google dev-v2 branch 23 July 2021, 03:38:52 UTC
e2f1285 Document getAvailableCommands in BasePlayer PiperOrigin-RevId: 386207381 22 July 2021, 12:49:21 UTC
ab416f4 Release ownedSurface before stopping the player on timeout PiperOrigin-RevId: 386206960 22 July 2021, 12:48:06 UTC
fe5a7fc Remove trailing whitespace PiperOrigin-RevId: 386194874 22 July 2021, 11:07:38 UTC
d9ad91d Adding detail in release notes about PendingIntent PiperOrigin-RevId: 386194496 22 July 2021, 11:06:23 UTC
90113ce Deprecate ControlDispatcher in media2 PiperOrigin-RevId: 386185285 22 July 2021, 11:05:09 UTC
b69c06a Add methods to set/get the seek back/forward increments in test player PiperOrigin-RevId: 386177945 22 July 2021, 11:03:51 UTC
c080b44 Merge branch 'release-v2' into dev-v2 21 July 2021, 18:08:23 UTC
80332f7 Merge pull request #9212 from google/dev-v2-r2.14.2 r2.14.2 21 July 2021, 18:01:45 UTC
d168bee Cleanup some RTSP documentation #minor-release PiperOrigin-RevId: 386048024 21 July 2021, 17:59:56 UTC
d3125d0 Cleanup some RTSP documentation #minor-release PiperOrigin-RevId: 386048024 21 July 2021, 17:58:47 UTC
537899d 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 21 July 2021, 14:48:23 UTC
c65b3d5 Bump version to 2.14.2 and tidy release notes PiperOrigin-RevId: 385996618 21 July 2021, 14:48:18 UTC
5b9c199 Add a note for requesting format support. PiperOrigin-RevId: 385995740 21 July 2021, 14:46:11 UTC
368af49 Remove Big Buck Bunny FLV asset from Demo app media.exolist.json This URL no longer resolves. #minor-release Issue: #9205 PiperOrigin-RevId: 385772688 21 July 2021, 14:45:55 UTC
6820b48 Fix RTSP link PiperOrigin-RevId: 385736588 21 July 2021, 14:45:18 UTC
a95e66d 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 21 July 2021, 13:51:49 UTC
1466c75 Bump version to 2.14.2 and tidy release notes #minor-release PiperOrigin-RevId: 385996618 21 July 2021, 13:50:26 UTC
b77175d Add a note for requesting format support. PiperOrigin-RevId: 385995740 21 July 2021, 13:49:15 UTC
6f50426 Merge the handling of FileDataSourceException and DataSourceException. FileDataSourceException subclasses DataSourceException and can be handled in the same fashion. PiperOrigin-RevId: 385983103 21 July 2021, 13:47:59 UTC
e4c9078 Infer error code in network-based DataSourceException. In some DataSources, it is not easy to assign an error code at the throw site. For example, CronetDataSource.readInternal() throws SocketTimeoutException on L1033, and is caught at L754 as IOException and is thrown. We need the logic to assign error code for the actual type of the error cause. While we can certainly do in individual DataSources, IMO there's value in making this logic generic at a higher level (like what is in this CL). The catch and translation logic is borrowed from EPII:L646. PiperOrigin-RevId: 385789629 21 July 2021, 13:46:40 UTC
14e582b Remove ExoPlayer uses of ERROR_CODE_DRM_UNSPECIFIED PiperOrigin-RevId: 385783671 21 July 2021, 13:45:17 UTC
d47d1eb Deprecate static metadata getter and listener method. PiperOrigin-RevId: 385781004 21 July 2021, 13:44:00 UTC
fa9a452 Remove Big Buck Bunny FLV asset from Demo app media.exolist.json This URL no longer resolves. #minor-release Issue: #9205 PiperOrigin-RevId: 385772688 21 July 2021, 13:42:45 UTC
0b0277a Set StyledPlayerView/PlayerView artwork from MediaMetadata. PiperOrigin-RevId: 385763366 21 July 2021, 13:41:20 UTC
c157db6 Split MediaMetadataTest cases into PictureFrameTest and ApicFrameTest. PiperOrigin-RevId: 385758742 21 July 2021, 13:39:56 UTC
fde3075 Add an artworkDataType to MediaMetadata. This field is to be associated with the artworkData. PiperOrigin-RevId: 385757480 21 July 2021, 13:38:30 UTC
0fe504d Add a reference to issue 1611 in error codes' release notes #minor-release Issue: #1611 PiperOrigin-RevId: 385741535 21 July 2021, 13:37:05 UTC
6a5b380 Fix RTSP link PiperOrigin-RevId: 385736588 21 July 2021, 13:35:35 UTC
27576cf Fix bug where rubyPosition in text node is not applied Also fix bug where rubyPosition in ruby container style is not applied 20 July 2021, 16:14:59 UTC
f8278da Add flag to SinglePeriodTimeline to suppress projection Issue: #9037 #minor-release PiperOrigin-RevId: 385630065 20 July 2021, 08:18:16 UTC
e01838e Fix Metadata.Entry link PiperOrigin-RevId: 385595264 20 July 2021, 08:18:16 UTC
dbebd27 Avoid DefaultDrmSessionManager releasing too many session references Before this fix, if DefaultDrmSessionManager.release() was called while there was at least one 'external' session reference still active (i.e. session.referenceCount > 1) then the manager will release it's reference immediately but when the session's reference count subsequently drops to 1 (due to external references being released) the manager will schedule a task to release its internal reference *again*. This change fixes the problem by only scheduling the timed release if the manager is unreleased. This ensures that the internal references are only released once. Issue: #9193 PiperOrigin-RevId: 385580741 20 July 2021, 08:18:16 UTC
0ae71e2 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 20 July 2021, 08:18:16 UTC
9cd6b50 Check for TS synchronization before parsing packet from random position #minor-release Issue: #9100 PiperOrigin-RevId: 384962258 20 July 2021, 08:18:16 UTC
d4c62f3 Handle absolute URI in RtspMediaTrack. Issue: #9183 RFC2326 Section C.1.1 specifies that the URI to identify a track can be either absolute (like rtsp://example.com/path) or relative (like "path"). Currently we don't handle absolute URI, and this CL is to add the support. Note though, we don't currently use the Content-Base or Content-Location headers for the session URI. PiperOrigin-RevId: 384649818 20 July 2021, 08:18:16 UTC
0f3818e Avoid IncorrectContextUseViolation on Android 11 Applications may need to pass a non-visual context when creating a DefaultTrackSelector (e.g., because they're audio-only or are creating the selector in a background service). Obtaining the default display via DisplayManager avoids the strict mode violation that occurs when retrieving it via WindowManager. #minor-release PiperOrigin-RevId: 384487363 20 July 2021, 08:18:16 UTC
a47eb8a Explicitly override all non-deprecated methods in `Player.Listener` Most of the super-interfaces are deprecated, but the intention is that only the types are deprecated and the methods themselves shouldn't be. In order to reflect this in javadoc we override all the methods in `Player.Listener` in order to 'cancel' the deprecation. This change deliberately doesn't override methods that are explicitly deprecated with documented replacements (like `Player.EventListener#onPlayerStateChanged`) - these should contine to be marked as deprecated in javadoc. PiperOrigin-RevId: 384253725 20 July 2021, 08:17:58 UTC
3f5dbf2 Add flag to SinglePeriodTimeline to suppress projection Issue: #9037 #minor-release PiperOrigin-RevId: 385630065 20 July 2021, 07:58:01 UTC
40993f4 Fix Metadata.Entry link PiperOrigin-RevId: 385595264 20 July 2021, 07:56:43 UTC
42da46c Fix release notes duplication introduced by https://github.com/google/ExoPlayer/commit/22ab14844ba7deedb6f7b2823fa315e6febf7ac2 PiperOrigin-RevId: 385582191 20 July 2021, 07:55:22 UTC
22ab148 Avoid DefaultDrmSessionManager releasing too many session references Before this fix, if DefaultDrmSessionManager.release() was called while there was at least one 'external' session reference still active (i.e. session.referenceCount > 1) then the manager will release it's reference immediately but when the session's reference count subsequently drops to 1 (due to external references being released) the manager will schedule a task to release its internal reference *again*. This change fixes the problem by only scheduling the timed release if the manager is unreleased. This ensures that the internal references are only released once. Issue: #9193 #minor-release PiperOrigin-RevId: 385580741 20 July 2021, 07:54:04 UTC
135eb3f Split some MediaMetadataTest cases into TextInformationFrameTest. PiperOrigin-RevId: 385562351 20 July 2021, 07:52:38 UTC
5bc080f Fix diagram name typo PiperOrigin-RevId: 385561505 20 July 2021, 07:51:12 UTC
9cba981 Document that apps must depend on a consistent module version PiperOrigin-RevId: 385522972 20 July 2021, 07:48:36 UTC
fa1bb32 Remove deprecated `PlaybackPreparer` Also update release note to account for upcoming ControlDispatcher removal. PiperOrigin-RevId: 385520701 20 July 2021, 07:47:26 UTC
30e65ac Deprecate ControlDispatcher in Leanback library PiperOrigin-RevId: 385503851 20 July 2021, 07:44:47 UTC
back to top