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

Issue 1956343002: Initial asymmetric codec support in MediaSessionDescription (Closed)

Created:
4 years, 7 months ago by ossu
Modified:
4 years, 6 months ago
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Initial asymmetric codec support in MediaSessionDescription Added initial support for MediaSessionDescriptionFactory to pick different codecs based on communications direction (sendrecv, sendonly, recvonly, inactive) specifically for audio. This adds some more degradation options for the answer: depending on answer options, it's now possible to degrade to INACTIVE from any offer, as well as to either RECVONLY or SENDONLY from a SENDRECV offer. The set of "codecs" used for testing the answer was compiled using this spreadsheet: https://docs.google.com/a/google.com/spreadsheets/d/1nVIfZLsFo5YK10_e80BCAADZnnRQ1devwwwAGmqJPow/edit?usp=sharing I should probably condense it into a smaller table and put in the source. BUG=webrtc:5805 Committed: https://crrev.com/075af927309cea5420d06798c389c27cc6b34e61 Cr-Commit-Position: refs/heads/master@{#13126}

Patch Set 1 #

Total comments: 3

Patch Set 2 : Added unit tests #

Total comments: 1

Patch Set 3 : Parameterized tests #

Patch Set 4 : More intense testing! #

Total comments: 1

Patch Set 5 : Check stream type to decide on whether or not to receive. #

Total comments: 15

Patch Set 6 : Added RtpTranscieverDirection; removed old set_audio_codecs. #

Total comments: 2

Patch Set 7 : Added a comment describing how the codec sets were chosen. #

Total comments: 4

Patch Set 8 : Added { } #

Total comments: 2

Patch Set 9 : Fix MediaContetDirectionToString warning. #

Total comments: 13

Patch Set 10 : Fixed codec choice during negotiation. #

Total comments: 3

Patch Set 11 : Added TODO. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+515 lines, -56 lines) Patch
M webrtc/api/webrtcsession_unittest.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M webrtc/pc/mediasession.h View 1 2 3 4 5 6 7 8 9 5 chunks +42 lines, -3 lines 0 comments Download
M webrtc/pc/mediasession.cc View 1 2 3 4 5 6 7 8 9 13 chunks +158 lines, -47 lines 0 comments Download
M webrtc/pc/mediasession_unittest.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +313 lines, -4 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 44 (14 generated)
ossu
https://codereview.webrtc.org/1956343002/diff/1/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): https://codereview.webrtc.org/1956343002/diff/1/webrtc/pc/mediasession.cc#newcode1270 webrtc/pc/mediasession.cc:1270: for (const auto& sc : audio_send_codecs_) { This clearly ...
4 years, 7 months ago (2016-05-09 10:57:06 UTC) #1
ossu
Please have a look at this. I've a second step on its way, that plumbs ...
4 years, 7 months ago (2016-05-16 12:44:01 UTC) #4
kwiberg-webrtc
https://codereview.webrtc.org/1956343002/diff/1/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): https://codereview.webrtc.org/1956343002/diff/1/webrtc/pc/mediasession.cc#newcode1293 webrtc/pc/mediasession.cc:1293: const AudioCodecs *supported_audio_codecs = nullptr; You set this in ...
4 years, 7 months ago (2016-05-17 12:22:37 UTC) #5
kwiberg-webrtc
On 2016/05/16 12:44:01, ossu wrote: > Please have a look at this. I've a second ...
4 years, 7 months ago (2016-05-17 12:23:27 UTC) #6
ossu
Added tests for the codec merging separately, as well as for the sets of codecs ...
4 years, 7 months ago (2016-05-23 14:18:04 UTC) #8
ossu
Parameterized the offer/answer tests, to see what it'd look like. The testing output isn't as ...
4 years, 7 months ago (2016-05-23 14:52:49 UTC) #9
ossu
Parameterized the offer/answer tests, to see what it'd look like. The testing output isn't as ...
4 years, 7 months ago (2016-05-23 14:52:49 UTC) #10
ossu
I believe the offer/answer tests need four different sets of codecs to test the system ...
4 years, 7 months ago (2016-05-24 09:22:06 UTC) #12
ossu
Improved testing of the answer by using more specialized sets of codecs. I've added a ...
4 years, 7 months ago (2016-05-25 11:12:11 UTC) #15
ossu
https://codereview.webrtc.org/1956343002/diff/80001/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): https://codereview.webrtc.org/1956343002/diff/80001/webrtc/pc/mediasession.cc#newcode1041 webrtc/pc/mediasession.cc:1041: answer->set_direction(options.recv_audio ? MD_RECVONLY : MD_INACTIVE); This is clearly wrong: ...
4 years, 7 months ago (2016-05-25 11:15:06 UTC) #16
ossu
Fixed the check for whether to receive or not: it now checks different flags depending ...
4 years, 7 months ago (2016-05-25 11:26:15 UTC) #17
ossu
Removed Karl as reviewer and added pthatcher, being an owner.
4 years, 6 months ago (2016-05-30 12:37:54 UTC) #19
pthatcher1
Taylor, Can you check the logic here and the unit tests? https://codereview.webrtc.org/1956343002/diff/100001/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): ...
4 years, 6 months ago (2016-05-31 21:52:36 UTC) #20
ossu
Addressed the issues in your comments. Most of RtpTranscieverDirection is taken directly from them, with ...
4 years, 6 months ago (2016-06-02 13:28:02 UTC) #22
pthatcher1
lgtm, assuming you add the {}s :). https://codereview.webrtc.org/1956343002/diff/100001/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): https://codereview.webrtc.org/1956343002/diff/100001/webrtc/pc/mediasession.cc#newcode1339 webrtc/pc/mediasession.cc:1339: } On ...
4 years, 6 months ago (2016-06-02 22:29:17 UTC) #23
ossu
https://codereview.webrtc.org/1956343002/diff/160001/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): https://codereview.webrtc.org/1956343002/diff/160001/webrtc/pc/mediasession.cc#newcode84 webrtc/pc/mediasession.cc:84: return MD_RECVONLY; On 2016/06/02 22:29:17, pthatcher1 wrote: > {}s ...
4 years, 6 months ago (2016-06-03 13:59:17 UTC) #24
ossu
Not going to submit this right now (Friday afternoon and all). Did you have a ...
4 years, 6 months ago (2016-06-03 14:17:27 UTC) #25
Taylor Brandstetter
A few small observations, but otherwise this looks very good. https://codereview.webrtc.org/1956343002/diff/200001/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): https://codereview.webrtc.org/1956343002/diff/200001/webrtc/pc/mediasession.cc#newcode1320 ...
4 years, 6 months ago (2016-06-03 17:13:20 UTC) #26
Taylor Brandstetter
https://codereview.webrtc.org/1956343002/diff/200001/webrtc/pc/mediasession_unittest.cc File webrtc/pc/mediasession_unittest.cc (right): https://codereview.webrtc.org/1956343002/diff/200001/webrtc/pc/mediasession_unittest.cc#newcode2654 webrtc/pc/mediasession_unittest.cc:2654: static_cast<const AudioContentDescription*>(ac->description); Another small afterthought: It may be valuable ...
4 years, 6 months ago (2016-06-03 17:18:58 UTC) #27
Taylor Brandstetter
https://codereview.webrtc.org/1956343002/diff/180001/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): https://codereview.webrtc.org/1956343002/diff/180001/webrtc/pc/mediasession.cc#newcode1848 webrtc/pc/mediasession.cc:1848: AudioCodecs audio_codecs = GetAudioCodecsForDirection(answer_rtd); There's some code duplication between ...
4 years, 6 months ago (2016-06-03 17:26:20 UTC) #28
ossu
https://codereview.webrtc.org/1956343002/diff/180001/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): https://codereview.webrtc.org/1956343002/diff/180001/webrtc/pc/mediasession.cc#newcode1848 webrtc/pc/mediasession.cc:1848: AudioCodecs audio_codecs = GetAudioCodecsForDirection(answer_rtd); Probably. I'll look into it! ...
4 years, 6 months ago (2016-06-10 09:10:05 UTC) #29
ossu
https://codereview.webrtc.org/1956343002/diff/220001/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): https://codereview.webrtc.org/1956343002/diff/220001/webrtc/pc/mediasession.cc#newcode795 webrtc/pc/mediasession.cc:795: negotiated.name = theirs.name; Essentially I added this because it ...
4 years, 6 months ago (2016-06-10 13:15:19 UTC) #30
Taylor Brandstetter
https://codereview.webrtc.org/1956343002/diff/200001/webrtc/pc/mediasession.cc File webrtc/pc/mediasession.cc (right): https://codereview.webrtc.org/1956343002/diff/200001/webrtc/pc/mediasession.cc#newcode1320 webrtc/pc/mediasession.cc:1320: sc.feedback_params == rc.feedback_params) { On 2016/06/10 09:10:04, ossu wrote: ...
4 years, 6 months ago (2016-06-10 17:39:13 UTC) #31
ossu
I've added the TODO for deadbeef. Are you satisfied with the rest of the changes? ...
4 years, 6 months ago (2016-06-13 12:47:19 UTC) #32
Taylor Brandstetter
lgtm, thanks!
4 years, 6 months ago (2016-06-13 18:29:38 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1956343002/240001
4 years, 6 months ago (2016-06-14 07:58:59 UTC) #36
commit-bot: I haz the power
Try jobs failed on following builders: android_rel on tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/android_rel/builds/14144)
4 years, 6 months ago (2016-06-14 08:17:36 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1956343002/240001
4 years, 6 months ago (2016-06-14 09:59:16 UTC) #40
commit-bot: I haz the power
Committed patchset #11 (id:240001)
4 years, 6 months ago (2016-06-14 10:29:44 UTC) #42
commit-bot: I haz the power
4 years, 6 months ago (2016-06-14 10:29:53 UTC) #44
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/075af927309cea5420d06798c389c27cc6b34e61
Cr-Commit-Position: refs/heads/master@{#13126}

Powered by Google App Engine
This is Rietveld 408576698