Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Issue 1871383003: media: Implement zero-copy video playback for ffmpeg.

Created:
4 years, 8 months ago by dshwang
Modified:
4 years, 8 months ago
CC:
chromium-reviews, feature-media-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

media: Implement zero-copy video playback for ffmpeg. Current zero-copy video playback implementation is actually "one-copy video playback". The final VideoFrame is produced by following pipeline. 1. FFmpeg decoder produces a VideoFrame. 2. GpuMemoryBufferVideoFramePool copies the software VideoFrame to hardware VideoFrame backed by GpuMemoryBuffer. 3. CC composites the mailbox belonging to hardware VideoFrame. This CL gets rid of #2 step. FFmpegVideoDecoder will decode video frame directly on hardware VideoFrame backed by GpuMemoryBuffer. This CL supports only I420, YV12 and YV12A. TODO: support more YUV planes. Dependency: 1. https://codereview.chromium.org/1874733002/ 2. https://codereview.chromium.org/1869303004/ BUG=601788, 590358

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+261 lines, -46 lines) Patch
M media/BUILD.gn View 1 chunk +2 lines, -0 lines 0 comments Download
M media/filters/ffmpeg_video_decoder.h View 3 chunks +5 lines, -2 lines 0 comments Download
M media/filters/ffmpeg_video_decoder.cc View 6 chunks +32 lines, -26 lines 0 comments Download
M media/media.gyp View 1 chunk +2 lines, -0 lines 0 comments Download
M media/renderers/default_renderer_factory.cc View 2 chunks +8 lines, -2 lines 0 comments Download
M media/video/gpu_memory_buffer_video_frame_pool.h View 1 chunk +9 lines, -0 lines 0 comments Download
M media/video/gpu_memory_buffer_video_frame_pool.cc View 4 chunks +42 lines, -16 lines 0 comments Download
A media/video/hybrid_video_frame_pool.h View 1 chunk +40 lines, -0 lines 0 comments Download
A media/video/hybrid_video_frame_pool.cc View 1 chunk +121 lines, -0 lines 0 comments Download

Messages

Total messages: 4 (3 generated)
dshwang
4 years, 8 months ago (2016-04-11 11:42:23 UTC) #3
I extract ffmpeg change from https://codereview.chromium.org/1869303004/
It's because DaleCurtis	explained ffmpeg could read GMBs even after VideoFrame
is issued to compositor.

BTW, even if it's true, ChromeOS on Intel Core is fine, because last level cache
makes sure coherency between GPU and CPU without any lock.
So I think we can enable it on at least ChromeOS on Intel Core.

Powered by Google App Engine
This is Rietveld 408576698