media/gpu/linux: Make VideoDecoderPipeline delegate VD tasks to decoder thread.
Originally, VideoDecoderPipeline delegates VD tasks to the client thread. Each VD implementation then post the tasks to decoder thread. Then VD implementations post the callback back to the client thread when the task is done. In the future, ImageProcessor will also operate on the decoder thread. We will pass the task and output frames by: VDPipeline (client) -> VD (client -> decoder -> client) -> VDPipeline (client) -> IP (client -> decoder -> client) -> VDPipeline (client) -> Converter (client -> GPU -> client) -> VDPipeline (client) Total 6 thread hopping. This CL now posts the VD task on the decoder thread. We don't need to hop thread inside each VD implementation. With this CL, we could save 2 thread hopping. VDPipeline (client -> decoder) -> VD (decoder) -> VDPipeline (decoder) -> IP (decoder) -> VDPipeline (decoder) -> Converter (decoder -> GPU -> decoder) -> VDPipeline (decoder -> client) Total 4 thread hopping. BUG=chromium:998413 TEST=run video_decode_accelerator_tests on Eve and Kevin with dcheck_always_on = true Change-Id: I7367663258adfd0f46ddca25493faff4633ae034 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1777449 Commit-Queue: Chih-Yu Huang <akahuang@chromium.org> Reviewed-by:David Staessens <dstaessens@chromium.org> Reviewed-by:
Hirokazu Honda <hiroh@chromium.org> Reviewed-by:
Alexandre Courbot <acourbot@chromium.org> Cr-Commit-Position: refs/heads/master@{#707704}
Showing
This diff is collapsed.
Please register or sign in to comment