androidx / media

Jetpack Media3 support libraries for media use cases, including ExoPlayer, an extensible media player for Android
Apache License 2.0
1.34k stars 315 forks source link

[Merge pull request] Add support for SSA MarginL, MarginR, MarginV #1482

Closed sand-bit closed 6 days ago

sand-bit commented 1 week ago

Use case description

Better SSA/ASS subtitle formatting support. This is an area where ExoPlayer/Media3 has lagged behind VLC. There was this issue tracker for SSA format support: https://github.com/google/ExoPlayer/issues/8435#issuecomment-762449001 VLC achieves SSA rendering via https://github.com/libass/libass however because it was written in C, there was reluctance to use it.

A pull request has been sitting in the ExoPlayer report without being merged: https://github.com/google/ExoPlayer/pull/10169

Proposed solution

Merge https://github.com/google/ExoPlayer/pull/10169 and further improve SSA styling support using libass as reference and complete the support matrix here: https://github.com/google/ExoPlayer/issues/8435#issuecomment-762449001

Alternatives considered

Use libass like VLC

icbaker commented 6 days ago

We can't merge google/ExoPlayer#10169 in its current form because the ExoPlayer GitHub project is deprecated and no longer updated.

When I tried merging it back in 2022 I'm afraid it became too complex and I didn't have the capacity to resolve all the open questions.

If someone would like to re-open a PR in this project with the open questions on https://github.com/google/ExoPlayer/pull/10169 resolved then we can take another look.

I'm going to close this issue as a duplicate of https://github.com/google/ExoPlayer/issues/8435 since it has more info.

I'm afraid we continue to not consider using native code for handling user-generated content except where performance concerns preclude this. This adds technical complexity to our build process, and also introduces security risks due to lack of memory safety in C(++).