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

Issue 397883002: Implement actually decoding frames in VTVideoDecodeAccelerator. (Closed)

Created:
6 years, 5 months ago by sandersd (OOO until July 31)
Modified:
6 years, 4 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
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Implement actually decoding frames in VTVideoDecodeAccelerator. This adds translation from Annex B to AVCC format along with decoding frames and binding them to textures. It seems that kVTDecodeFrame_EnableTemporalProcessing is just a suggestion to VideoToolbox, and one that it ignores. That means that, for now, this code only outputs frames in the correct order for I-frame only video. BUG=133828 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=287451

Patch Set 1 #

Patch Set 2 : Fixup header. #

Total comments: 25

Patch Set 3 : Address comments. #

Total comments: 14

Patch Set 4 : Fix refcounting and address comments. #

Total comments: 17

Patch Set 5 : Fix race on coded_size_. #

Total comments: 48

Patch Set 6 : Fix header comments. #

Total comments: 2

Patch Set 7 : Vertical space. #

Patch Set 8 : Nits. #

Total comments: 36

Patch Set 9 : Fix nits. #

Total comments: 5

Patch Set 10 : Rebase #

Patch Set 11 : Rebase again #

Patch Set 12 : Fixes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+259 lines, -48 lines) Patch
M content/common/gpu/media/gpu_video_decode_accelerator.cc View 1 chunk +5 lines, -4 lines 0 comments Download
M content/common/gpu/media/vt_stubs_header.fragment View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
M content/common/gpu/media/vt_video_decode_accelerator.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +51 lines, -11 lines 0 comments Download
M content/common/gpu/media/vt_video_decode_accelerator.cc View 1 2 3 4 5 6 7 8 9 10 11 11 chunks +197 lines, -33 lines 0 comments Download

Messages

Total messages: 34 (0 generated)
sandersd (OOO until July 31)
6 years, 5 months ago (2014-07-16 01:23:39 UTC) #1
scherkus (not reviewing)
https://codereview.chromium.org/397883002/diff/20001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://codereview.chromium.org/397883002/diff/20001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode37 content/common/gpu/media/vt_video_decode_accelerator.cc:37: // Will be guaranteed to be valid once flush ...
6 years, 5 months ago (2014-07-16 18:18:52 UTC) #2
sandersd (OOO until July 31)
I've addressed the comments, but not tested the new code yet as building on Mac ...
6 years, 5 months ago (2014-07-17 00:22:22 UTC) #3
scherkus (not reviewing)
https://codereview.chromium.org/397883002/diff/20001/content/common/gpu/media/vt_video_decode_accelerator.h File content/common/gpu/media/vt_video_decode_accelerator.h (right): https://codereview.chromium.org/397883002/diff/20001/content/common/gpu/media/vt_video_decode_accelerator.h#newcode86 content/common/gpu/media/vt_video_decode_accelerator.h:86: std::map<int32_t, int32_t> texture_ids_; On 2014/07/17 00:22:22, sandersd wrote: > ...
6 years, 5 months ago (2014-07-17 02:08:26 UTC) #4
sandersd (OOO until July 31)
It turns out that the task-posting version of Output() was decrementing the |image_buffer| reference one-too-many ...
6 years, 5 months ago (2014-07-17 20:31:46 UTC) #5
scherkus (not reviewing)
few more nits but looking good https://codereview.chromium.org/397883002/diff/60001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://codereview.chromium.org/397883002/diff/60001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode159 content/common/gpu/media/vt_video_decode_accelerator.cc:159: session_.reset(); shouldn't this ...
6 years, 5 months ago (2014-07-17 21:17:26 UTC) #6
sandersd (OOO until July 31)
https://codereview.chromium.org/397883002/diff/60001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://codereview.chromium.org/397883002/diff/60001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode159 content/common/gpu/media/vt_video_decode_accelerator.cc:159: session_.reset(); On 2014/07/17 21:17:26, scherkus wrote: > shouldn't this ...
6 years, 5 months ago (2014-07-17 23:22:46 UTC) #7
scherkus (not reviewing)
looks like you missed the comments in the .h https://codereview.chromium.org/397883002/diff/60001/content/common/gpu/media/vt_video_decode_accelerator.h File content/common/gpu/media/vt_video_decode_accelerator.h (right): https://codereview.chromium.org/397883002/diff/60001/content/common/gpu/media/vt_video_decode_accelerator.h#newcode53 content/common/gpu/media/vt_video_decode_accelerator.h:53: ...
6 years, 5 months ago (2014-07-17 23:32:52 UTC) #8
sandersd (OOO until July 31)
Oops, sorry about that! https://codereview.chromium.org/397883002/diff/60001/content/common/gpu/media/vt_video_decode_accelerator.h File content/common/gpu/media/vt_video_decode_accelerator.h (right): https://codereview.chromium.org/397883002/diff/60001/content/common/gpu/media/vt_video_decode_accelerator.h#newcode53 content/common/gpu/media/vt_video_decode_accelerator.h:53: // Called by OutputThunk when ...
6 years, 5 months ago (2014-07-18 01:05:15 UTC) #9
scherkus (not reviewing)
https://codereview.chromium.org/397883002/diff/100001/content/common/gpu/media/vt_video_decode_accelerator.h File content/common/gpu/media/vt_video_decode_accelerator.h (right): https://codereview.chromium.org/397883002/diff/100001/content/common/gpu/media/vt_video_decode_accelerator.h#newcode107 content/common/gpu/media/vt_video_decode_accelerator.h:107: // This WeakPtrFactory does not need to be last ...
6 years, 5 months ago (2014-07-18 01:08:42 UTC) #10
sandersd (OOO until July 31)
https://codereview.chromium.org/397883002/diff/100001/content/common/gpu/media/vt_video_decode_accelerator.h File content/common/gpu/media/vt_video_decode_accelerator.h (right): https://codereview.chromium.org/397883002/diff/100001/content/common/gpu/media/vt_video_decode_accelerator.h#newcode107 content/common/gpu/media/vt_video_decode_accelerator.h:107: // This WeakPtrFactory does not need to be last ...
6 years, 5 months ago (2014-07-18 01:12:00 UTC) #11
scherkus (not reviewing)
you rock! lgtm! posciak: I think we can get the CQ started on this and ...
6 years, 5 months ago (2014-07-18 01:13:42 UTC) #12
Pawel Osciak
https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode73 content/common/gpu/media/vt_video_decode_accelerator.cc:73: client_ = client; Sanity check: why is it safe ...
6 years, 5 months ago (2014-07-18 01:22:13 UTC) #13
scherkus (not reviewing)
https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode73 content/common/gpu/media/vt_video_decode_accelerator.cc:73: client_ = client; On 2014/07/18 01:22:12, Pawel Osciak wrote: ...
6 years, 5 months ago (2014-07-18 01:26:18 UTC) #14
Pawel Osciak
https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode73 content/common/gpu/media/vt_video_decode_accelerator.cc:73: client_ = client; On 2014/07/18 01:26:17, scherkus wrote: > ...
6 years, 5 months ago (2014-07-18 01:45:05 UTC) #15
scherkus (not reviewing)
https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode73 content/common/gpu/media/vt_video_decode_accelerator.cc:73: client_ = client; On 2014/07/18 01:45:05, Pawel Osciak wrote: ...
6 years, 5 months ago (2014-07-18 01:47:48 UTC) #16
Pawel Osciak
On 2014/07/18 01:47:48, scherkus wrote: > https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc > File content/common/gpu/media/vt_video_decode_accelerator.cc (right): > > https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode73 > ...
6 years, 5 months ago (2014-07-18 01:55:51 UTC) #17
sandersd (OOO until July 31)
https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode167 content/common/gpu/media/vt_video_decode_accelerator.cc:167: if (coded_size_ != new_coded_size) { On 2014/07/18 01:22:12, Pawel ...
6 years, 5 months ago (2014-07-18 21:50:15 UTC) #18
Pawel Osciak
https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode167 content/common/gpu/media/vt_video_decode_accelerator.cc:167: if (coded_size_ != new_coded_size) { On 2014/07/18 21:50:14, sandersd ...
6 years, 5 months ago (2014-07-22 11:19:35 UTC) #19
sandersd (OOO until July 31)
https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode167 content/common/gpu/media/vt_video_decode_accelerator.cc:167: if (coded_size_ != new_coded_size) { On 2014/07/22 11:19:35, Pawel ...
6 years, 5 months ago (2014-07-22 19:00:24 UTC) #20
Pawel Osciak
https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://codereview.chromium.org/397883002/diff/80001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode366 content/common/gpu/media/vt_video_decode_accelerator.cc:366: client_->NotifyEndOfBitstreamBuffer(frame.bitstream_id); On 2014/07/22 19:00:23, sandersd wrote: > On 2014/07/22 ...
6 years, 5 months ago (2014-07-23 04:14:23 UTC) #21
sandersd (OOO until July 31)
Now it's my fault that there was a long delay, it took me a while ...
6 years, 5 months ago (2014-07-23 18:03:39 UTC) #22
Pawel Osciak
On 2014/07/23 18:03:39, sandersd wrote: > Now it's my fault that there was a long ...
6 years, 5 months ago (2014-07-24 01:27:36 UTC) #23
sandersd (OOO until July 31)
> > > The key here is that rate limiting is done on the outputs ...
6 years, 5 months ago (2014-07-24 02:37:17 UTC) #24
Pawel Osciak
Ok, maybe I'm crazy, but I am sure, I clearly remember I did respond to ...
6 years, 4 months ago (2014-07-29 07:32:53 UTC) #25
scherkus (not reviewing)
On 2014/07/29 07:32:53, Pawel Osciak wrote: > Ok, maybe I'm crazy, but I am sure, ...
6 years, 4 months ago (2014-07-29 17:17:05 UTC) #26
sandersd (OOO until July 31)
> There should be no need for that. The VDA API requires the VDA impl ...
6 years, 4 months ago (2014-07-30 20:25:44 UTC) #27
Pawel Osciak
https://chromiumcodereview.appspot.com/397883002/diff/140001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://chromiumcodereview.appspot.com/397883002/diff/140001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode41 content/common/gpu/media/vt_video_decode_accelerator.cc:41: intptr_t bitstream_id = reinterpret_cast<intptr_t>(source_frame_refcon); Would it work to cast ...
6 years, 4 months ago (2014-08-02 00:28:15 UTC) #28
sandersd (OOO until July 31)
https://chromiumcodereview.appspot.com/397883002/diff/140001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://chromiumcodereview.appspot.com/397883002/diff/140001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode41 content/common/gpu/media/vt_video_decode_accelerator.cc:41: intptr_t bitstream_id = reinterpret_cast<intptr_t>(source_frame_refcon); On 2014/08/02 00:28:14, Pawel Osciak ...
6 years, 4 months ago (2014-08-02 01:43:14 UTC) #29
Pawel Osciak
lgtm! Thank you for your patience :) https://chromiumcodereview.appspot.com/397883002/diff/140001/content/common/gpu/media/vt_video_decode_accelerator.cc File content/common/gpu/media/vt_video_decode_accelerator.cc (right): https://chromiumcodereview.appspot.com/397883002/diff/140001/content/common/gpu/media/vt_video_decode_accelerator.cc#newcode166 content/common/gpu/media/vt_video_decode_accelerator.cc:166: // If ...
6 years, 4 months ago (2014-08-03 04:26:31 UTC) #30
sandersd (OOO until July 31)
Some fixes, and reply to comments on the .h that I failed to reply to ...
6 years, 4 months ago (2014-08-04 19:24:21 UTC) #31
sandersd (OOO until July 31)
The CQ bit was checked by sandersd@chromium.org
6 years, 4 months ago (2014-08-04 19:24:35 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sandersd@chromium.org/397883002/220001
6 years, 4 months ago (2014-08-04 19:25:40 UTC) #33
commit-bot: I haz the power
6 years, 4 months ago (2014-08-05 04:17:50 UTC) #34
Message was sent while issue was closed.
Change committed as 287451

Powered by Google App Engine
This is Rietveld 408576698