| Index: webrtc/modules/audio_coding/neteq/test/neteq_opus_quality_test.cc | 
| diff --git a/webrtc/modules/audio_coding/neteq/test/neteq_opus_quality_test.cc b/webrtc/modules/audio_coding/neteq/test/neteq_opus_quality_test.cc | 
| index 5ab55ba9e80262feca10b3ffecd3aa5c843c18b8..baa0d67aded47da5080feca0891d32bebf5a3bfe 100644 | 
| --- a/webrtc/modules/audio_coding/neteq/test/neteq_opus_quality_test.cc | 
| +++ b/webrtc/modules/audio_coding/neteq/test/neteq_opus_quality_test.cc | 
| @@ -104,7 +104,7 @@ class NetEqOpusQualityTest : public NetEqQualityTest { | 
| void SetUp() override; | 
| void TearDown() override; | 
| virtual int EncodeBlock(int16_t* in_data, size_t block_size_samples, | 
| -                          uint8_t* payload, size_t max_bytes); | 
| +                          rtc::Buffer* payload, size_t max_bytes); | 
| private: | 
| WebRtcOpusEncInst* opus_encoder_; | 
| OpusRepacketizer* repacketizer_; | 
| @@ -175,25 +175,33 @@ void NetEqOpusQualityTest::TearDown() { | 
|  | 
| int NetEqOpusQualityTest::EncodeBlock(int16_t* in_data, | 
| size_t block_size_samples, | 
| -                                      uint8_t* payload, size_t max_bytes) { | 
| +                                      rtc::Buffer* payload, size_t max_bytes) { | 
| EXPECT_EQ(block_size_samples, sub_block_size_samples_ * sub_packets_); | 
| int16_t* pointer = in_data; | 
| int value; | 
| opus_repacketizer_init(repacketizer_); | 
| for (int idx = 0; idx < sub_packets_; idx++) { | 
| -    value = WebRtcOpus_Encode(opus_encoder_, pointer, sub_block_size_samples_, | 
| -                              max_bytes, payload); | 
| -    Log() << "Encoded a frame with Opus mode " | 
| -          << (value == 0 ? 0 : payload[0] >> 3) | 
| -          << std::endl; | 
| -    if (OPUS_OK != opus_repacketizer_cat(repacketizer_, payload, value)) { | 
| +    payload->AppendData(max_bytes, [&] (rtc::ArrayView<uint8_t> payload) { | 
| +        value = WebRtcOpus_Encode(opus_encoder_, | 
| +                                  pointer, sub_block_size_samples_, | 
| +                                  max_bytes, payload.data()); | 
| + | 
| +        Log() << "Encoded a frame with Opus mode " | 
| +              << (value == 0 ? 0 : payload[0] >> 3) | 
| +              << std::endl; | 
| + | 
| +        return (value >= 0) ? static_cast<size_t>(value) : 0; | 
| +      }); | 
| + | 
| +    if (OPUS_OK != opus_repacketizer_cat(repacketizer_, | 
| +                                         payload->data(), value)) { | 
| opus_repacketizer_init(repacketizer_); | 
| // If the repacketization fails, we discard this frame. | 
| return 0; | 
| } | 
| pointer += sub_block_size_samples_ * channels_; | 
| } | 
| -  value = opus_repacketizer_out(repacketizer_, payload, | 
| +  value = opus_repacketizer_out(repacketizer_, payload->data(), | 
| static_cast<opus_int32>(max_bytes)); | 
| EXPECT_GE(value, 0); | 
| return value; | 
|  |