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

Side by Side Diff: webrtc/modules/audio_coding/neteq/payload_splitter_unittest.cc

Issue 1697823002: Replace scoped_ptr with unique_ptr in webrtc/modules/audio_coding/neteq/ (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@up-codecs
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 // Unit tests for PayloadSplitter class. 11 // Unit tests for PayloadSplitter class.
12 12
13 #include "webrtc/modules/audio_coding/neteq/payload_splitter.h" 13 #include "webrtc/modules/audio_coding/neteq/payload_splitter.h"
14 14
15 #include <assert.h> 15 #include <assert.h>
16 16
17 #include <memory>
17 #include <utility> // pair 18 #include <utility> // pair
18 19
19 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
20 #include "webrtc/base/scoped_ptr.h"
21 #include "webrtc/modules/audio_coding/neteq/mock/mock_decoder_database.h" 21 #include "webrtc/modules/audio_coding/neteq/mock/mock_decoder_database.h"
22 #include "webrtc/modules/audio_coding/neteq/packet.h" 22 #include "webrtc/modules/audio_coding/neteq/packet.h"
23 23
24 using ::testing::Return; 24 using ::testing::Return;
25 using ::testing::ReturnNull; 25 using ::testing::ReturnNull;
26 26
27 namespace webrtc { 27 namespace webrtc {
28 28
29 static const int kRedPayloadType = 100; 29 static const int kRedPayloadType = 100;
30 static const size_t kPayloadLength = 10; 30 static const size_t kPayloadLength = 10;
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 PacketList packet_list; 364 PacketList packet_list;
365 for (uint8_t i = 0; i < 6; ++i) { 365 for (uint8_t i = 0; i < 6; ++i) {
366 // Let the payload type be |i|, and the payload value 10 * |i|. 366 // Let the payload type be |i|, and the payload value 10 * |i|.
367 packet_list.push_back(CreatePacket(i, kPayloadLength, 10 * i)); 367 packet_list.push_back(CreatePacket(i, kPayloadLength, 10 * i));
368 } 368 }
369 369
370 MockDecoderDatabase decoder_database; 370 MockDecoderDatabase decoder_database;
371 // Tell the mock decoder database to return DecoderInfo structs with different 371 // Tell the mock decoder database to return DecoderInfo structs with different
372 // codec types. 372 // codec types.
373 // Use scoped pointers to avoid having to delete them later. 373 // Use scoped pointers to avoid having to delete them later.
374 rtc::scoped_ptr<DecoderDatabase::DecoderInfo> info0( 374 std::unique_ptr<DecoderDatabase::DecoderInfo> info0(
375 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderISAC, 16000, NULL, 375 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderISAC, 16000, NULL,
376 false)); 376 false));
377 EXPECT_CALL(decoder_database, GetDecoderInfo(0)) 377 EXPECT_CALL(decoder_database, GetDecoderInfo(0))
378 .WillRepeatedly(Return(info0.get())); 378 .WillRepeatedly(Return(info0.get()));
379 rtc::scoped_ptr<DecoderDatabase::DecoderInfo> info1( 379 std::unique_ptr<DecoderDatabase::DecoderInfo> info1(
380 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderISACswb, 32000, 380 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderISACswb, 32000,
381 NULL, false)); 381 NULL, false));
382 EXPECT_CALL(decoder_database, GetDecoderInfo(1)) 382 EXPECT_CALL(decoder_database, GetDecoderInfo(1))
383 .WillRepeatedly(Return(info1.get())); 383 .WillRepeatedly(Return(info1.get()));
384 rtc::scoped_ptr<DecoderDatabase::DecoderInfo> info2( 384 std::unique_ptr<DecoderDatabase::DecoderInfo> info2(
385 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderRED, 8000, NULL, 385 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderRED, 8000, NULL,
386 false)); 386 false));
387 EXPECT_CALL(decoder_database, GetDecoderInfo(2)) 387 EXPECT_CALL(decoder_database, GetDecoderInfo(2))
388 .WillRepeatedly(Return(info2.get())); 388 .WillRepeatedly(Return(info2.get()));
389 rtc::scoped_ptr<DecoderDatabase::DecoderInfo> info3( 389 std::unique_ptr<DecoderDatabase::DecoderInfo> info3(
390 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderAVT, 8000, NULL, 390 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderAVT, 8000, NULL,
391 false)); 391 false));
392 EXPECT_CALL(decoder_database, GetDecoderInfo(3)) 392 EXPECT_CALL(decoder_database, GetDecoderInfo(3))
393 .WillRepeatedly(Return(info3.get())); 393 .WillRepeatedly(Return(info3.get()));
394 rtc::scoped_ptr<DecoderDatabase::DecoderInfo> info4( 394 std::unique_ptr<DecoderDatabase::DecoderInfo> info4(
395 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderCNGnb, 8000, NULL, 395 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderCNGnb, 8000, NULL,
396 false)); 396 false));
397 EXPECT_CALL(decoder_database, GetDecoderInfo(4)) 397 EXPECT_CALL(decoder_database, GetDecoderInfo(4))
398 .WillRepeatedly(Return(info4.get())); 398 .WillRepeatedly(Return(info4.get()));
399 rtc::scoped_ptr<DecoderDatabase::DecoderInfo> info5( 399 std::unique_ptr<DecoderDatabase::DecoderInfo> info5(
400 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderArbitrary, 8000, 400 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderArbitrary, 8000,
401 NULL, false)); 401 NULL, false));
402 EXPECT_CALL(decoder_database, GetDecoderInfo(5)) 402 EXPECT_CALL(decoder_database, GetDecoderInfo(5))
403 .WillRepeatedly(Return(info5.get())); 403 .WillRepeatedly(Return(info5.get()));
404 404
405 PayloadSplitter splitter; 405 PayloadSplitter splitter;
406 EXPECT_EQ(0, splitter.SplitAudio(&packet_list, decoder_database)); 406 EXPECT_EQ(0, splitter.SplitAudio(&packet_list, decoder_database));
407 EXPECT_EQ(6u, packet_list.size()); 407 EXPECT_EQ(6u, packet_list.size());
408 408
409 // Check that all payloads are intact. 409 // Check that all payloads are intact.
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 size_t payload_size_bytes = payload_size_ms * bytes_per_ms_; 528 size_t payload_size_bytes = payload_size_ms * bytes_per_ms_;
529 packet_list.push_back(CreatePacket(kPayloadType, payload_size_bytes, 529 packet_list.push_back(CreatePacket(kPayloadType, payload_size_bytes,
530 payload_size_ms)); 530 payload_size_ms));
531 } 531 }
532 532
533 MockDecoderDatabase decoder_database; 533 MockDecoderDatabase decoder_database;
534 // Tell the mock decoder database to return DecoderInfo structs with different 534 // Tell the mock decoder database to return DecoderInfo structs with different
535 // codec types. 535 // codec types.
536 // Use scoped pointers to avoid having to delete them later. 536 // Use scoped pointers to avoid having to delete them later.
537 // (Sample rate is set to 8000 Hz, but does not matter.) 537 // (Sample rate is set to 8000 Hz, but does not matter.)
538 rtc::scoped_ptr<DecoderDatabase::DecoderInfo> info( 538 std::unique_ptr<DecoderDatabase::DecoderInfo> info(
539 new DecoderDatabase::DecoderInfo(decoder_type_, 8000, NULL, false)); 539 new DecoderDatabase::DecoderInfo(decoder_type_, 8000, NULL, false));
540 EXPECT_CALL(decoder_database, GetDecoderInfo(kPayloadType)) 540 EXPECT_CALL(decoder_database, GetDecoderInfo(kPayloadType))
541 .WillRepeatedly(Return(info.get())); 541 .WillRepeatedly(Return(info.get()));
542 542
543 PayloadSplitter splitter; 543 PayloadSplitter splitter;
544 EXPECT_EQ(0, splitter.SplitAudio(&packet_list, decoder_database)); 544 EXPECT_EQ(0, splitter.SplitAudio(&packet_list, decoder_database));
545 // The payloads are expected to be split as follows: 545 // The payloads are expected to be split as follows:
546 // 10 ms -> 10 ms 546 // 10 ms -> 10 ms
547 // 20 ms -> 20 ms 547 // 20 ms -> 20 ms
548 // 30 ms -> 30 ms 548 // 30 ms -> 30 ms
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 // Fill payload with increasing integers {0, 1, 2, ...}. 615 // Fill payload with increasing integers {0, 1, 2, ...}.
616 for (size_t i = 0; i < packet->payload_length; ++i) { 616 for (size_t i = 0; i < packet->payload_length; ++i) {
617 packet->payload[i] = static_cast<uint8_t>(i); 617 packet->payload[i] = static_cast<uint8_t>(i);
618 } 618 }
619 packet_list.push_back(packet); 619 packet_list.push_back(packet);
620 620
621 MockDecoderDatabase decoder_database; 621 MockDecoderDatabase decoder_database;
622 // Tell the mock decoder database to return DecoderInfo structs with different 622 // Tell the mock decoder database to return DecoderInfo structs with different
623 // codec types. 623 // codec types.
624 // Use scoped pointers to avoid having to delete them later. 624 // Use scoped pointers to avoid having to delete them later.
625 rtc::scoped_ptr<DecoderDatabase::DecoderInfo> info( 625 std::unique_ptr<DecoderDatabase::DecoderInfo> info(
626 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderILBC, 8000, NULL, 626 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderILBC, 8000, NULL,
627 false)); 627 false));
628 EXPECT_CALL(decoder_database, GetDecoderInfo(kPayloadType)) 628 EXPECT_CALL(decoder_database, GetDecoderInfo(kPayloadType))
629 .WillRepeatedly(Return(info.get())); 629 .WillRepeatedly(Return(info.get()));
630 630
631 PayloadSplitter splitter; 631 PayloadSplitter splitter;
632 EXPECT_EQ(0, splitter.SplitAudio(&packet_list, decoder_database)); 632 EXPECT_EQ(0, splitter.SplitAudio(&packet_list, decoder_database));
633 EXPECT_EQ(num_frames_, packet_list.size()); 633 EXPECT_EQ(num_frames_, packet_list.size());
634 634
635 PacketList::iterator it = packet_list.begin(); 635 PacketList::iterator it = packet_list.begin();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 679
680 // Test too large payload size. 680 // Test too large payload size.
681 TEST(IlbcPayloadSplitter, TooLargePayload) { 681 TEST(IlbcPayloadSplitter, TooLargePayload) {
682 PacketList packet_list; 682 PacketList packet_list;
683 static const uint8_t kPayloadType = 17; // Just a random number. 683 static const uint8_t kPayloadType = 17; // Just a random number.
684 size_t kPayloadLengthBytes = 950; 684 size_t kPayloadLengthBytes = 950;
685 Packet* packet = CreatePacket(kPayloadType, kPayloadLengthBytes, 0); 685 Packet* packet = CreatePacket(kPayloadType, kPayloadLengthBytes, 0);
686 packet_list.push_back(packet); 686 packet_list.push_back(packet);
687 687
688 MockDecoderDatabase decoder_database; 688 MockDecoderDatabase decoder_database;
689 rtc::scoped_ptr<DecoderDatabase::DecoderInfo> info( 689 std::unique_ptr<DecoderDatabase::DecoderInfo> info(
690 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderILBC, 8000, NULL, 690 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderILBC, 8000, NULL,
691 false)); 691 false));
692 EXPECT_CALL(decoder_database, GetDecoderInfo(kPayloadType)) 692 EXPECT_CALL(decoder_database, GetDecoderInfo(kPayloadType))
693 .WillRepeatedly(Return(info.get())); 693 .WillRepeatedly(Return(info.get()));
694 694
695 PayloadSplitter splitter; 695 PayloadSplitter splitter;
696 EXPECT_EQ(PayloadSplitter::kTooLargePayload, 696 EXPECT_EQ(PayloadSplitter::kTooLargePayload,
697 splitter.SplitAudio(&packet_list, decoder_database)); 697 splitter.SplitAudio(&packet_list, decoder_database));
698 EXPECT_EQ(1u, packet_list.size()); 698 EXPECT_EQ(1u, packet_list.size());
699 699
(...skipping 11 matching lines...) Expand all
711 711
712 // Payload not an integer number of frames. 712 // Payload not an integer number of frames.
713 TEST(IlbcPayloadSplitter, UnevenPayload) { 713 TEST(IlbcPayloadSplitter, UnevenPayload) {
714 PacketList packet_list; 714 PacketList packet_list;
715 static const uint8_t kPayloadType = 17; // Just a random number. 715 static const uint8_t kPayloadType = 17; // Just a random number.
716 size_t kPayloadLengthBytes = 39; // Not an even number of frames. 716 size_t kPayloadLengthBytes = 39; // Not an even number of frames.
717 Packet* packet = CreatePacket(kPayloadType, kPayloadLengthBytes, 0); 717 Packet* packet = CreatePacket(kPayloadType, kPayloadLengthBytes, 0);
718 packet_list.push_back(packet); 718 packet_list.push_back(packet);
719 719
720 MockDecoderDatabase decoder_database; 720 MockDecoderDatabase decoder_database;
721 rtc::scoped_ptr<DecoderDatabase::DecoderInfo> info( 721 std::unique_ptr<DecoderDatabase::DecoderInfo> info(
722 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderILBC, 8000, NULL, 722 new DecoderDatabase::DecoderInfo(NetEqDecoder::kDecoderILBC, 8000, NULL,
723 false)); 723 false));
724 EXPECT_CALL(decoder_database, GetDecoderInfo(kPayloadType)) 724 EXPECT_CALL(decoder_database, GetDecoderInfo(kPayloadType))
725 .WillRepeatedly(Return(info.get())); 725 .WillRepeatedly(Return(info.get()));
726 726
727 PayloadSplitter splitter; 727 PayloadSplitter splitter;
728 EXPECT_EQ(PayloadSplitter::kFrameSplitError, 728 EXPECT_EQ(PayloadSplitter::kFrameSplitError,
729 splitter.SplitAudio(&packet_list, decoder_database)); 729 splitter.SplitAudio(&packet_list, decoder_database));
730 EXPECT_EQ(1u, packet_list.size()); 730 EXPECT_EQ(1u, packet_list.size());
731 731
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 EXPECT_EQ(kBaseTimestamp - kTimestampOffset, packet->header.timestamp); 853 EXPECT_EQ(kBaseTimestamp - kTimestampOffset, packet->header.timestamp);
854 EXPECT_EQ(kPayloadLength, packet->payload_length); 854 EXPECT_EQ(kPayloadLength, packet->payload_length);
855 EXPECT_TRUE(packet->primary); 855 EXPECT_TRUE(packet->primary);
856 EXPECT_EQ(packet->payload[3], 0); 856 EXPECT_EQ(packet->payload[3], 0);
857 delete [] packet->payload; 857 delete [] packet->payload;
858 delete packet; 858 delete packet;
859 packet_list.pop_front(); 859 packet_list.pop_front();
860 } 860 }
861 861
862 } // namespace webrtc 862 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/neteq/normal_unittest.cc ('k') | webrtc/modules/audio_coding/neteq/test/audio_classifier_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698