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

Issue 1318863003: Add accelerated VP9 decode infrastructure and an implementation for VA-API. (Closed)

Created:
5 years, 3 months ago by Pawel Osciak
Modified:
5 years, 3 months ago
CC:
chromium-reviews, posciak+watch_chromium.org, jam, mcasas+watch_chromium.org, feature-media-reviews_chromium.org, darin-cc_chromium.org, piman+watch_chromium.org, wjia+watch_chromium.org, fgalligan1
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add accelerated VP9 decode infrastructure and an implementation for VA-API. - Add a hardware/platform-independent VP9Decoder class and related infrastructure, implementing AcceleratedVideoDecoder interface. VP9Decoder performs the initial stages of the decode process, which are to be done on host/in software, such as stream parsing and reference frame management. - Add a VP9Accelerator interface, used by the VP9Decoder to offload the remaining stages of the decode process to hardware. VP9Accelerator implementations are platform-specific. - Add the first implementation of VP9Accelerator - VaapiVP9Accelerator - and integrate it with VaapiVideoDecodeAccelerator, for devices which provide hardware VP9 acceleration through VA-API. Hook it up to the new infrastructure and VP9Decoder. - Extend Vp9Parser to provide functionality required by VP9Decoder and VP9Accelerator, including superframe parsing, handling of loop filter and segmentation initialization, state persistence across frames and resetting when needed. Also add code calculating segmentation dequants and loop filter levels. - Update vp9_parser_unittest to the new Vp9Parser interface and flow. TEST=vp9_parser_unittest,vda_unittest,Chrome VP9 playback BUG=chrome-os-partner:41469, chrome-os-partner:41470, chromium:525331 TBR=dpranke@chromium.org Committed: https://crrev.com/e3cc0a661b8abfdc74f569940949bc1f336ece40 Cr-Commit-Position: refs/heads/master@{#349312}

Patch Set 1 #

Total comments: 35

Patch Set 2 : #

Total comments: 6

Patch Set 3 : #

Total comments: 8

Patch Set 4 : #

Total comments: 2

Patch Set 5 : #

Patch Set 6 : #

Total comments: 2

Patch Set 7 : #

Patch Set 8 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1102 lines, -159 lines) Patch
M content/common/BUILD.gn View 1 chunk +4 lines, -0 lines 0 comments Download
M content/common/gpu/media/vaapi_video_decode_accelerator.h View 2 chunks +2 lines, -0 lines 0 comments Download
M content/common/gpu/media/vaapi_video_decode_accelerator.cc View 1 2 3 4 12 chunks +227 lines, -13 lines 0 comments Download
M content/common/gpu/media/vaapi_wrapper.cc View 1 chunk +1 line, -0 lines 0 comments Download
A content/common/gpu/media/vp9_decoder.h View 1 2 3 4 5 6 7 1 chunk +130 lines, -0 lines 0 comments Download
A content/common/gpu/media/vp9_decoder.cc View 1 2 3 1 chunk +180 lines, -0 lines 0 comments Download
A content/common/gpu/media/vp9_picture.h View 1 chunk +35 lines, -0 lines 0 comments Download
A + content/common/gpu/media/vp9_picture.cc View 1 chunk +5 lines, -7 lines 0 comments Download
M content/common/sandbox_linux/bpf_gpu_policy_linux.cc View 1 2 3 4 5 1 chunk +4 lines, -0 lines 0 comments Download
M content/content_common.gypi View 1 chunk +4 lines, -0 lines 0 comments Download
M media/filters/vp9_parser.h View 1 2 3 4 5 6 10 chunks +122 lines, -52 lines 0 comments Download
M media/filters/vp9_parser.cc View 1 2 3 4 5 6 10 chunks +347 lines, -58 lines 0 comments Download
M media/filters/vp9_parser_unittest.cc View 5 chunks +41 lines, -29 lines 0 comments Download

Messages

Total messages: 42 (15 generated)
Pawel Osciak
ptal
5 years, 3 months ago (2015-08-31 05:00:05 UTC) #2
kcwu
(reviewed parser part only) https://codereview.chromium.org/1318863003/diff/1/media/filters/vp9_parser.cc File media/filters/vp9_parser.cc (right): https://codereview.chromium.org/1318863003/diff/1/media/filters/vp9_parser.cc#newcode343 media/filters/vp9_parser.cc:343: fhdr->refresh_flags = reader_.ReadLiteral(8); s/8/kVp9NumRefFrames/ https://codereview.chromium.org/1318863003/diff/1/media/filters/vp9_parser.cc#newcode348 ...
5 years, 3 months ago (2015-08-31 09:58:35 UTC) #3
kcwu
https://codereview.chromium.org/1318863003/diff/1/content/common/gpu/media/vaapi_video_decode_accelerator.cc File content/common/gpu/media/vaapi_video_decode_accelerator.cc (right): https://codereview.chromium.org/1318863003/diff/1/content/common/gpu/media/vaapi_video_decode_accelerator.cc#newcode1597 content/common/gpu/media/vaapi_video_decode_accelerator.cc:1597: memset(&pic_param, 0, sizeof(VADecPictureParameterBufferVP9)); sizeof(pic_param) https://codereview.chromium.org/1318863003/diff/1/content/common/gpu/media/vp9_decoder.cc File content/common/gpu/media/vp9_decoder.cc (right): https://codereview.chromium.org/1318863003/diff/1/content/common/gpu/media/vp9_decoder.cc#newcode62 ...
5 years, 3 months ago (2015-09-02 10:09:45 UTC) #4
Pawel Osciak
https://chromiumcodereview.appspot.com/1318863003/diff/1/content/common/gpu/media/vaapi_video_decode_accelerator.cc File content/common/gpu/media/vaapi_video_decode_accelerator.cc (right): https://chromiumcodereview.appspot.com/1318863003/diff/1/content/common/gpu/media/vaapi_video_decode_accelerator.cc#newcode1597 content/common/gpu/media/vaapi_video_decode_accelerator.cc:1597: memset(&pic_param, 0, sizeof(VADecPictureParameterBufferVP9)); On 2015/09/02 10:09:44, kcwu wrote: > ...
5 years, 3 months ago (2015-09-08 06:43:49 UTC) #5
kcwu
https://chromiumcodereview.appspot.com/1318863003/diff/1/media/filters/vp9_parser.cc File media/filters/vp9_parser.cc (right): https://chromiumcodereview.appspot.com/1318863003/diff/1/media/filters/vp9_parser.cc#newcode33 media/filters/vp9_parser.cc:33: const int kMaxLoopFilter = 63; On 2015/09/08 06:43:49, Pawel ...
5 years, 3 months ago (2015-09-08 09:08:41 UTC) #6
Pawel Osciak
https://chromiumcodereview.appspot.com/1318863003/diff/1/media/filters/vp9_parser.cc File media/filters/vp9_parser.cc (right): https://chromiumcodereview.appspot.com/1318863003/diff/1/media/filters/vp9_parser.cc#newcode33 media/filters/vp9_parser.cc:33: const int kMaxLoopFilter = 63; On 2015/09/08 09:08:41, kcwu ...
5 years, 3 months ago (2015-09-08 11:08:08 UTC) #10
Pawel Osciak
ptal
5 years, 3 months ago (2015-09-09 04:15:42 UTC) #12
kcwu
https://chromiumcodereview.appspot.com/1318863003/diff/120001/content/common/gpu/media/vaapi_video_decode_accelerator.cc File content/common/gpu/media/vaapi_video_decode_accelerator.cc (right): https://chromiumcodereview.appspot.com/1318863003/diff/120001/content/common/gpu/media/vaapi_video_decode_accelerator.cc#newcode238 content/common/gpu/media/vaapi_video_decode_accelerator.cc:238: bool SubmitDecode( why is it inconsistent to VaapiVP8Accelerator? VaapiVP8Accelerator::SubmitDecode ...
5 years, 3 months ago (2015-09-09 06:17:13 UTC) #13
Pawel Osciak
https://chromiumcodereview.appspot.com/1318863003/diff/120001/content/common/gpu/media/vaapi_video_decode_accelerator.cc File content/common/gpu/media/vaapi_video_decode_accelerator.cc (right): https://chromiumcodereview.appspot.com/1318863003/diff/120001/content/common/gpu/media/vaapi_video_decode_accelerator.cc#newcode238 content/common/gpu/media/vaapi_video_decode_accelerator.cc:238: bool SubmitDecode( On 2015/09/09 06:17:12, kcwu wrote: > why ...
5 years, 3 months ago (2015-09-09 08:55:41 UTC) #14
kcwu
lgtm https://chromiumcodereview.appspot.com/1318863003/diff/140001/content/common/gpu/media/vaapi_video_decode_accelerator.cc File content/common/gpu/media/vaapi_video_decode_accelerator.cc (right): https://chromiumcodereview.appspot.com/1318863003/diff/140001/content/common/gpu/media/vaapi_video_decode_accelerator.cc#newcode1603 content/common/gpu/media/vaapi_video_decode_accelerator.cc:1603: DVLOG(1) << "Unsupported profile"; << frame_hdr->profile
5 years, 3 months ago (2015-09-09 09:02:53 UTC) #15
Pawel Osciak
https://chromiumcodereview.appspot.com/1318863003/diff/140001/content/common/gpu/media/vaapi_video_decode_accelerator.cc File content/common/gpu/media/vaapi_video_decode_accelerator.cc (right): https://chromiumcodereview.appspot.com/1318863003/diff/140001/content/common/gpu/media/vaapi_video_decode_accelerator.cc#newcode1603 content/common/gpu/media/vaapi_video_decode_accelerator.cc:1603: DVLOG(1) << "Unsupported profile"; On 2015/09/09 09:02:53, kcwu wrote: ...
5 years, 3 months ago (2015-09-09 10:19:27 UTC) #16
Pawel Osciak
dalecurtis@: please OWNERS for media/. Thanks.
5 years, 3 months ago (2015-09-09 10:20:35 UTC) #17
Pawel Osciak
dalecurtis@: please OWNERS for media/. Thanks.
5 years, 3 months ago (2015-09-09 10:25:06 UTC) #19
Pawel Osciak
sandersd@: please OWNERS for media/. jorgelo@: please content/common/sandbox_linux/bpf_gpu_policy_linux.cc. Thanks!
5 years, 3 months ago (2015-09-15 08:05:56 UTC) #21
DaleCurtis
(sorry, I missed this review, feel free to ping me via e-mail next time, sandersd@ ...
5 years, 3 months ago (2015-09-15 16:27:36 UTC) #23
Jorge Lucangeli Obes
https://chromiumcodereview.appspot.com/1318863003/diff/180001/content/common/sandbox_linux/bpf_gpu_policy_linux.cc File content/common/sandbox_linux/bpf_gpu_policy_linux.cc (right): https://chromiumcodereview.appspot.com/1318863003/diff/180001/content/common/sandbox_linux/bpf_gpu_policy_linux.cc#newcode303 content/common/sandbox_linux/bpf_gpu_policy_linux.cc:303: const char* I965HybridDrvVideoPath = NULL; Technically, "965" is not ...
5 years, 3 months ago (2015-09-15 16:54:10 UTC) #24
Pawel Osciak
https://chromiumcodereview.appspot.com/1318863003/diff/180001/content/common/sandbox_linux/bpf_gpu_policy_linux.cc File content/common/sandbox_linux/bpf_gpu_policy_linux.cc (right): https://chromiumcodereview.appspot.com/1318863003/diff/180001/content/common/sandbox_linux/bpf_gpu_policy_linux.cc#newcode303 content/common/sandbox_linux/bpf_gpu_policy_linux.cc:303: const char* I965HybridDrvVideoPath = NULL; On 2015/09/15 16:54:10, Jorge ...
5 years, 3 months ago (2015-09-16 00:33:41 UTC) #25
Jorge Lucangeli Obes
On 2015/09/16 00:33:41, Pawel Osciak wrote: > https://chromiumcodereview.appspot.com/1318863003/diff/180001/content/common/sandbox_linux/bpf_gpu_policy_linux.cc > File content/common/sandbox_linux/bpf_gpu_policy_linux.cc (right): > > https://chromiumcodereview.appspot.com/1318863003/diff/180001/content/common/sandbox_linux/bpf_gpu_policy_linux.cc#newcode303 ...
5 years, 3 months ago (2015-09-16 01:23:49 UTC) #26
seanvk
On 2015/09/16 01:23:49, Jorge Lucangeli Obes wrote: > On 2015/09/16 00:33:41, Pawel Osciak wrote: > ...
5 years, 3 months ago (2015-09-16 16:52:54 UTC) #30
sandersd (OOO until July 31)
RS LGTM for media/filters.
5 years, 3 months ago (2015-09-17 00:19:53 UTC) #31
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1318863003/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1318863003/260001
5 years, 3 months ago (2015-09-17 00:22:39 UTC) #34
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/100753)
5 years, 3 months ago (2015-09-17 00:56:29 UTC) #36
Pawel Osciak
TBR=dpranke@ for BUILD.gn please.
5 years, 3 months ago (2015-09-17 01:33:32 UTC) #37
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1318863003/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1318863003/260001
5 years, 3 months ago (2015-09-17 01:34:00 UTC) #39
commit-bot: I haz the power
Committed patchset #7 (id:260001)
5 years, 3 months ago (2015-09-17 01:40:00 UTC) #40
commit-bot: I haz the power
Patchset 7 (id:??) landed as https://crrev.com/e3cc0a661b8abfdc74f569940949bc1f336ece40 Cr-Commit-Position: refs/heads/master@{#349312}
5 years, 3 months ago (2015-09-17 01:40:38 UTC) #41
tommycli
5 years, 3 months ago (2015-09-17 17:35:35 UTC) #42
Message was sent while issue was closed.
A revert of this CL (patchset #7 id:260001) has been created in
https://codereview.chromium.org/1357513002/ by tommycli@chromium.org.

The reason for reverting is: I think this patch broke compile step for Chromium
Linux ChromeOS MSan Builder.

First failing build:
http://build.chromium.org/p/chromium.memory.fyi/builders/Chromium%20Linux%20C...

All recent builds:
http://build.chromium.org/p/chromium.memory.fyi/builders/Chromium%20Linux%20C...

Sorry for the revert. I'll re-revert if I'm wrong.

Cheers,

Tommy.

Powered by Google App Engine
This is Rietveld 408576698