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

Issue 2342443005: Moved Opus-specific payload splitting into AudioDecoderOpus. (Closed)

Created:
4 years, 3 months ago by ossu
Modified:
4 years, 3 months ago
CC:
webrtc-reviews_webrtc.org, kwiberg-webrtc, tlegrand-webrtc, tterriberry_mozilla.com, audio-team_agora.io, hlundin-webrtc, peah-webrtc, minyue-webrtc
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Moved Opus-specific payload splitting into AudioDecoderOpus. The biggest change to NetEq is the move from a primary flag, to a Priority with two separate levels: one set by RED splitting and one set by the codec itself. This allows us to unambigously prioritize "fallback" packets from these two sources. I've chosen what I believe is the sensible ordering: packets that the codec prioritizes are chosen first, regardless of if they are secondary RED packets or not. So if we were to use Opus w/ FEC in RED, we'd only do Opus FEC decoding if there was no RED packet that could cover the time slot. With this change, PayloadSplitter now only deals with RED packets. Maybe it should be renamed RedPayloadSplitter? BUG=webrtc:5805 Committed: https://crrev.com/a70695a3e1e7ead375d4bbc7997cd630d1ac1731 Cr-Commit-Position: refs/heads/master@{#14347}

Patch Set 1 #

Total comments: 70

Patch Set 2 : Priority levels are ints, kHighestPriority is gone. Also small cleanups. #

Total comments: 22

Patch Set 3 : Forbade negative Packet priorities; PayloadSplitter -> RedPayloadSplitter; formatting/linting #

Total comments: 18

Patch Set 4 : Some small fixes. #

Total comments: 3
Unified diffs Side-by-side diffs Delta from patch set Stats (+441 lines, -1202 lines) Patch
M webrtc/modules/BUILD.gn View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_coding/BUILD.gn View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/audio_decoder.h View 1 2 5 chunks +9 lines, -10 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/audio_decoder.cc View 1 2 3 chunks +7 lines, -8 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.h View 1 2 chunks +2 lines, -4 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.cc View 1 2 chunks +4 lines, -6 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.h View 1 2 chunks +2 lines, -4 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.cc View 1 2 chunks +5 lines, -7 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.h View 1 1 chunk +1 line, -2 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.cc View 1 2 4 chunks +7 lines, -8 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/ilbc/ilbc_unittest.cc View 1 3 chunks +3 lines, -3 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/legacy_encoded_audio_frame.h View 1 2 chunks +1 line, -5 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/legacy_encoded_audio_frame.cc View 1 2 4 chunks +10 lines, -28 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/legacy_encoded_audio_frame_unittest.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.h View 1 1 chunk +2 lines, -0 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.cc View 1 2 chunks +70 lines, -0 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.h View 1 1 chunk +1 line, -2 lines 0 comments Download
M webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.cc View 1 2 1 chunk +3 lines, -4 lines 0 comments Download
M webrtc/modules/audio_coding/neteq/include/neteq.h View 1 chunk +0 lines, -1 line 0 comments Download
M webrtc/modules/audio_coding/neteq/mock/mock_payload_splitter.h View 1 2 1 chunk +0 lines, -31 lines 0 comments Download
A webrtc/modules/audio_coding/neteq/mock/mock_red_payload_splitter.h View 1 2 1 chunk +29 lines, -0 lines 0 comments Download
M webrtc/modules/audio_coding/neteq/neteq.gypi View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M webrtc/modules/audio_coding/neteq/neteq_impl.h View 1 2 3 chunks +3 lines, -3 lines 0 comments Download
M webrtc/modules/audio_coding/neteq/neteq_impl.cc View 1 2 3 10 chunks +13 lines, -26 lines 0 comments Download
M webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc View 1 2 4 chunks +6 lines, -11 lines 0 comments Download
M webrtc/modules/audio_coding/neteq/neteq_network_stats_unittest.cc View 1 2 3 2 chunks +48 lines, -19 lines 0 comments Download
M webrtc/modules/audio_coding/neteq/packet.h View 1 2 3 2 chunks +48 lines, -7 lines 3 comments Download
M webrtc/modules/audio_coding/neteq/packet_buffer.cc View 1 2 3 chunks +7 lines, -2 lines 0 comments Download
M webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc View 1 5 chunks +54 lines, -9 lines 0 comments Download
M webrtc/modules/audio_coding/neteq/payload_splitter.h View 1 2 1 chunk +0 lines, -66 lines 0 comments Download
M webrtc/modules/audio_coding/neteq/payload_splitter.cc View 1 2 1 chunk +0 lines, -215 lines 0 comments Download
M webrtc/modules/audio_coding/neteq/payload_splitter_unittest.cc View 1 2 1 chunk +0 lines, -457 lines 0 comments Download
A + webrtc/modules/audio_coding/neteq/red_payload_splitter.h View 1 2 3 chunks +13 lines, -28 lines 0 comments Download
A + webrtc/modules/audio_coding/neteq/red_payload_splitter.cc View 1 2 3 6 chunks +46 lines, -93 lines 0 comments Download
A + webrtc/modules/audio_coding/neteq/red_payload_splitter_unittest.cc View 1 2 9 chunks +40 lines, -136 lines 0 comments Download

Depends on Patchset:

Dependent Patchsets:

Messages

Total messages: 30 (8 generated)
ossu
This is the last of my three CLs that changes payload splitting in NetEq. Although ...
4 years, 3 months ago (2016-09-14 16:21:08 UTC) #2
hlundin-webrtc
Nice changes! I'm in favor of renaming PayloadSplitter to RedPayloadSplitter. Please, do this as a ...
4 years, 3 months ago (2016-09-15 09:33:30 UTC) #3
ossu
https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h File webrtc/modules/audio_coding/codecs/audio_decoder.h (right): https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h#newcode64 webrtc/modules/audio_coding/codecs/audio_decoder.h:64: uint8_t priority, On 2016/09/15 09:33:29, hlundin-webrtc wrote: > "You ...
4 years, 3 months ago (2016-09-15 12:22:53 UTC) #4
hlundin-webrtc
https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h File webrtc/modules/audio_coding/codecs/audio_decoder.h (right): https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h#newcode64 webrtc/modules/audio_coding/codecs/audio_decoder.h:64: uint8_t priority, On 2016/09/15 12:22:53, ossu wrote: > On ...
4 years, 3 months ago (2016-09-16 07:51:27 UTC) #5
kwiberg-webrtc
https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h File webrtc/modules/audio_coding/codecs/audio_decoder.h (right): https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h#newcode64 webrtc/modules/audio_coding/codecs/audio_decoder.h:64: uint8_t priority, On 2016/09/15 12:22:53, ossu wrote: > On ...
4 years, 3 months ago (2016-09-19 11:07:49 UTC) #6
ossu
https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h File webrtc/modules/audio_coding/codecs/audio_decoder.h (right): https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h#newcode64 webrtc/modules/audio_coding/codecs/audio_decoder.h:64: uint8_t priority, On 2016/09/19 11:07:49, kwiberg-webrtc wrote: > On ...
4 years, 3 months ago (2016-09-19 11:41:01 UTC) #7
kwiberg-webrtc
https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h File webrtc/modules/audio_coding/codecs/audio_decoder.h (right): https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h#newcode64 webrtc/modules/audio_coding/codecs/audio_decoder.h:64: uint8_t priority, On 2016/09/19 11:41:01, ossu wrote: > On ...
4 years, 3 months ago (2016-09-19 11:55:17 UTC) #8
hlundin-webrtc
https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.cc File webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.cc (right): https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.cc#newcode36 webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.cc:36: } On 2016/09/19 11:55:16, kwiberg-webrtc wrote: > On 2016/09/19 ...
4 years, 3 months ago (2016-09-19 12:19:13 UTC) #9
ossu
https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h File webrtc/modules/audio_coding/codecs/audio_decoder.h (right): https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h#newcode64 webrtc/modules/audio_coding/codecs/audio_decoder.h:64: uint8_t priority, On 2016/09/19 11:55:16, kwiberg-webrtc wrote: > On ...
4 years, 3 months ago (2016-09-19 14:07:34 UTC) #10
hlundin-webrtc
Three nits, then LGTM. https://codereview.webrtc.org/2342443005/diff/20001/webrtc/modules/audio_coding/codecs/audio_decoder.cc File webrtc/modules/audio_coding/codecs/audio_decoder.cc (right): https://codereview.webrtc.org/2342443005/diff/20001/webrtc/modules/audio_coding/codecs/audio_decoder.cc#newcode17 webrtc/modules/audio_coding/codecs/audio_decoder.cc:17: #include <utility> Duplicate. https://codereview.webrtc.org/2342443005/diff/20001/webrtc/modules/audio_coding/codecs/audio_decoder.h File ...
4 years, 3 months ago (2016-09-20 07:02:24 UTC) #11
kwiberg-webrtc
https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h File webrtc/modules/audio_coding/codecs/audio_decoder.h (right): https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/codecs/audio_decoder.h#newcode64 webrtc/modules/audio_coding/codecs/audio_decoder.h:64: uint8_t priority, On 2016/09/19 14:07:33, ossu wrote: > On ...
4 years, 3 months ago (2016-09-20 09:14:45 UTC) #12
ossu
https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc File webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc (right): https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc#newcode63 webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc:63: packet->priority = Packet::kHighestPriority; On 2016/09/20 09:14:45, kwiberg-webrtc wrote: > ...
4 years, 3 months ago (2016-09-20 13:51:56 UTC) #13
kwiberg-webrtc
https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc File webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc (right): https://codereview.webrtc.org/2342443005/diff/1/webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc#newcode63 webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc:63: packet->priority = Packet::kHighestPriority; On 2016/09/20 13:51:56, ossu wrote: > ...
4 years, 3 months ago (2016-09-20 14:56:23 UTC) #14
ossu
https://codereview.webrtc.org/2342443005/diff/20001/webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.cc File webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.cc (right): https://codereview.webrtc.org/2342443005/diff/20001/webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.cc#newcode51 webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.cc:51: } On 2016/09/20 14:56:22, kwiberg-webrtc wrote: > On 2016/09/20 ...
4 years, 3 months ago (2016-09-20 15:45:22 UTC) #15
kwiberg-webrtc
https://codereview.webrtc.org/2342443005/diff/20001/webrtc/modules/audio_coding/neteq/neteq_network_stats_unittest.cc File webrtc/modules/audio_coding/neteq/neteq_network_stats_unittest.cc (right): https://codereview.webrtc.org/2342443005/diff/20001/webrtc/modules/audio_coding/neteq/neteq_network_stats_unittest.cc#newcode58 webrtc/modules/audio_coding/neteq/neteq_network_stats_unittest.cc:58: EXPECT_GE(decoded.size(), output_size); On 2016/09/20 15:45:21, ossu wrote: > On ...
4 years, 3 months ago (2016-09-20 16:19:15 UTC) #16
ossu
https://codereview.webrtc.org/2342443005/diff/40001/webrtc/modules/audio_coding/neteq/packet.h File webrtc/modules/audio_coding/neteq/packet.h (right): https://codereview.webrtc.org/2342443005/diff/40001/webrtc/modules/audio_coding/neteq/packet.h#newcode47 webrtc/modules/audio_coding/neteq/packet.h:47: RTC_DCHECK_GE(red_level, 0); On 2016/09/20 15:45:21, ossu wrote: > On ...
4 years, 3 months ago (2016-09-21 10:23:13 UTC) #17
kwiberg-webrtc
https://codereview.webrtc.org/2342443005/diff/40001/webrtc/modules/audio_coding/neteq/packet.h File webrtc/modules/audio_coding/neteq/packet.h (right): https://codereview.webrtc.org/2342443005/diff/40001/webrtc/modules/audio_coding/neteq/packet.h#newcode47 webrtc/modules/audio_coding/neteq/packet.h:47: RTC_DCHECK_GE(red_level, 0); On 2016/09/21 10:23:12, ossu wrote: > On ...
4 years, 3 months ago (2016-09-21 10:59:14 UTC) #18
ossu
So, all good? https://codereview.webrtc.org/2342443005/diff/60001/webrtc/modules/audio_coding/neteq/packet.h File webrtc/modules/audio_coding/neteq/packet.h (right): https://codereview.webrtc.org/2342443005/diff/60001/webrtc/modules/audio_coding/neteq/packet.h#newcode66 webrtc/modules/audio_coding/neteq/packet.h:66: } On 2016/09/21 10:59:13, kwiberg-webrtc wrote: ...
4 years, 3 months ago (2016-09-21 15:28:12 UTC) #19
kwiberg-webrtc
lgtm https://codereview.webrtc.org/2342443005/diff/60001/webrtc/modules/audio_coding/neteq/packet.h File webrtc/modules/audio_coding/neteq/packet.h (right): https://codereview.webrtc.org/2342443005/diff/60001/webrtc/modules/audio_coding/neteq/packet.h#newcode66 webrtc/modules/audio_coding/neteq/packet.h:66: } On 2016/09/21 15:28:12, ossu wrote: > On ...
4 years, 3 months ago (2016-09-21 17:44:13 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2342443005/60001
4 years, 3 months ago (2016-09-22 08:57:23 UTC) #27
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 3 months ago (2016-09-22 09:06:32 UTC) #28
commit-bot: I haz the power
4 years, 3 months ago (2016-09-22 09:07:10 UTC) #30
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/a70695a3e1e7ead375d4bbc7997cd630d1ac1731
Cr-Commit-Position: refs/heads/master@{#14347}

Powered by Google App Engine
This is Rietveld 408576698