diff --git a/README.md b/README.md
index 3933f0bc18..b838068459 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer
#
+# ExoPlayer
ExoPlayer is an application level media player for Android. It provides an
alternative to Android’s MediaPlayer API for playing audio and video both
@@ -7,7 +7,7 @@ supported by Android’s MediaPlayer API, including DASH and SmoothStreaming
adaptive playbacks. Unlike the MediaPlayer API, ExoPlayer is easy to customize
and extend, and can be updated through Play Store application updates.
-## Documentation ##
+## Documentation
* The [developer guide][] provides a wealth of information.
* The [class reference][] documents ExoPlayer classes.
@@ -20,7 +20,7 @@ and extend, and can be updated through Play Store application updates.
[release notes]: https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md
[developer blog]: https://medium.com/google-exoplayer
-## Using ExoPlayer ##
+## Using ExoPlayer
ExoPlayer modules can be obtained from [the Google Maven repository][]. It's
also possible to clone the repository and depend on the modules locally.
@@ -29,7 +29,7 @@ also possible to clone the repository and depend on the modules locally.
### From the Google Maven repository
-#### 1. Add ExoPlayer module dependencies ####
+#### 1. Add ExoPlayer module dependencies
The easiest way to get started using ExoPlayer is to add it as a gradle
dependency in the `build.gradle` file of your app module. The following will add
@@ -77,7 +77,7 @@ found on the [Google Maven ExoPlayer page][].
[extensions directory]: https://github.com/google/ExoPlayer/tree/release-v2/extensions/
[Google Maven ExoPlayer page]: https://maven.google.com/web/index.html#com.google.android.exoplayer
-#### 2. Turn on Java 8 support ####
+#### 2. Turn on Java 8 support
If not enabled already, you also need to turn on Java 8 support in all
`build.gradle` files depending on ExoPlayer, by adding the following to the
@@ -89,13 +89,13 @@ compileOptions {
}
```
-#### 3. Enable multidex ####
+#### 3. Enable multidex
If your Gradle `minSdkVersion` is 20 or lower, you should
[enable multidex](https://developer.android.com/studio/build/multidex) in order
to prevent build errors.
-### Locally ###
+### Locally
Cloning the repository and depending on the modules locally is required when
using some ExoPlayer extension modules. It's also a suitable approach if you
@@ -128,15 +128,15 @@ implementation project(':exoplayer-library-dash')
implementation project(':exoplayer-library-ui')
```
-## Developing ExoPlayer ##
+## Developing ExoPlayer
-#### Project branches ####
+#### Project branches
* Development work happens on the `dev-v2` branch. Pull requests should
normally be made to this branch.
* The `release-v2` branch holds the most recent release.
-#### Using Android Studio ####
+#### Using Android Studio
To develop ExoPlayer using Android Studio, simply open the ExoPlayer project in
the root directory of the repository.
diff --git a/demos/cast/README.md b/demos/cast/README.md
index fd682433f9..84c4bae8d1 100644
--- a/demos/cast/README.md
+++ b/demos/cast/README.md
@@ -1,4 +1,4 @@
-# Cast demo application #
+# Cast demo application
This folder contains a demo application that showcases ExoPlayer integration
with Google Cast.
diff --git a/demos/main/README.md b/demos/main/README.md
index 00072c070b..0d9eb28cf9 100644
--- a/demos/main/README.md
+++ b/demos/main/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer main demo #
+# ExoPlayer main demo
This is the main ExoPlayer demo application. It uses ExoPlayer to play a number
of test streams. It can be used as a starting point or reference project when
diff --git a/docs/README.md b/docs/README.md
index bb169336b1..775776676a 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer website #
+# ExoPlayer website
The [ExoPlayer website](https://exoplayer.dev/) is hosted on
GitHub Pages, and is statically generated using Jekyll.
diff --git a/extensions/av1/README.md b/extensions/av1/README.md
index fad332a00e..1dd3ace119 100644
--- a/extensions/av1/README.md
+++ b/extensions/av1/README.md
@@ -1,9 +1,9 @@
-# ExoPlayer AV1 extension #
+# ExoPlayer AV1 extension
The AV1 extension provides `Libgav1VideoRenderer`, which uses libgav1 native
library to decode AV1 videos.
-## License note ##
+## License note
Please note that whilst the code in this repository is licensed under
[Apache 2.0][], using this extension also requires building and including one or
@@ -11,7 +11,7 @@ more external libraries as described below. These are licensed separately.
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
-## Build instructions (Linux, macOS) ##
+## Build instructions (Linux, macOS)
To use this extension you need to clone the ExoPlayer repository and depend on
its modules locally. Instructions for doing this can be found in ExoPlayer's
@@ -61,14 +61,14 @@ to configure and build libgav1 and the extension's [JNI wrapper library][].
[Ninja]: https://ninja-build.org
[JNI wrapper library]: https://github.com/google/ExoPlayer/blob/release-v2/extensions/av1/src/main/jni/gav1_jni.cc
-## Build instructions (Windows) ##
+## Build instructions (Windows)
We do not provide support for building this extension on Windows, however it
should be possible to follow the Linux instructions in [Windows PowerShell][].
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
-## Using the extension ##
+## Using the module
Once you've followed the instructions above to check out, build and depend on
the extension, the next step is to tell ExoPlayer to use `Libgav1VideoRenderer`.
@@ -96,7 +96,7 @@ a custom track selector the choice of `Renderer` is up to your implementation.
You need to make sure you are passing a `Libgav1VideoRenderer` to the player and
then you need to implement your own logic to use the renderer for a given track.
-## Using the extension in the demo application ##
+## Using the module in the demo application
To try out playback using the extension in the [demo application][], see
[enabling extension decoders][].
@@ -104,7 +104,7 @@ To try out playback using the extension in the [demo application][], see
[demo application]: https://exoplayer.dev/demo-application.html
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
-## Rendering options ##
+## Rendering options
There are two possibilities for rendering the output `Libgav1VideoRenderer`
gets from the libgav1 decoder:
@@ -129,7 +129,7 @@ gets from the libgav1 decoder:
Note: Although the default option uses `ANativeWindow`, based on our testing the
GL rendering mode has better performance, so should be preferred
-## Links ##
+## Links
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.av1.*`
belong to this module.
diff --git a/extensions/cast/README.md b/extensions/cast/README.md
index 1c0d7ac56f..a93ef38918 100644
--- a/extensions/cast/README.md
+++ b/extensions/cast/README.md
@@ -1,22 +1,22 @@
-# ExoPlayer Cast extension #
+# ExoPlayer Cast extension
-## Description ##
+## Description
The cast extension is a [Player][] implementation that controls playback on a
Cast receiver app.
[Player]: https://exoplayer.dev/doc/reference/index.html?com/google/android/exoplayer2/Player.html
-## Getting the extension ##
+## Getting the module
-The easiest way to use the extension is to add it as a gradle dependency:
+The easiest way to get the module is to add it as a gradle dependency:
```gradle
implementation 'com.google.android.exoplayer:extension-cast:2.X.X'
```
-where `2.X.X` is the version, which must match the version of the ExoPlayer
-library being used.
+where `2.X.X` is the version, which must match the version of the other media
+modules being used.
Alternatively, you can clone the ExoPlayer repository and depend on the module
locally. Instructions for doing this can be found in ExoPlayer's
@@ -24,7 +24,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
-## Using the extension ##
+## Using the module
Create a `CastPlayer` and use it to integrate Cast into your app using
ExoPlayer's common `Player` interface.
diff --git a/extensions/cronet/README.md b/extensions/cronet/README.md
index 91248583f8..9d32be0c44 100644
--- a/extensions/cronet/README.md
+++ b/extensions/cronet/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer Cronet extension #
+# ExoPlayer Cronet extension
The Cronet extension is an [HttpDataSource][] implementation that uses
[Cronet][].
@@ -14,16 +14,16 @@ for most use cases.
[HttpDataSource]: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/upstream/HttpDataSource.html
[Cronet]: https://developer.android.com/guide/topics/connectivity/cronet
-## Getting the extension ##
+## Getting the module
-The easiest way to use the extension is to add it as a gradle dependency:
+The easiest way to get the module is to add it as a gradle dependency:
```gradle
implementation 'com.google.android.exoplayer:extension-cronet:2.X.X'
```
-where `2.X.X` is the version, which must match the version of the ExoPlayer
-library being used.
+where `2.X.X` is the version, which must match the version of the other media
+modules being used.
Alternatively, you can clone the ExoPlayer repository and depend on the module
locally. Instructions for doing this can be found in ExoPlayer's
@@ -31,7 +31,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
-## Using the extension ##
+## Using the module
ExoPlayer requests data through `DataSource` instances. These instances are
obtained from instances of `DataSource.Factory`, which are instantiated and
@@ -47,16 +47,16 @@ new DefaultDataSourceFactory(
/* baseDataSourceFactory= */ new CronetDataSource.Factory(...) );
```
-## Cronet implementations ##
+## Cronet implementations
To instantiate a `CronetDataSource.Factory` you'll need a `CronetEngine`. A
`CronetEngine` can be obtained from one of a number of Cronet implementations.
It's recommended that an application should only have a single `CronetEngine`
instance.
-### Available implementations ###
+### Available implementations
-#### Google Play Services ####
+#### Google Play Services
By default, ExoPlayer's Cronet extension depends on
`com.google.android.gms:play-services-cronet`, which loads an implementation of
@@ -72,7 +72,7 @@ includes one of the alternative Cronet implementations described below, you will
not be able to instantiate a `CronetEngine` in this case. Your application code
should handle this by falling back to use `DefaultHttpDataSource` instead.
-#### Cronet Embedded ####
+#### Cronet Embedded
Cronet Embedded bundles a full Cronet implementation directly into your
application. To use it, add an additional dependency on
@@ -84,7 +84,7 @@ use of Cronet Embedded may be appropriate if:
not widely available.
* You want to control the exact version of the Cronet implementation being used.
-#### Cronet Fallback ####
+#### Cronet Fallback
There's also a fallback implementation of Cronet, which uses Android's default
network stack under the hood. It can be used by adding a dependency on
@@ -98,7 +98,7 @@ you know when your application's `CronetEngine` has been obtained from the
fallback implementation. In this case, avoid using it with ExoPlayer and use
`DefaultHttpDataSource` instead.
-### CronetEngine instantiation ###
+### CronetEngine instantiation
Cronet's [Send a simple request][] page documents the simplest way of building a
`CronetEngine`, which is suitable if your application is only using the
@@ -121,7 +121,7 @@ still using it for other networking performed by your application.
[Send a simple request]: https://developer.android.com/guide/topics/connectivity/cronet/start
-## Links ##
+## Links
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.cronet.*`
belong to this module.
diff --git a/extensions/ffmpeg/README.md b/extensions/ffmpeg/README.md
index ad3481c4f6..11a178e203 100644
--- a/extensions/ffmpeg/README.md
+++ b/extensions/ffmpeg/README.md
@@ -1,9 +1,9 @@
-# ExoPlayer FFmpeg extension #
+# ExoPlayer FFmpeg extension
The FFmpeg extension provides `FfmpegAudioRenderer`, which uses FFmpeg for
decoding and can render audio encoded in a variety of formats.
-## License note ##
+## License note
Please note that whilst the code in this repository is licensed under
[Apache 2.0][], using this extension also requires building and including one or
@@ -11,7 +11,7 @@ more external libraries as described below. These are licensed separately.
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
-## Build instructions (Linux, macOS) ##
+## Build instructions (Linux, macOS)
To use this extension you need to clone the ExoPlayer repository and depend on
its modules locally. Instructions for doing this can be found in ExoPlayer's
@@ -77,14 +77,14 @@ cd "${FFMPEG_EXT_PATH}/jni" && \
"${FFMPEG_EXT_PATH}" "${NDK_PATH}" "${HOST_PLATFORM}" "${ENABLED_DECODERS[@]}"
```
-## Build instructions (Windows) ##
+## Build instructions (Windows)
We do not provide support for building this extension on Windows, however it
should be possible to follow the Linux instructions in [Windows PowerShell][].
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
-## Using the extension ##
+## Using the module
Once you've followed the instructions above to check out, build and depend on
the extension, the next step is to tell ExoPlayer to use `FfmpegAudioRenderer`.
@@ -116,7 +116,7 @@ then implement your own logic to use the renderer for a given track.
[#2781]: https://github.com/google/ExoPlayer/issues/2781
[Supported formats]: https://exoplayer.dev/supported-formats.html#ffmpeg-extension
-## Using the extension in the demo application ##
+## Using the module in the demo application
To try out playback using the extension in the [demo application][], see
[enabling extension decoders][].
@@ -124,7 +124,7 @@ To try out playback using the extension in the [demo application][], see
[demo application]: https://exoplayer.dev/demo-application.html
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
-## Links ##
+## Links
* [Troubleshooting using extensions][]
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.ffmpeg.*`
diff --git a/extensions/flac/README.md b/extensions/flac/README.md
index 8b58a3fc6b..ff7ab4f9e4 100644
--- a/extensions/flac/README.md
+++ b/extensions/flac/README.md
@@ -1,9 +1,9 @@
-# ExoPlayer Flac extension #
+# ExoPlayer Flac extension
The Flac extension provides `FlacExtractor` and `LibflacAudioRenderer`, which
use libFLAC (the Flac decoding library) to extract and decode FLAC audio.
-## License note ##
+## License note
Please note that whilst the code in this repository is licensed under
[Apache 2.0][], using this extension also requires building and including one or
@@ -11,7 +11,7 @@ more external libraries as described below. These are licensed separately.
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
-## Build instructions (Linux, macOS) ##
+## Build instructions (Linux, macOS)
To use this extension you need to clone the ExoPlayer repository and depend on
its modules locally. Instructions for doing this can be found in ExoPlayer's
@@ -53,27 +53,27 @@ ${NDK_PATH}/ndk-build APP_ABI=all -j4
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
[Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html
-## Build instructions (Windows) ##
+## Build instructions (Windows)
We do not provide support for building this extension on Windows, however it
should be possible to follow the Linux instructions in [Windows PowerShell][].
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
-## Using the extension ##
+## Using the module
Once you've followed the instructions above to check out, build and depend on
the extension, the next step is to tell ExoPlayer to use the extractor and/or
renderer.
-### Using `FlacExtractor` ###
+### Using `FlacExtractor`
`FlacExtractor` is used via `ProgressiveMediaSource`. If you're using
`DefaultExtractorsFactory`, `FlacExtractor` will automatically be used to read
`.flac` files. If you're not using `DefaultExtractorsFactory`, return a
`FlacExtractor` from your `ExtractorsFactory.createExtractors` implementation.
-### Using `LibflacAudioRenderer` ###
+### Using `LibflacAudioRenderer`
* If you're passing a `DefaultRenderersFactory` to `ExoPlayer.Builder`, you can
enable using the extension by setting the `extensionRendererMode` parameter of
@@ -96,7 +96,7 @@ a custom track selector the choice of `Renderer` is up to your implementation,
so you need to make sure you are passing an `LibflacAudioRenderer` to the
player, then implement your own logic to use the renderer for a given track.
-## Using the extension in the demo application ##
+## Using the module in the demo application
To try out playback using the extension in the [demo application][], see
[enabling extension decoders][].
@@ -104,7 +104,7 @@ To try out playback using the extension in the [demo application][], see
[demo application]: https://exoplayer.dev/demo-application.html
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
-## Links ##
+## Links
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.flac.*`
belong to this module.
diff --git a/extensions/ima/README.md b/extensions/ima/README.md
index 016f848c7a..d93fd8c1d2 100644
--- a/extensions/ima/README.md
+++ b/extensions/ima/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer IMA extension #
+# ExoPlayer IMA extension
The IMA extension is an [AdsLoader][] implementation wrapping the
[Interactive Media Ads SDK for Android][IMA]. You can use it to insert ads
@@ -7,16 +7,16 @@ alongside content.
[IMA]: https://developers.google.com/interactive-media-ads/docs/sdks/android/
[AdsLoader]: https://exoplayer.dev/doc/reference/index.html?com/google/android/exoplayer2/source/ads/AdsLoader.html
-## Getting the extension ##
+## Getting the module
-The easiest way to use the extension is to add it as a gradle dependency:
+The easiest way to get the module is to add it as a gradle dependency:
```gradle
implementation 'com.google.android.exoplayer:extension-ima:2.X.X'
```
-where `2.X.X` is the version, which must match the version of the ExoPlayer
-library being used.
+where `2.X.X` is the version, which must match the version of the other media
+modules being used.
Alternatively, you can clone the ExoPlayer repository and depend on the module
locally. Instructions for doing this can be found in ExoPlayer's
@@ -24,7 +24,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
-## Using the extension ##
+## Using the module
To use the extension, follow the instructions on the
[Ad insertion page](https://exoplayer.dev/ad-insertion.html#declarative-ad-support)
@@ -52,7 +52,7 @@ in the "IMA sample ad tags" section of the sample chooser. The demo app's
`PlayerActivity` also shows how to persist the `ImaAdsLoader` instance and the
player position when backgrounded during ad playback.
-## Links ##
+## Links
* [ExoPlayer documentation on ad insertion][]
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.ima.*`
diff --git a/extensions/leanback/README.md b/extensions/leanback/README.md
index b6eb085247..bf777ea659 100644
--- a/extensions/leanback/README.md
+++ b/extensions/leanback/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer Leanback extension #
+# ExoPlayer Leanback extension
This [Leanback][] Extension provides a [PlayerAdapter][] implementation for
ExoPlayer.
@@ -6,16 +6,16 @@ ExoPlayer.
[PlayerAdapter]: https://developer.android.com/reference/android/support/v17/leanback/media/PlayerAdapter.html
[Leanback]: https://developer.android.com/reference/android/support/v17/leanback/package-summary.html
-## Getting the extension ##
+## Getting the module
-The easiest way to use the extension is to add it as a gradle dependency:
+The easiest way to get the module is to add it as a gradle dependency:
```gradle
implementation 'com.google.android.exoplayer:extension-leanback:2.X.X'
```
-where `2.X.X` is the version, which must match the version of the ExoPlayer
-library being used.
+where `2.X.X` is the version, which must match the version of the other media
+modules being used.
Alternatively, you can clone the ExoPlayer repository and depend on the module
locally. Instructions for doing this can be found in ExoPlayer's
@@ -23,7 +23,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
-## Links ##
+## Links
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.leanback.*`
belong to this module.
diff --git a/extensions/media2/README.md b/extensions/media2/README.md
index 32ea864940..63b8f549ee 100644
--- a/extensions/media2/README.md
+++ b/extensions/media2/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer Media2 extension #
+# ExoPlayer Media2 extension
The Media2 extension provides builders for [SessionPlayer][] and [MediaSession.SessionCallback][] in
the [Media2 library][].
@@ -6,16 +6,16 @@ the [Media2 library][].
Compared to [MediaSessionConnector][] that uses [MediaSessionCompat][], this provides finer grained
control for incoming calls, so you can selectively allow/reject commands per controller.
-## Getting the extension ##
+## Getting the module
-The easiest way to use the extension is to add it as a gradle dependency:
+The easiest way to get the module is to add it as a gradle dependency:
```gradle
implementation 'com.google.android.exoplayer:extension-media2:2.X.X'
```
-where `2.X.X` is the version, which must match the version of the ExoPlayer
-library being used.
+where `2.X.X` is the version, which must match the version of the other media
+modules being used.
Alternatively, you can clone the ExoPlayer repository and depend on the module
locally. Instructions for doing this can be found in ExoPlayer's
@@ -23,20 +23,20 @@ locally. Instructions for doing this can be found in ExoPlayer's
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
-## Using the extension ##
+## Using the module
-### Using `SessionPlayerConnector` ###
+### Using `SessionPlayerConnector`
`SessionPlayerConnector` is a [SessionPlayer][] implementation wrapping a given `Player`.
You can use a [SessionPlayer][] instance to build a [MediaSession][], or to set the player
associated with a [VideoView][] or [MediaControlView][]
-### Using `SessionCallbackBuilder` ###
+### Using `SessionCallbackBuilder`
`SessionCallbackBuilder` lets you build a [MediaSession.SessionCallback][] instance given its
collaborators. You can use a [MediaSession.SessionCallback][] to build a [MediaSession][].
-## Links ##
+## Links
* [Javadoc][]: Classes matching
`com.google.android.exoplayer2.ext.media2.*` belong to this module.
diff --git a/extensions/mediasession/README.md b/extensions/mediasession/README.md
index 64b55a8036..9a2949b679 100644
--- a/extensions/mediasession/README.md
+++ b/extensions/mediasession/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer MediaSession extension #
+# ExoPlayer MediaSession extension
The MediaSession extension mediates between a Player (or ExoPlayer) instance
and a [MediaSession][]. It automatically retrieves and implements playback
@@ -7,16 +7,16 @@ behaviour can be extended to support other playback and custom actions.
[MediaSession]: https://developer.android.com/reference/android/support/v4/media/session/MediaSessionCompat.html
-## Getting the extension ##
+## Getting the module
-The easiest way to use the extension is to add it as a gradle dependency:
+The easiest way to get the module is to add it as a gradle dependency:
```gradle
implementation 'com.google.android.exoplayer:extension-mediasession:2.X.X'
```
-where `2.X.X` is the version, which must match the version of the ExoPlayer
-library being used.
+where `2.X.X` is the version, which must match the version of the other media
+modules being used.
Alternatively, you can clone the ExoPlayer repository and depend on the module
locally. Instructions for doing this can be found in ExoPlayer's
@@ -24,7 +24,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
-## Links ##
+## Links
* [Javadoc][]: Classes matching
`com.google.android.exoplayer2.ext.mediasession.*` belong to this module.
diff --git a/extensions/okhttp/README.md b/extensions/okhttp/README.md
index 2aad867e79..c5a250c255 100644
--- a/extensions/okhttp/README.md
+++ b/extensions/okhttp/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer OkHttp extension #
+# ExoPlayer OkHttp extension
The OkHttp extension is an [HttpDataSource][] implementation that uses Square's
[OkHttp][].
@@ -9,7 +9,7 @@ applications. It supports the HTTP and HTTP/2 protocols.
[HttpDataSource]: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/upstream/HttpDataSource.html
[OkHttp]: https://square.github.io/okhttp/
-## License note ##
+## License note
Please note that whilst the code in this repository is licensed under
[Apache 2.0][], using this extension requires depending on OkHttp, which is
@@ -17,16 +17,16 @@ licensed separately.
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
-## Getting the extension ##
+## Getting the module
-The easiest way to use the extension is to add it as a gradle dependency:
+The easiest way to get the module is to add it as a gradle dependency:
```gradle
implementation 'com.google.android.exoplayer:extension-okhttp:2.X.X'
```
-where `2.X.X` is the version, which must match the version of the ExoPlayer
-library being used.
+where `2.X.X` is the version, which must match the version of the other media
+modules being used.
Alternatively, you can clone the ExoPlayer repository and depend on the module
locally. Instructions for doing this can be found in ExoPlayer's
@@ -34,7 +34,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
-## Using the extension ##
+## Using the module
ExoPlayer requests data through `DataSource` instances. These instances are
obtained from instances of `DataSource.Factory`, which are instantiated and
@@ -50,7 +50,7 @@ new DefaultDataSourceFactory(
/* baseDataSourceFactory= */ new OkHttpDataSource.Factory(...));
```
-## Links ##
+## Links
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.okhttp.*`
belong to this module.
diff --git a/extensions/opus/README.md b/extensions/opus/README.md
index 29c4a46357..87078fe2a8 100644
--- a/extensions/opus/README.md
+++ b/extensions/opus/README.md
@@ -1,9 +1,9 @@
-# ExoPlayer Opus extension #
+# ExoPlayer Opus extension
The Opus extension provides `LibopusAudioRenderer`, which uses libopus (the Opus
decoding library) to decode Opus audio.
-## License note ##
+## License note
Please note that whilst the code in this repository is licensed under
[Apache 2.0][], using this extension also requires building and including one or
@@ -11,7 +11,7 @@ more external libraries as described below. These are licensed separately.
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
-## Build instructions (Linux, macOS) ##
+## Build instructions (Linux, macOS)
To use this extension you need to clone the ExoPlayer repository and depend on
its modules locally. Instructions for doing this can be found in ExoPlayer's
@@ -58,14 +58,14 @@ ${NDK_PATH}/ndk-build APP_ABI=all -j4
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
[Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html
-## Build instructions (Windows) ##
+## Build instructions (Windows)
We do not provide support for building this extension on Windows, however it
should be possible to follow the Linux instructions in [Windows PowerShell][].
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
-## Notes ##
+## Notes
* Every time there is a change to the libopus checkout:
* Arm assembly should be converted by running `convert_android_asm.sh`
@@ -73,7 +73,7 @@ should be possible to follow the Linux instructions in [Windows PowerShell][].
* If you want to use your own version of libopus, place it in
`${OPUS_EXT_PATH}/jni/libopus`.
-## Using the extension ##
+## Using the module
Once you've followed the instructions above to check out, build and depend on
the extension, the next step is to tell ExoPlayer to use `LibopusAudioRenderer`.
@@ -100,7 +100,7 @@ a custom track selector the choice of `Renderer` is up to your implementation,
so you need to make sure you are passing an `LibopusAudioRenderer` to the
player, then implement your own logic to use the renderer for a given track.
-## Using the extension in the demo application ##
+## Using the module in the demo application
To try out playback using the extension in the [demo application][], see
[enabling extension decoders][].
@@ -108,7 +108,7 @@ To try out playback using the extension in the [demo application][], see
[demo application]: https://exoplayer.dev/demo-application.html
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
-## Links ##
+## Links
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.opus.*`
belong to this module.
diff --git a/extensions/rtmp/README.md b/extensions/rtmp/README.md
index 99e9d25e8e..0d56ca81b6 100644
--- a/extensions/rtmp/README.md
+++ b/extensions/rtmp/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer RTMP extension #
+# ExoPlayer RTMP extension
The RTMP extension is a [DataSource][] implementation for playing [RTMP][]
streams using [LibRtmp Client for Android][].
@@ -7,7 +7,7 @@ streams using [LibRtmp Client for Android][].
[RTMP]: https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol
[LibRtmp Client for Android]: https://github.com/ant-media/LibRtmp-Client-for-Android
-## License note ##
+## License note
Please note that whilst the code in this repository is licensed under
[Apache 2.0][], using this extension requires depending on LibRtmp Client for
@@ -15,16 +15,16 @@ Android, which is licensed separately.
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
-## Getting the extension ##
+## Getting the module
-The easiest way to use the extension is to add it as a gradle dependency:
+The easiest way to get the module is to add it as a gradle dependency:
```gradle
implementation 'com.google.android.exoplayer:extension-rtmp:2.X.X'
```
-where `2.X.X` is the version, which must match the version of the ExoPlayer
-library being used.
+where `2.X.X` is the version, which must match the version of the other media
+modules being used.
Alternatively, you can clone the ExoPlayer repository and depend on the module
locally. Instructions for doing this can be found in ExoPlayer's
@@ -32,7 +32,7 @@ locally. Instructions for doing this can be found in ExoPlayer's
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
-## Using the extension ##
+## Using the module
ExoPlayer requests data through `DataSource` instances. These instances are
obtained from instances of `DataSource.Factory`, which are instantiated and
@@ -47,7 +47,7 @@ doesn't need to handle any other protocols, you can update any
`DataSource.Factory` instantiations in your application code to use
`RtmpDataSource.Factory` directly.
-## Links ##
+## Links
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.rtmp.*`
belong to this module.
diff --git a/extensions/vp9/README.md b/extensions/vp9/README.md
index 557e7e6d70..ad6d5ecf97 100644
--- a/extensions/vp9/README.md
+++ b/extensions/vp9/README.md
@@ -1,9 +1,9 @@
-# ExoPlayer VP9 extension #
+# ExoPlayer VP9 extension
The VP9 extension provides `LibvpxVideoRenderer`, which uses libvpx (the VPx
decoding library) to decode VP9 video.
-## License note ##
+## License note
Please note that whilst the code in this repository is licensed under
[Apache 2.0][], using this extension also requires building and including one or
@@ -11,7 +11,7 @@ more external libraries as described below. These are licensed separately.
[Apache 2.0]: https://github.com/google/ExoPlayer/blob/release-v2/LICENSE
-## Build instructions (Linux, macOS) ##
+## Build instructions (Linux, macOS)
To use this extension you need to clone the ExoPlayer repository and depend on
its modules locally. Instructions for doing this can be found in ExoPlayer's
@@ -65,14 +65,14 @@ ${NDK_PATH}/ndk-build APP_ABI=all -j4
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
[Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html
-## Build instructions (Windows) ##
+## Build instructions (Windows)
We do not provide support for building this extension on Windows, however it
should be possible to follow the Linux instructions in [Windows PowerShell][].
[Windows PowerShell]: https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell
-## Notes ##
+## Notes
* Every time there is a change to the libvpx checkout:
* Android config scripts should be re-generated by running
@@ -83,7 +83,7 @@ should be possible to follow the Linux instructions in [Windows PowerShell][].
`generate_libvpx_android_configs.sh` and the makefiles may need to be modified
to work with arbitrary versions of libvpx.
-## Using the extension ##
+## Using the module
Once you've followed the instructions above to check out, build and depend on
the extension, the next step is to tell ExoPlayer to use `LibvpxVideoRenderer`.
@@ -111,7 +111,7 @@ a custom track selector the choice of `Renderer` is up to your implementation,
so you need to make sure you are passing an `LibvpxVideoRenderer` to the
player, then implement your own logic to use the renderer for a given track.
-## Using the extension in the demo application ##
+## Using the module in the demo application
To try out playback using the extension in the [demo application][], see
[enabling extension decoders][].
@@ -119,7 +119,7 @@ To try out playback using the extension in the [demo application][], see
[demo application]: https://exoplayer.dev/demo-application.html
[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders
-## Rendering options ##
+## Rendering options
There are two possibilities for rendering the output `LibvpxVideoRenderer`
gets from the libvpx decoder:
@@ -144,7 +144,7 @@ gets from the libvpx decoder:
Note: Although the default option uses `ANativeWindow`, based on our testing the
GL rendering mode has better performance, so should be preferred.
-## Links ##
+## Links
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.vp9.*`
belong to this module.
diff --git a/extensions/workmanager/README.md b/extensions/workmanager/README.md
index bd2dbc71ad..4f00976d7e 100644
--- a/extensions/workmanager/README.md
+++ b/extensions/workmanager/README.md
@@ -4,16 +4,16 @@ This extension provides a Scheduler implementation which uses [WorkManager][].
[WorkManager]: https://developer.android.com/topic/libraries/architecture/workmanager.html
-## Getting the extension
+## Getting the module
-The easiest way to use the extension is to add it as a gradle dependency:
+The easiest way to get the module is to add it as a gradle dependency:
```gradle
implementation 'com.google.android.exoplayer:extension-workmanager:2.X.X'
```
-where `2.X.X` is the version, which must match the version of the ExoPlayer
-library being used.
+where `2.X.X` is the version, which must match the version of the other media
+modules being used.
Alternatively, you can clone the ExoPlayer repository and depend on the module
locally. Instructions for doing this can be found in ExoPlayer's
diff --git a/library/all/README.md b/library/all/README.md
index 43f942116e..f55879c671 100644
--- a/library/all/README.md
+++ b/library/all/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer full library #
+# ExoPlayer full library
An empty module that depends on all of the other library modules. Depending on
the full library is equivalent to depending on all of the other library modules
@@ -6,8 +6,8 @@ individually. See ExoPlayer's [top level README][] for more information.
[top level README]: https://github.com/google/ExoPlayer/blob/release-v2/README.md
-## Links ##
+## Links
-* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
+* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
[Javadoc]: https://exoplayer.dev/doc/reference/index.html
diff --git a/library/common/README.md b/library/common/README.md
index af7264bcad..9e78e273b6 100644
--- a/library/common/README.md
+++ b/library/common/README.md
@@ -1,10 +1,10 @@
-# ExoPlayer common library module #
+# ExoPlayer common library module
Common code used by other ExoPlayer modules.
-## Links ##
+## Links
-* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
+* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
[Javadoc]: https://exoplayer.dev/doc/reference/index.html
diff --git a/library/core/README.md b/library/core/README.md
index 7fa89dda8d..6275c98352 100644
--- a/library/core/README.md
+++ b/library/core/README.md
@@ -1,9 +1,9 @@
-# ExoPlayer core library module #
+# ExoPlayer core library module
The core of the ExoPlayer library.
-## Links ##
+## Links
-* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
+* [Javadoc][]: Note that this Javadoc is combined with that of other modules.
[Javadoc]: https://exoplayer.dev/doc/reference/index.html
diff --git a/library/dash/README.md b/library/dash/README.md
index 2ae77c41aa..b33e763e3b 100644
--- a/library/dash/README.md
+++ b/library/dash/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer DASH library module #
+# ExoPlayer DASH library module
Provides support for Dynamic Adaptive Streaming over HTTP (DASH) content.
@@ -16,7 +16,7 @@ For advanced playback use cases, applications can build `DashMediaSource`
instances and pass them directly to the player. For advanced download use cases,
`DashDownloader` can be used directly.
-## Links ##
+## Links
* [Developer Guide][].
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.source.dash.*`
diff --git a/library/hls/README.md b/library/hls/README.md
index d8b86e1832..f11bb4f94c 100644
--- a/library/hls/README.md
+++ b/library/hls/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer HLS library module #
+# ExoPlayer HLS library module
Provides support for HTTP Live Streaming (HLS) content.
@@ -16,7 +16,7 @@ For advanced playback use cases, applications can build `HlsMediaSource`
instances and pass them directly to the player. For advanced download use cases,
`HlsDownloader` can be used directly.
-## Links ##
+## Links
* [Developer Guide][].
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.source.hls.*` belong to
diff --git a/library/smoothstreaming/README.md b/library/smoothstreaming/README.md
index 2fab69c756..1400c6dc6e 100644
--- a/library/smoothstreaming/README.md
+++ b/library/smoothstreaming/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer SmoothStreaming library module #
+# ExoPlayer SmoothStreaming library module
Provides support for SmoothStreaming content.
@@ -17,7 +17,7 @@ For advanced playback use cases, applications can build `SsMediaSource`
instances and pass them directly to the player. For advanced download use cases,
`SsDownloader` can be used directly.
-## Links ##
+## Links
* [Developer Guide][].
* [Javadoc][]: Classes matching
diff --git a/library/transformer/README.md b/library/transformer/README.md
index 5de22fa583..6cba7c60a7 100644
--- a/library/transformer/README.md
+++ b/library/transformer/README.md
@@ -1,8 +1,8 @@
-# ExoPlayer transformer library module #
+# ExoPlayer transformer library module
Provides support for transforming media files.
-## Links ##
+## Links
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.transformer.*`
belong to this module.
diff --git a/library/ui/README.md b/library/ui/README.md
index 16136b3d94..21e13e1dc7 100644
--- a/library/ui/README.md
+++ b/library/ui/README.md
@@ -1,8 +1,8 @@
-# ExoPlayer UI library module #
+# ExoPlayer UI library module
Provides UI components and resources for use with ExoPlayer.
-## Links ##
+## Links
* [Developer Guide][].
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ui.*`
diff --git a/testdata/README.md b/testdata/README.md
index 911505926b..6ca8a8577e 100644
--- a/testdata/README.md
+++ b/testdata/README.md
@@ -1,4 +1,4 @@
-# ExoPlayer test data #
+# ExoPlayer test data
Provides sample data for ExoPlayer unit and instrumentation tests.
diff --git a/testutils/README.md b/testutils/README.md
index 61aa708066..3089e566e4 100644
--- a/testutils/README.md
+++ b/testutils/README.md
@@ -1,8 +1,8 @@
-# ExoPlayer test utils #
+# ExoPlayer test utils
Provides utility classes for ExoPlayer unit and instrumentation tests.
-## Links ##
+## Links
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.testutil` belong to this
module.