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

Issue 1505253004: Support for remote audio into tracks (Closed)

Created:
5 years ago by tommi
Modified:
5 years ago
CC:
webrtc-reviews_webrtc.org, pthatcher1
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Support for unmixed remote audio into tracks. BUG=chromium:121673 R=solenberg@webrtc.org Committed: https://crrev.com/f888bb58da04c5095759b5ec7ce2e1fa2cd414fd Cr-Commit-Position: refs/heads/master@{#10995}

Patch Set 1 #

Patch Set 2 : simplify creating a remote audio track #

Patch Set 3 : Fix remote source teardown, implement state, add checks and documentation #

Patch Set 4 : Rebase #

Patch Set 5 : Fix fwd decl #

Patch Set 6 : Change when we fire callbacks for external media #

Total comments: 17

Patch Set 7 : Address Per's comments #

Patch Set 8 : New AudioSink added #

Total comments: 4

Patch Set 9 : Revert unwanted VoE changes #

Total comments: 7

Patch Set 10 : Rename AudioSink->AudioSinkInterface #

Patch Set 11 : Add thread check, Remove bits_per_sample and use int16_t. #

Total comments: 28

Patch Set 12 : Fix format_macros.h on windows #

Patch Set 13 : Address comments #

Total comments: 16

Patch Set 14 : Address comments #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+520 lines, -50 lines) Patch
M talk/app/webrtc/mediastreaminterface.h View 1 2 3 4 5 6 1 chunk +2 lines, -0 lines 0 comments Download
M talk/app/webrtc/mediastreamprovider.h View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +10 lines, -0 lines 0 comments Download
M talk/app/webrtc/peerconnection.cc View 1 2 3 12 4 chunks +9 lines, -6 lines 0 comments Download
M talk/app/webrtc/remoteaudiosource.h View 1 2 3 4 5 6 7 8 9 1 chunk +35 lines, -6 lines 0 comments Download
M talk/app/webrtc/remoteaudiosource.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +113 lines, -14 lines 0 comments Download
M talk/app/webrtc/remoteaudiotrack.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +46 lines, -0 lines 0 comments Download
M talk/app/webrtc/remoteaudiotrack.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +67 lines, -0 lines 0 comments Download
M talk/app/webrtc/rtpreceiver.h View 1 chunk +4 lines, -4 lines 0 comments Download
M talk/app/webrtc/rtpsenderreceiver_unittest.cc View 1 2 3 4 5 6 7 8 9 4 chunks +14 lines, -3 lines 0 comments Download
M talk/app/webrtc/webrtcsession.h View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +3 lines, -1 line 2 comments Download
M talk/app/webrtc/webrtcsession.cc View 1 2 3 4 5 6 7 8 9 3 chunks +12 lines, -1 line 0 comments Download
M talk/media/base/fakemediaengine.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +9 lines, -1 line 0 comments Download
M talk/media/base/mediachannel.h View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +9 lines, -1 line 0 comments Download
M talk/media/webrtc/fakewebrtccall.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
M talk/media/webrtc/fakewebrtccall.cc View 1 2 3 4 5 6 7 8 9 2 chunks +7 lines, -0 lines 0 comments Download
M talk/media/webrtc/webrtcvoiceengine.h View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -0 lines 0 comments Download
M talk/media/webrtc/webrtcvoiceengine.cc View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +20 lines, -0 lines 0 comments Download
M talk/session/media/channel.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +10 lines, -2 lines 0 comments Download
M talk/session/media/channel.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +20 lines, -1 line 2 comments Download
M talk/session/media/channel_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +1 line, -1 line 0 comments Download
M webrtc/audio/BUILD.gn View 1 2 3 4 5 6 7 2 chunks +2 lines, -1 line 0 comments Download
M webrtc/audio/audio_receive_stream.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +3 lines, -0 lines 0 comments Download
M webrtc/audio/audio_receive_stream.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +7 lines, -0 lines 0 comments Download
A webrtc/audio/audio_sink.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +53 lines, -0 lines 0 comments Download
M webrtc/audio/webrtc_audio.gypi View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M webrtc/audio_receive_stream.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +12 lines, -0 lines 0 comments Download
M webrtc/base/format_macros.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M webrtc/voice_engine/channel.h View 1 2 3 4 5 6 7 8 9 3 chunks +4 lines, -0 lines 0 comments Download
M webrtc/voice_engine/channel.cc View 1 2 3 4 5 6 7 8 9 10 12 4 chunks +25 lines, -7 lines 0 comments Download
M webrtc/voice_engine/channel_proxy.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +4 lines, -1 line 0 comments Download
M webrtc/voice_engine/channel_proxy.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +10 lines, -0 lines 0 comments Download

Messages

Total messages: 61 (18 generated)
tommi
simplify creating a remote audio track
5 years ago (2015-12-08 22:26:41 UTC) #1
tommi
Fix remote source teardown, implement state, add checks and documentation
5 years ago (2015-12-09 21:33:52 UTC) #3
tommi
Rebase
5 years ago (2015-12-09 22:20:57 UTC) #4
tommi
Fix fwd decl
5 years ago (2015-12-09 22:24:29 UTC) #5
tommi
Change when we fire callbacks for external media
5 years ago (2015-12-10 01:02:31 UTC) #6
tommi
please take a look. Henrik - *voice_engine*, *voiceengine*, *voe* Per - everything else
5 years ago (2015-12-10 01:09:54 UTC) #8
tommi
Swapping Henrik out for The Sun!
5 years ago (2015-12-10 12:05:52 UTC) #10
perkj_webrtc
A few once to start with... https://codereview.webrtc.org/1505253004/diff/100001/talk/app/webrtc/peerconnection.cc File talk/app/webrtc/peerconnection.cc (right): https://codereview.webrtc.org/1505253004/diff/100001/talk/app/webrtc/peerconnection.cc#newcode1597 talk/app/webrtc/peerconnection.cc:1597: ssrc, session_.get(), stream, ...
5 years ago (2015-12-10 12:24:05 UTC) #11
the sun
Here are first few comments for VoE, assuming you'll add test cases once the right ...
5 years ago (2015-12-10 12:36:32 UTC) #12
tommi
Address Per's comments
5 years ago (2015-12-10 22:36:52 UTC) #13
tommi
Addressed Per's comments. Now to fix the sink. https://codereview.webrtc.org/1505253004/diff/100001/talk/app/webrtc/peerconnection.cc File talk/app/webrtc/peerconnection.cc (right): https://codereview.webrtc.org/1505253004/diff/100001/talk/app/webrtc/peerconnection.cc#newcode1597 talk/app/webrtc/peerconnection.cc:1597: ssrc, ...
5 years ago (2015-12-10 22:37:25 UTC) #14
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1505253004/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1505253004/120001
5 years ago (2015-12-10 22:52:33 UTC) #16
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: mac_rel on tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/mac_rel/builds/11481)
5 years ago (2015-12-10 23:06:47 UTC) #18
tommi
New AudioSink added
5 years ago (2015-12-11 13:09:16 UTC) #19
tommi
Revert unwanted VoE changes
5 years ago (2015-12-11 13:15:04 UTC) #20
tommi
OK, ready for the next round. I switched to a new audio sink instead of ...
5 years ago (2015-12-11 13:25:56 UTC) #22
tommi
On 2015/12/11 13:25:56, tommi (webrtc) wrote: > OK, ready for the next round. I switched ...
5 years ago (2015-12-11 13:28:04 UTC) #23
the sun
For webrtc/audio, webrtc/voice_engine: Structure looks good; the AudioSink::Data type will for sure be changed a ...
5 years ago (2015-12-11 13:52:01 UTC) #24
tommi
Rename AudioSink->AudioSinkInterface
5 years ago (2015-12-11 14:10:20 UTC) #25
tommi
Add thread check, Remove bits_per_sample and use int16_t.
5 years ago (2015-12-11 14:21:07 UTC) #26
tommi (sloooow) - chröme
Renamed, added check and removed bits_per_sample. I'm currently using Chrome to test and verify and ...
5 years ago (2015-12-11 14:22:57 UTC) #28
tommi (sloooow) - chröme
Here's the Chromium side CL btw: https://codereview.chromium.org/1514143003/
5 years ago (2015-12-11 14:26:15 UTC) #29
the sun
Took a better look now, at talk/media webrtc/ Before I give a thumbs up, fix ...
5 years ago (2015-12-11 16:32:05 UTC) #30
the sun
On 2015/12/11 16:32:05, the sun wrote: > Took a better look now, at > talk/media ...
5 years ago (2015-12-11 16:33:23 UTC) #31
tommi
Fix format_macros.h on windows
5 years ago (2015-12-11 16:58:23 UTC) #32
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1505253004/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1505253004/220001
5 years ago (2015-12-11 16:59:12 UTC) #34
commit-bot: I haz the power
Dry run: No L-G-T-M from a valid reviewer yet. Only full committers are accepted. Even ...
5 years ago (2015-12-11 16:59:16 UTC) #36
tommi (sloooow) - chröme
https://codereview.chromium.org/1505253004/diff/200001/talk/app/webrtc/remoteaudiosource.h File talk/app/webrtc/remoteaudiosource.h (right): https://codereview.chromium.org/1505253004/diff/200001/talk/app/webrtc/remoteaudiosource.h#newcode87 talk/app/webrtc/remoteaudiosource.h:87: rtc::CriticalSection sink_lock_; On 2015/12/11 16:32:04, the sun wrote: > ...
5 years ago (2015-12-11 17:51:18 UTC) #37
tommi
Address comments
5 years ago (2015-12-11 17:52:13 UTC) #39
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1505253004/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1505253004/240001
5 years ago (2015-12-11 17:52:46 UTC) #41
the sun
LGTM A few nits still, and one misunderstanding about the forward decls that you probably ...
5 years ago (2015-12-11 19:46:29 UTC) #42
the sun
[snip] > https://codereview.chromium.org/1505253004/diff/200001/talk/session/media/channel.h#newcode371 > talk/session/media/channel.h:371: rtc::scoped_ptr<webrtc::AudioSinkInterface> > sink); > On 2015/12/11 17:51:18, tommi wrote: > ...
5 years ago (2015-12-11 19:48:44 UTC) #43
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: android_arm64_rel on tryserver.webrtc (JOB_TIMED_OUT, no build URL) ...
5 years ago (2015-12-11 19:53:00 UTC) #45
tommi
Address comments
5 years ago (2015-12-11 22:34:14 UTC) #46
tommi
https://codereview.chromium.org/1505253004/diff/200001/talk/media/base/mediachannel.h File talk/media/base/mediachannel.h (right): https://codereview.chromium.org/1505253004/diff/200001/talk/media/base/mediachannel.h#newcode38 talk/media/base/mediachannel.h:38: #include "webrtc/audio/audio_sink.h" On 2015/12/11 19:46:28, the sun wrote: > ...
5 years ago (2015-12-12 00:33:11 UTC) #47
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1505253004/250001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1505253004/250001
5 years ago (2015-12-12 00:33:37 UTC) #50
commit-bot: I haz the power
Try jobs failed on following builders: android_arm64_rel on tryserver.webrtc (JOB_TIMED_OUT, no build URL) linux_baremetal on ...
5 years ago (2015-12-12 00:34:40 UTC) #52
commit-bot: I haz the power
Patchset 14 (id:??) landed as https://crrev.com/f888bb58da04c5095759b5ec7ce2e1fa2cd414fd Cr-Commit-Position: refs/heads/master@{#10995}
5 years ago (2015-12-12 00:37:20 UTC) #55
tommi
Committed patchset #14 (id:250001) manually as f888bb58da04c5095759b5ec7ce2e1fa2cd414fd (presubmit successful).
5 years ago (2015-12-12 00:37:21 UTC) #56
juberti
https://codereview.webrtc.org/1505253004/diff/250001/talk/app/webrtc/webrtcsession.h File talk/app/webrtc/webrtcsession.h (right): https://codereview.webrtc.org/1505253004/diff/250001/talk/app/webrtc/webrtcsession.h#newcode253 talk/app/webrtc/webrtcsession.h:253: void SetRawAudioSink(uint32_t ssrc, Is there a reason why this ...
5 years ago (2015-12-12 00:43:09 UTC) #58
tommi
https://codereview.webrtc.org/1505253004/diff/250001/talk/app/webrtc/webrtcsession.h File talk/app/webrtc/webrtcsession.h (right): https://codereview.webrtc.org/1505253004/diff/250001/talk/app/webrtc/webrtcsession.h#newcode253 talk/app/webrtc/webrtcsession.h:253: void SetRawAudioSink(uint32_t ssrc, On 2015/12/12 00:43:09, juberti wrote: > ...
5 years ago (2015-12-12 01:09:11 UTC) #59
perkj_webrtc
lgtm with nits. https://codereview.webrtc.org/1505253004/diff/140001/talk/media/base/fakemediaengine.h File talk/media/base/fakemediaengine.h (right): https://codereview.webrtc.org/1505253004/diff/140001/talk/media/base/fakemediaengine.h#newcode38 talk/media/base/fakemediaengine.h:38: #include "talk/media/base/audiorenderer.h" nit: remove extra https://codereview.webrtc.org/1505253004/diff/140001/talk/media/base/mediachannel.h ...
5 years ago (2015-12-13 19:26:48 UTC) #60
tommi
5 years ago (2015-12-13 19:46:34 UTC) #61
Message was sent while issue was closed.
see https://codereview.webrtc.org/1523603002 for followup

https://codereview.webrtc.org/1505253004/diff/140001/talk/media/base/fakemedi...
File talk/media/base/fakemediaengine.h (right):

https://codereview.webrtc.org/1505253004/diff/140001/talk/media/base/fakemedi...
talk/media/base/fakemediaengine.h:38: #include "talk/media/base/audiorenderer.h"
On 2015/12/13 19:26:47, perkj1 wrote:
> nit: remove extra

Done in the last patch set

https://codereview.webrtc.org/1505253004/diff/140001/talk/media/base/mediacha...
File talk/media/base/mediachannel.h (right):

https://codereview.webrtc.org/1505253004/diff/140001/talk/media/base/mediacha...
talk/media/base/mediachannel.h:34: #include "talk/media/base/audiorenderer.h"
On 2015/12/13 19:26:48, perkj1 wrote:
> nit , no need since it is still used as a pointer.  

Done.

https://codereview.webrtc.org/1505253004/diff/250001/talk/session/media/chann...
File talk/session/media/channel.cc (right):

https://codereview.webrtc.org/1505253004/diff/250001/talk/session/media/chann...
talk/session/media/channel.cc:48: bool SetRawAudioSink_w(VoiceMediaChannel*
channel,
On 2015/12/13 19:26:48, perkj1 wrote:
> nit: Since this file contain implementation for audio, video and data I would
> have prefered this to be implemented as VoiceChannel::SetRawAudioSink_w just
to
> keep the relevant code close to each other.

As is it's not a member function, so I figured I wouldn't expose it in the
header and it also requires less code.  I agree that it would be a good idea to
split voice, video and data up into separate files.

Powered by Google App Engine
This is Rietveld 408576698