androidx / androidx/media

Add a way to enable decoder fallback in CompositionPlayer

Open
#2,028 7 comments 0 reactions 1 assignee View on GitHub

@kim-vde is already working on this.

Since Jan 8, 2025.

enhancement preview question
Dominant language
Java
Stars
3k
Forks
955
Avg merge
12d 14h
Merged PRs (30d)
2

Description

I'm working on CompositionPlayer could you provide me something regarding to Fallback rendererFactory,
because before implementing this I use Playlist or Mergers, there's multiple formats to be played, and this fallback == true, help me to get rid of many exceptions.

Currently CompositionPlayer Builder allowing GraphRenderFactory, I couldn't find someway to add fallback renderer factory to be added through Builder, and getting certain exceptions over input files some times are playing and some times throwing exception.

Could you provide me solution to add this to CompositionPlayer.

 ExoPlayer.Builder(context).setTrackSelector(DefaultTrackSelector(context)).setRenderersFactory(
                DefaultRenderersFactory(context).setEnableDecoderFallback(true)
            ).build()

Exception needs to be resolved:
Exception:1.

 
androidx.media3.common.PlaybackException: Error processing video frames at androidx.media3.transformer.CompositionPlayer.maybeUpdatePlaybackError(CompositionPlayer.java:915) at androidx.media3.transformer.CompositionPlayer.lambda$onError$1$androidx-media3-transformer-CompositionPlayer(CompositionPlayer.java:400)    at androidx.media3.transformer.CompositionPlayer$$ExternalSyntheticLambda0.run(Unknown Source:4)
   at android.os.Handler.handleCallback(Handler.java:958)
   at android.os.Handler.dispatchMessage(Handler.java:99)`

Exception:2.
[exoplayer2.ParserException: Invalid NAL length when playing .MP4 file](https://github.com/google/ExoPlayer/issues/8268#top)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.