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

Issue 1348563003: ppapi: implement PPB_AudioEncoder (Closed)

Created:
5 years, 3 months ago by llandwerlin-old
Modified:
5 years, 1 month ago
CC:
chromium-reviews, mkwst+moarreviews-renderer_chromium.org, darin-cc_chromium.org, jam, mlamouri+watch-content_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

ppapi: implement PPB_AudioEncoder BUG=461222 Committed: https://crrev.com/764a8c9512e79b62621e997aa802a6bcfd2c171c Cr-Commit-Position: refs/heads/master@{#360469}

Patch Set 1 : #

Total comments: 54

Patch Set 2 : Address tsepez's review #

Total comments: 8

Patch Set 3 : Address remaining overflow issues #

Total comments: 6

Patch Set 4 : Remove some internal classes #

Patch Set 5 : Add ppapi tests #

Patch Set 6 : Drop checks on buffers already queued #

Total comments: 4

Patch Set 7 : Remove AudioEncoderShim #

Patch Set 8 : Fold internal classes into AudioEncoderImpl #

Total comments: 15

Patch Set 9 : Switch to int32_t buffer ids #

Total comments: 2

Patch Set 10 : Rework destruction sequence #

Total comments: 20

Patch Set 11 : Rework allocation methods #

Total comments: 14

Patch Set 12 : Drop bitstream buffer manager from proxy #

Total comments: 62

Patch Set 13 : Add bitstream buffer type to MediaStreamBuffer #

Total comments: 19

Patch Set 14 : Don't rely on sizes from the plugin #

Total comments: 12

Patch Set 15 : #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+1226 lines, -12 lines) Patch
M chrome/test/ppapi/ppapi_browsertest.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M content/content_renderer.gypi View 1 2 3 4 5 6 7 2 chunks +3 lines, -0 lines 0 comments Download
M content/renderer/BUILD.gn View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/pepper/DEPS View 1 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/pepper/content_renderer_pepper_host_factory.cc View 1 2 3 2 chunks +4 lines, -0 lines 0 comments Download
A content/renderer/pepper/pepper_audio_encoder_host.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +110 lines, -0 lines 0 comments Download
A content/renderer/pepper/pepper_audio_encoder_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +495 lines, -0 lines 0 comments Download
M ppapi/ppapi_sources.gypi View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M ppapi/proxy/audio_encoder_resource.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +64 lines, -4 lines 0 comments Download
M ppapi/proxy/audio_encoder_resource.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +293 lines, -7 lines 0 comments Download
M ppapi/proxy/ppapi_messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +44 lines, -0 lines 0 comments Download
M ppapi/proxy/serialized_structs.h View 2 chunks +10 lines, -0 lines 0 comments Download
M ppapi/shared_impl/media_stream_buffer.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +16 lines, -1 line 0 comments Download
A ppapi/tests/test_audio_encoder.h View 1 2 3 4 1 chunk +38 lines, -0 lines 0 comments Download
A ppapi/tests/test_audio_encoder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +143 lines, -0 lines 1 comment Download

Messages

Total messages: 69 (19 generated)
llandwerlin-old
tsepez@chromium.org: Could you review the ppapi_messages.h changes? bbudge@chromium.org: Could you review the content/renderer/pepper and ppapi/proxy ...
5 years, 3 months ago (2015-09-17 17:20:46 UTC) #3
Tom Sepez
The messages themselves are fine, but I worry about the implementation behind them. How does ...
5 years, 3 months ago (2015-09-17 18:11:13 UTC) #4
llandwerlin-old
Sorry, for the delay in addressing your comments. bbudge@: Could you comment on tsepez's point ...
5 years, 2 months ago (2015-10-05 16:11:00 UTC) #5
bbudge
https://codereview.chromium.org/1348563003/diff/20001/ppapi/proxy/audio_encoder_resource.cc File ppapi/proxy/audio_encoder_resource.cc (right): https://codereview.chromium.org/1348563003/diff/20001/ppapi/proxy/audio_encoder_resource.cc#newcode155 ppapi/proxy/audio_encoder_resource.cc:155: if (encoder_last_error_) On 2015/10/05 16:11:00, llandwerlin wrote: > On ...
5 years, 2 months ago (2015-10-05 16:34:08 UTC) #6
Tom Sepez
Getting Closer. https://codereview.chromium.org/1348563003/diff/20001/content/renderer/pepper/audio_encoder_shim.h File content/renderer/pepper/audio_encoder_shim.h (right): https://codereview.chromium.org/1348563003/diff/20001/content/renderer/pepper/audio_encoder_shim.h#newcode49 content/renderer/pepper/audio_encoder_shim.h:49: typedef base::Callback<void(const scoped_refptr<AudioData>& output, On 2015/10/05 16:10:59, ...
5 years, 2 months ago (2015-10-05 16:54:16 UTC) #7
llandwerlin-old
https://codereview.chromium.org/1348563003/diff/20001/content/renderer/pepper/audio_encoder_shim.h File content/renderer/pepper/audio_encoder_shim.h (right): https://codereview.chromium.org/1348563003/diff/20001/content/renderer/pepper/audio_encoder_shim.h#newcode49 content/renderer/pepper/audio_encoder_shim.h:49: typedef base::Callback<void(const scoped_refptr<AudioData>& output, On 2015/10/05 16:54:16, Tom Sepez ...
5 years, 2 months ago (2015-10-05 17:16:31 UTC) #8
Tom Sepez
lgtm
5 years, 2 months ago (2015-10-05 17:34:16 UTC) #9
bbudge
Some high level comments. https://codereview.chromium.org/1348563003/diff/60001/content/renderer/pepper/content_renderer_pepper_host_factory.cc File content/renderer/pepper/content_renderer_pepper_host_factory.cc (right): https://codereview.chromium.org/1348563003/diff/60001/content/renderer/pepper/content_renderer_pepper_host_factory.cc#newcode119 content/renderer/pepper/content_renderer_pepper_host_factory.cc:119: case PpapiHostMsg_AudioEncoder_Create::ID: This should be ...
5 years, 2 months ago (2015-10-06 00:54:25 UTC) #10
llandwerlin-old
kinuko@chromium.org: Could you review the content/renderer/BUILD.gn changes? Thanks.
5 years, 2 months ago (2015-10-06 09:56:42 UTC) #12
llandwerlin-old
https://codereview.chromium.org/1348563003/diff/60001/content/renderer/pepper/content_renderer_pepper_host_factory.cc File content/renderer/pepper/content_renderer_pepper_host_factory.cc (right): https://codereview.chromium.org/1348563003/diff/60001/content/renderer/pepper/content_renderer_pepper_host_factory.cc#newcode119 content/renderer/pepper/content_renderer_pepper_host_factory.cc:119: case PpapiHostMsg_AudioEncoder_Create::ID: On 2015/10/06 00:54:25, bbudge wrote: > This ...
5 years, 2 months ago (2015-10-06 10:28:57 UTC) #13
bbudge
More high level comments. https://codereview.chromium.org/1348563003/diff/120001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/120001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode54 content/renderer/pepper/pepper_audio_encoder_host.cc:54: class PepperAudioEncoderHost::BufferManager This looks similar ...
5 years, 2 months ago (2015-10-06 20:07:32 UTC) #15
llandwerlin-old
https://codereview.chromium.org/1348563003/diff/120001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/120001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode54 content/renderer/pepper/pepper_audio_encoder_host.cc:54: class PepperAudioEncoderHost::BufferManager On 2015/10/06 20:07:32, bbudge wrote: > This ...
5 years, 2 months ago (2015-10-07 14:04:20 UTC) #16
llandwerlin-old
Ping?
5 years, 2 months ago (2015-10-15 16:09:56 UTC) #17
kinuko
BUILD.gn change lgtm
5 years, 2 months ago (2015-10-19 09:47:13 UTC) #18
bbudge
Sorry for the delay. https://codereview.chromium.org/1348563003/diff/120001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/120001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode54 content/renderer/pepper/pepper_audio_encoder_host.cc:54: class PepperAudioEncoderHost::BufferManager On 2015/10/07 14:04:19, ...
5 years, 2 months ago (2015-10-19 15:33:14 UTC) #19
llandwerlin-old
On 2015/10/19 15:33:14, bbudge wrote: > Sorry for the delay. > > https://codereview.chromium.org/1348563003/diff/120001/content/renderer/pepper/pepper_audio_encoder_host.cc > File ...
5 years, 2 months ago (2015-10-19 16:38:31 UTC) #20
bbudge
On 2015/10/19 16:38:31, llandwerlin wrote: > On 2015/10/19 15:33:14, bbudge wrote: > > Sorry for ...
5 years, 2 months ago (2015-10-19 20:20:10 UTC) #21
llandwerlin-old
bbudge@: PTAL, thanks.
5 years, 2 months ago (2015-10-23 16:56:39 UTC) #22
bbudge
Some small comments and one design one. The video APIs were designed for hardware decode ...
5 years, 2 months ago (2015-10-23 23:18:41 UTC) #23
llandwerlin-old
https://codereview.chromium.org/1348563003/diff/180001/content/renderer/pepper/pepper_audio_encoder_host.h File content/renderer/pepper/pepper_audio_encoder_host.h (right): https://codereview.chromium.org/1348563003/diff/180001/content/renderer/pepper/pepper_audio_encoder_host.h#newcode8 content/renderer/pepper/pepper_audio_encoder_host.h:8: #include <deque> On 2015/10/23 23:18:41, bbudge wrote: > Is ...
5 years, 1 month ago (2015-11-02 16:12:04 UTC) #24
llandwerlin-old
On 2015/10/23 23:18:41, bbudge wrote: > > On a related note, I noticed that Chrome ...
5 years, 1 month ago (2015-11-02 16:13:08 UTC) #25
bbudge
High level suggestion: Collapse your AudioCodecBase / OpusEncoder class hierarchy into AudioEncoderImpl. Unless you know ...
5 years, 1 month ago (2015-11-02 21:15:57 UTC) #26
llandwerlin-old
https://codereview.chromium.org/1348563003/diff/220001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/220001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode27 content/renderer/pepper/pepper_audio_encoder_host.cc:27: // Number of input audio buffers (150ms at 10ms ...
5 years, 1 month ago (2015-11-03 18:43:11 UTC) #27
bbudge
Mostly comments about the host. https://codereview.chromium.org/1348563003/diff/220001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/220001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode49 content/renderer/pepper/pepper_audio_encoder_host.cc:49: using BitstreamBufferReadyCB = base::Callback<void(int64_t ...
5 years, 1 month ago (2015-11-04 01:00:00 UTC) #28
llandwerlin-old
I had the shutdown of the AudioEncoderImpl slightly wrong, it's now using a weak pointer ...
5 years, 1 month ago (2015-11-04 14:44:27 UTC) #29
bbudge
Hi Lionel, a few small comments and a larger one. I don't see why the ...
5 years, 1 month ago (2015-11-10 00:08:25 UTC) #31
llandwerlin-old
The reason for the lazily allocated audio buffers is because there was hope to reuse ...
5 years, 1 month ago (2015-11-10 18:00:31 UTC) #32
bbudge
https://codereview.chromium.org/1348563003/diff/300001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/300001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode40 content/renderer/pepper/pepper_audio_encoder_host.cc:40: using BitstreamBufferReadyCB = base::Callback<void(int32_t size)>; On 2015/11/10 18:00:31, llandwerlin ...
5 years, 1 month ago (2015-11-10 18:58:32 UTC) #37
llandwerlin-old
https://codereview.chromium.org/1348563003/diff/300001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/300001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode69 content/renderer/pepper/pepper_audio_encoder_host.cc:69: uint32_t* buffer_id) { On 2015/11/10 18:58:32, bbudge wrote: > ...
5 years, 1 month ago (2015-11-11 11:36:50 UTC) #38
bbudge
https://codereview.chromium.org/1348563003/diff/300001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/300001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode137 content/renderer/pepper/pepper_audio_encoder_host.cc:137: } On 2015/11/11 11:36:49, llandwerlin wrote: > On 2015/11/10 ...
5 years, 1 month ago (2015-11-11 22:43:18 UTC) #39
llandwerlin-old
Thanks, reworked the destruction sequence by freeing buffers & encoder on the media thread like ...
5 years, 1 month ago (2015-11-12 10:53:56 UTC) #40
bbudge
https://codereview.chromium.org/1348563003/diff/360001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/360001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode115 content/renderer/pepper/pepper_audio_encoder_host.cc:115: PepperAudioEncoderHost::AudioEncoderImpl::AudioEncoderImpl() {} Could you initialize opus_encoder_(NULL) and parameters here? ...
5 years, 1 month ago (2015-11-12 20:31:31 UTC) #43
llandwerlin-old
https://codereview.chromium.org/1348563003/diff/360001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/360001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode115 content/renderer/pepper/pepper_audio_encoder_host.cc:115: PepperAudioEncoderHost::AudioEncoderImpl::AudioEncoderImpl() {} On 2015/11/12 20:31:31, bbudge wrote: > Could ...
5 years, 1 month ago (2015-11-13 12:46:23 UTC) #44
bbudge
https://codereview.chromium.org/1348563003/diff/380001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/380001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode55 content/renderer/pepper/pepper_audio_encoder_host.cc:55: // occured. nit: spelling occurred https://codereview.chromium.org/1348563003/diff/380001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode390 content/renderer/pepper/pepper_audio_encoder_host.cc:390: // buffers ...
5 years, 1 month ago (2015-11-13 20:37:56 UTC) #45
llandwerlin-old
https://codereview.chromium.org/1348563003/diff/380001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/380001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode55 content/renderer/pepper/pepper_audio_encoder_host.cc:55: // occured. On 2015/11/13 20:37:56, bbudge wrote: > nit: ...
5 years, 1 month ago (2015-11-16 11:23:57 UTC) #46
bbudge
+ a general question: Did you consider defining a new kind of MediaStreamBuffer type for ...
5 years, 1 month ago (2015-11-17 00:53:41 UTC) #47
llandwerlin-old
Here is a version with the add bitstream buffer type in MediaStreamBuffer. https://codereview.chromium.org/1348563003/diff/400001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc ...
5 years, 1 month ago (2015-11-17 15:22:31 UTC) #48
bbudge
Starting to look good. https://codereview.chromium.org/1348563003/diff/400001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/400001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode491 content/renderer/pepper/pepper_audio_encoder_host.cc:491: scoped_ptr<ppapi::MediaStreamBufferManager> bitstream_buffer_manager) {} On 2015/11/17 ...
5 years, 1 month ago (2015-11-17 20:24:00 UTC) #49
llandwerlin-old
https://codereview.chromium.org/1348563003/diff/420001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/420001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode261 content/renderer/pepper/pepper_audio_encoder_host.cc:261: return PP_ERROR_BADARGUMENT; On 2015/11/17 20:23:59, bbudge wrote: > The ...
5 years, 1 month ago (2015-11-18 11:31:46 UTC) #50
bbudge
A few more comments, otherwise LGTM. https://codereview.chromium.org/1348563003/diff/440001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/440001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode220 content/renderer/pepper/pepper_audio_encoder_host.cc:220: if (parameters.acceleration == ...
5 years, 1 month ago (2015-11-18 17:57:57 UTC) #51
llandwerlin-old
https://codereview.chromium.org/1348563003/diff/440001/content/renderer/pepper/pepper_audio_encoder_host.cc File content/renderer/pepper/pepper_audio_encoder_host.cc (right): https://codereview.chromium.org/1348563003/diff/440001/content/renderer/pepper/pepper_audio_encoder_host.cc#newcode220 content/renderer/pepper/pepper_audio_encoder_host.cc:220: if (parameters.acceleration == PP_HARDWAREACCELERATION_ONLY) On 2015/11/18 17:57:57, bbudge wrote: ...
5 years, 1 month ago (2015-11-18 18:05:27 UTC) #52
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1348563003/480001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1348563003/480001
5 years, 1 month ago (2015-11-18 20:07:19 UTC) #56
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/119878)
5 years, 1 month ago (2015-11-18 20:16:00 UTC) #58
llandwerlin-old
sergeyu@: Could you LGTM this change if you're okay with it. It seems it needs ...
5 years, 1 month ago (2015-11-18 20:24:34 UTC) #61
Sergey Ulanov
lgtm
5 years, 1 month ago (2015-11-18 20:46:57 UTC) #62
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1348563003/480001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1348563003/480001
5 years, 1 month ago (2015-11-19 00:23:59 UTC) #64
commit-bot: I haz the power
Committed patchset #15 (id:480001)
5 years, 1 month ago (2015-11-19 01:48:15 UTC) #65
commit-bot: I haz the power
Patchset 15 (id:??) landed as https://crrev.com/764a8c9512e79b62621e997aa802a6bcfd2c171c Cr-Commit-Position: refs/heads/master@{#360469}
5 years, 1 month ago (2015-11-19 01:48:57 UTC) #66
Adrian Kuegel
https://codereview.chromium.org/1348563003/diff/480001/ppapi/tests/test_audio_encoder.cc File ppapi/tests/test_audio_encoder.cc (right): https://codereview.chromium.org/1348563003/diff/480001/ppapi/tests/test_audio_encoder.cc#newcode34 ppapi/tests/test_audio_encoder.cc:34: TestCompletionCallbackWithOutput<std::vector<PP_AudioProfileDescription>> The two closing '>' break the GN build. ...
5 years, 1 month ago (2015-11-19 15:54:30 UTC) #68
Adrian Kuegel
5 years, 1 month ago (2015-11-19 16:02:06 UTC) #69
Message was sent while issue was closed.
On 2015/11/19 15:54:30, Adrian Kuegel wrote:
>
https://codereview.chromium.org/1348563003/diff/480001/ppapi/tests/test_audio...
> File ppapi/tests/test_audio_encoder.cc (right):
> 
>
https://codereview.chromium.org/1348563003/diff/480001/ppapi/tests/test_audio...
> ppapi/tests/test_audio_encoder.cc:34:
> TestCompletionCallbackWithOutput<std::vector<PP_AudioProfileDescription>>
> The two closing '>' break the GN build. Please fix.

Actually, I decided to fix it myself:
https://codereview.chromium.org/1464513002/

Powered by Google App Engine
This is Rietveld 408576698