media/chromeos/VDPipeline: Make FrameResourceConverter output VideoFrames At the end of VideoDecoderPipeline a VideoFrame needs to be produced. This was happening in OnFrameConverted. However, all implementations of FrameResourceConverter were producing a VideoFrameResource, which were being unwrapped in OnFrameConverted. This changes FrameResourceConverter to output VideoFrames instead of VideoFrameResources. VideoDecoderPipeline::OnFrameConverted() now accepts a VideoFrame. The VideoFrame conversion code in OnFrameConverted() has been moved into a new FrameResourceConverter class, DefaultFrameConverter. DefaultFrameConverter is used by VideoDecoderPipeline when a client does not specify a converter. It uses the built-in FrameResource methods to convert a FrameResource to a VideoFrame. VideoDecoderPipeline also drops its support of NULL |frame_converter_| since it is guaranteed to be set. UsesGetOriginalFrameCB() was added to FrameResourceConverter as a way for VideoDecoderPipeline to determine whether or not it needs to use set_get_original_frame_cb(). This fixes unit tests where the frame pool is expected to be a PlatformVideoFramePool. Bug: b:332382416 Change-Id: Ic78869ae287fe46654bb7d7fb046d494ed404fd5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5632235 Commit-Queue: Nathan Hebert <nhebert@chromium.org> Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org> Cr-Commit-Position: refs/heads/main@{#1319549}
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.