google / google/ExoPlayer

[question] how to configure PlayerView's surface type in such a way that it can play both av1 and non-av1 videos

Open
#9,535 2 comments 0 reactions 1 assignee Claimed by @andrewlewis View on GitHub
enhancement low priority
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

#### versions used in tests:

* ExoPlayer r2.14.2
* `av1` extension compiled on 2021-05-22

#### observed behavior:

* using `SimpleExoPlayer`
- with:
* ``
* `ConcatenatingMediaSource`
* `av1` extension, using: `DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON`
- when:
* `ConcatenatingMediaSource` playlist contains:
1. any video format that doesn't require the `av1` extension
2. any video format that _does_ require the `av1` extension
3. any video format that doesn't require the `av1` extension
- behavior:
* 1st video plays in `SurfaceView`
* 2nd video plays in [`ANativeWindow`](https://github.com/google/ExoPlayer/tree/release-v2/extensions/av1#rendering-options)
* 3rd video does not play
- timeline shows length of video
- playback cannot begin

* using `SimpleExoPlayer`
- with:
* ``
* `ConcatenatingMediaSource`
* `av1` extension, using: `DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON`
- when:
* `ConcatenatingMediaSource` playlist contains:
1. any video format that doesn't require the `av1` extension
2. any video format that _does_ require the `av1` extension
3. any video format that doesn't require the `av1` extension
- behavior:
* 1st video does not render any visible video in `VideoDecoderGLSurfaceView`
- playback occurs with audio and subtitles
- screen is black
* 2nd video plays in [`VideoDecoderGLSurfaceView`](https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/ui/PlayerView.html#getVideoSurfaceView())
* 3rd video does not render any visible video in `VideoDecoderGLSurfaceView`
- playback occurs with audio and subtitles
- screen is black

* `VideoDecoderGLSurfaceView` seems to:
- work better than `ANativeWindow` with the `av1` extension
- not render any video when no extension is required

#### question:

* what is the suggested approach for being able to successfully play the aforementioned `ConcatenatingMediaSource` playlist?
- preferably, using:
* `SurfaceView` for all video formats that don't require the `av1` extension
* `VideoDecoderGLSurfaceView` for video formats that do require the `av1` extension

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.