google / google/ExoPlayer

SurfaceView.updateSurface causes the thread check to fail if the ExoPlayer instance is managed from a thread other than main

Open
#10,880 4 comments 0 reactions 1 assignee Claimed by @tianyif View on GitHub
enhancement question
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

### ExoPlayer Version

2.14.2

### Devices that reproduce the issue

All.

### Devices that do not reproduce the issue

None.

### Reproducible in the demo app?

No

### Reproduction steps

1. Checkout MWE [here](https://github.com/stoyicker/mwe-exoplayer-surfaceviewwrongthread/tree/1ef3c119bf460485c3b2e884157c21d240e7a476).
2. Run the app.

### Expected result

The video plays successfully.

### Actual result

The video visuals fail to render. See longs for "wrong thread" issue and how it traces to SurfaceView.

Note that it seems to be a slightly different form https://github.com/google/ExoPlayer/issues/9005

It is a strong requirement for me to use a custom thread as it has to use a specific ThreadGroup and be confined to certain parts of the codebase.

I've opened it as a bug, but I'm not even sure it is - is there an intended way to work with this? If so, what is it?

### Media

https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4

### Bug Report

- [X] You will email the zip file produced by `adb bugreport` to dev.exoplayer@gmail.com after filing this issue.

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.