Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ExoPlaybackException when switching/releasing surfaceView #4134

Closed
PedroMT opened this issue Apr 16, 2018 · 3 comments
Closed

ExoPlaybackException when switching/releasing surfaceView #4134

PedroMT opened this issue Apr 16, 2018 · 3 comments
Assignees

Comments

@PedroMT
Copy link

PedroMT commented Apr 16, 2018

Issue description

ExoPlayer stop reproducing videos (fall into UNEXPECTED exception) when it tries to dynamically switch between surfaces and/or release/capture a new surface on Moto E (4) devices.
Most probably related to the issues: #3835, #4104, #3535.

I cloned the ExoPlayer locally (as per the README instructions) and tried to add the device to the workaround method "codecNeedsSetOutputSurfaceWorkaround()" as shown in the code bellow:

private static boolean codecNeedsSetOutputSurfaceWorkaround(String name) {
    ...
    return ...
        || (("ALE-L21".equals(Util.MODEL) // Huawei P8 Lite
                || "CAM-L21".equals(Util.MODEL)) // Huawei Y6II
            && "OMX.k3.video.decoder.avc".equals(name))
        || ("woods_f".equals(Util.DEVICE)); // Moto E (4), XT1763 (Brazil)
  }

And after testing in our dev environment it seems to have solved the problem, so I'm pretty sure it's related to the listed issues.

Reproduction steps

Try to switch between or release/capture surfaces on the specified device.
Also managed to reproduce in the demos by starting a video and backing to parent activity causing crash on surface release.

Link to test content

In this case it happened with any video streamed from links offered by the Vimeo API to our company's app.

Version of ExoPlayer being used

Tested on versions 2.6.x, 2.7.0 and 2.7.3.

Device(s) and version(s) of Android being used

Model: Moto E (4), Android 7.1.1, DEVICE/PRODUCT: "woods_f".
As of now no other device we tested or that has been using our app has encountered this problem.

@botaydotcom
Copy link
Contributor

@PedroMT:
Could you also provide the name of the decoder used in that device, so we can target this workaround more specifically. The name is provided as the name param for the codecNeedsSetOutputSurfaceWorkaround method.

@PedroMT
Copy link
Author

PedroMT commented May 14, 2018

@botaydotcom
Just checked, the decoder is: "OMX.MTK.VIDEO.DECODER.AVC".

@botaydotcom
Copy link
Contributor

This change will be pushed to the dev branch in the next few days.

andrewlewis pushed a commit that referenced this issue May 18, 2018
GitHub: #4134.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=196562078
@google google locked and limited conversation to collaborators Sep 27, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants