[Media] Fix video encoder crash This patch fixes a serious bug where an access error occurs due to attempting to dereference an invalid VpxVideoEncoder instance in the MediaVideoEncoderWrapper class. The error occurred because, when swapping out encoders due to a size change in `MediaVideoEncoderWrapper::ConstructEncoder`, the old encoder instance is inadvertently deleted on the MAIN thread instead of being posted to the VIDEO thread, so any decode tasks that refer to it become invalid. The solution is to stop using a DeleteSoon() and instead use the base::OnTaskRunnerDeleter deleter with the VIDEO cast environment task runner. Bug: 427251884 Change-Id: I98723cfb764c40b35a3157de7c6d694686631dcd Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6681751 Reviewed-by: Eugene Zemtsov <eugene@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org> Cr-Commit-Position: refs/heads/main@{#1479609}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.