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

Side by Side Diff: webrtc/modules/video_coding/main/source/jitter_buffer_unittest.cc

Issue 1426813002: Update layer indices for non-flexible mode according to updates in the RTP payload profile. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: remove unused ss_map Created 5 years, 1 month 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
« no previous file with comments | « webrtc/modules/video_coding/main/source/jitter_buffer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2011 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
(...skipping 867 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 878
879 bool re = false; 879 bool re = false;
880 packet_->codec = kVideoCodecVP9; 880 packet_->codec = kVideoCodecVP9;
881 packet_->codecSpecificHeader.codec = kRtpVideoVp9; 881 packet_->codecSpecificHeader.codec = kRtpVideoVp9;
882 packet_->isFirstPacket = true; 882 packet_->isFirstPacket = true;
883 packet_->markerBit = true; 883 packet_->markerBit = true;
884 packet_->codecSpecificHeader.codecHeader.VP9.flexible_mode = false; 884 packet_->codecSpecificHeader.codecHeader.VP9.flexible_mode = false;
885 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 0; 885 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 0;
886 packet_->codecSpecificHeader.codecHeader.VP9.beginning_of_frame = true; 886 packet_->codecSpecificHeader.codecHeader.VP9.beginning_of_frame = true;
887 packet_->codecSpecificHeader.codecHeader.VP9.end_of_frame = true; 887 packet_->codecSpecificHeader.codecHeader.VP9.end_of_frame = true;
888 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = kNoTemporalIdx;
889 packet_->codecSpecificHeader.codecHeader.VP9.temporal_up_switch = false; 888 packet_->codecSpecificHeader.codecHeader.VP9.temporal_up_switch = false;
890 889
891 packet_->seqNum = 65485; 890 packet_->seqNum = 65485;
892 packet_->timestamp = 1000; 891 packet_->timestamp = 1000;
893 packet_->frameType = kVideoFrameKey; 892 packet_->frameType = kVideoFrameKey;
894 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 5; 893 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 5;
895 packet_->codecSpecificHeader.codecHeader.VP9.tl0_pic_idx = 200; 894 packet_->codecSpecificHeader.codecHeader.VP9.tl0_pic_idx = 200;
896 packet_->codecSpecificHeader.codecHeader.VP9.gof_idx = 0; 895 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = 0;
897 packet_->codecSpecificHeader.codecHeader.VP9.ss_data_available = true; 896 packet_->codecSpecificHeader.codecHeader.VP9.ss_data_available = true;
898 packet_->codecSpecificHeader.codecHeader.VP9.gof.SetGofInfoVP9( 897 packet_->codecSpecificHeader.codecHeader.VP9.gof.SetGofInfoVP9(
899 kTemporalStructureMode3); // kTemporalStructureMode3: 0-2-1-2.. 898 kTemporalStructureMode3); // kTemporalStructureMode3: 0-2-1-2..
900 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re)); 899 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re));
901 900
902 // Insert next temporal layer 0. 901 // Insert next temporal layer 0.
903 packet_->seqNum = 65489; 902 packet_->seqNum = 65489;
904 packet_->timestamp = 13000; 903 packet_->timestamp = 13000;
905 packet_->frameType = kVideoFrameDelta; 904 packet_->frameType = kVideoFrameDelta;
906 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 9; 905 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 9;
907 packet_->codecSpecificHeader.codecHeader.VP9.tl0_pic_idx = 201; 906 packet_->codecSpecificHeader.codecHeader.VP9.tl0_pic_idx = 201;
908 packet_->codecSpecificHeader.codecHeader.VP9.gof_idx = 0; 907 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = 0;
909 packet_->codecSpecificHeader.codecHeader.VP9.ss_data_available = false; 908 packet_->codecSpecificHeader.codecHeader.VP9.ss_data_available = false;
910 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re)); 909 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re));
911 910
912 VCMEncodedFrame* frame_out = DecodeCompleteFrame(); 911 VCMEncodedFrame* frame_out = DecodeCompleteFrame();
913 EXPECT_EQ(1000U, frame_out->TimeStamp()); 912 EXPECT_EQ(1000U, frame_out->TimeStamp());
914 EXPECT_EQ(kVideoFrameKey, frame_out->FrameType()); 913 EXPECT_EQ(kVideoFrameKey, frame_out->FrameType());
915 jitter_buffer_->ReleaseFrame(frame_out); 914 jitter_buffer_->ReleaseFrame(frame_out);
916 915
917 frame_out = DecodeCompleteFrame(); 916 frame_out = DecodeCompleteFrame();
918 EXPECT_EQ(13000U, frame_out->TimeStamp()); 917 EXPECT_EQ(13000U, frame_out->TimeStamp());
(...skipping 13 matching lines...) Expand all
932 931
933 bool re = false; 932 bool re = false;
934 packet_->codec = kVideoCodecVP9; 933 packet_->codec = kVideoCodecVP9;
935 packet_->codecSpecificHeader.codec = kRtpVideoVp9; 934 packet_->codecSpecificHeader.codec = kRtpVideoVp9;
936 packet_->isFirstPacket = true; 935 packet_->isFirstPacket = true;
937 packet_->markerBit = true; 936 packet_->markerBit = true;
938 packet_->codecSpecificHeader.codecHeader.VP9.flexible_mode = false; 937 packet_->codecSpecificHeader.codecHeader.VP9.flexible_mode = false;
939 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 0; 938 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 0;
940 packet_->codecSpecificHeader.codecHeader.VP9.beginning_of_frame = true; 939 packet_->codecSpecificHeader.codecHeader.VP9.beginning_of_frame = true;
941 packet_->codecSpecificHeader.codecHeader.VP9.end_of_frame = true; 940 packet_->codecSpecificHeader.codecHeader.VP9.end_of_frame = true;
942 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = kNoTemporalIdx;
943 packet_->codecSpecificHeader.codecHeader.VP9.temporal_up_switch = false;
944 packet_->codecSpecificHeader.codecHeader.VP9.tl0_pic_idx = 200; 941 packet_->codecSpecificHeader.codecHeader.VP9.tl0_pic_idx = 200;
945 942
946 packet_->seqNum = 65486; 943 packet_->seqNum = 65486;
947 packet_->timestamp = 6000; 944 packet_->timestamp = 6000;
948 packet_->frameType = kVideoFrameDelta; 945 packet_->frameType = kVideoFrameDelta;
949 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 6; 946 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 6;
950 packet_->codecSpecificHeader.codecHeader.VP9.gof_idx = 1; 947 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = 2;
948 packet_->codecSpecificHeader.codecHeader.VP9.temporal_up_switch = true;
951 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re)); 949 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re));
952 950
953 packet_->seqNum = 65487; 951 packet_->seqNum = 65487;
954 packet_->timestamp = 9000; 952 packet_->timestamp = 9000;
955 packet_->frameType = kVideoFrameDelta; 953 packet_->frameType = kVideoFrameDelta;
956 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 7; 954 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 7;
957 packet_->codecSpecificHeader.codecHeader.VP9.gof_idx = 2; 955 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = 1;
956 packet_->codecSpecificHeader.codecHeader.VP9.temporal_up_switch = true;
958 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re)); 957 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re));
959 958
960 // Insert first frame with SS data. 959 // Insert first frame with SS data.
961 packet_->seqNum = 65485; 960 packet_->seqNum = 65485;
962 packet_->timestamp = 3000; 961 packet_->timestamp = 3000;
963 packet_->frameType = kVideoFrameKey; 962 packet_->frameType = kVideoFrameKey;
964 packet_->width = 352; 963 packet_->width = 352;
965 packet_->height = 288; 964 packet_->height = 288;
966 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 5; 965 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 5;
967 packet_->codecSpecificHeader.codecHeader.VP9.gof_idx = 0; 966 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = 0;
967 packet_->codecSpecificHeader.codecHeader.VP9.temporal_up_switch = false;
968 packet_->codecSpecificHeader.codecHeader.VP9.ss_data_available = true; 968 packet_->codecSpecificHeader.codecHeader.VP9.ss_data_available = true;
969 packet_->codecSpecificHeader.codecHeader.VP9.gof.SetGofInfoVP9( 969 packet_->codecSpecificHeader.codecHeader.VP9.gof.SetGofInfoVP9(
970 kTemporalStructureMode3); // kTemporalStructureMode3: 0-2-1-2.. 970 kTemporalStructureMode3); // kTemporalStructureMode3: 0-2-1-2..
971 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re)); 971 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re));
972 972
973 VCMEncodedFrame* frame_out = DecodeCompleteFrame(); 973 VCMEncodedFrame* frame_out = DecodeCompleteFrame();
974 EXPECT_EQ(3000U, frame_out->TimeStamp()); 974 EXPECT_EQ(3000U, frame_out->TimeStamp());
975 EXPECT_EQ(kVideoFrameKey, frame_out->FrameType()); 975 EXPECT_EQ(kVideoFrameKey, frame_out->FrameType());
976 EXPECT_EQ(0, frame_out->CodecSpecific()->codecSpecific.VP9.temporal_idx); 976 EXPECT_EQ(0, frame_out->CodecSpecific()->codecSpecific.VP9.temporal_idx);
977 EXPECT_FALSE( 977 EXPECT_FALSE(
(...skipping 26 matching lines...) Expand all
1004 // | | | | ss | 1004 // | | | | ss |
1005 // ----------------------------------------- 1005 // -----------------------------------------
1006 // |<-----------tl0idx:200------------>| 1006 // |<-----------tl0idx:200------------>|
1007 1007
1008 bool re = false; 1008 bool re = false;
1009 packet_->codec = kVideoCodecVP9; 1009 packet_->codec = kVideoCodecVP9;
1010 packet_->codecSpecificHeader.codec = kRtpVideoVp9; 1010 packet_->codecSpecificHeader.codec = kRtpVideoVp9;
1011 packet_->codecSpecificHeader.codecHeader.VP9.flexible_mode = false; 1011 packet_->codecSpecificHeader.codecHeader.VP9.flexible_mode = false;
1012 packet_->codecSpecificHeader.codecHeader.VP9.beginning_of_frame = true; 1012 packet_->codecSpecificHeader.codecHeader.VP9.beginning_of_frame = true;
1013 packet_->codecSpecificHeader.codecHeader.VP9.end_of_frame = true; 1013 packet_->codecSpecificHeader.codecHeader.VP9.end_of_frame = true;
1014 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = kNoTemporalIdx;
1015 packet_->codecSpecificHeader.codecHeader.VP9.temporal_up_switch = false;
1016 packet_->codecSpecificHeader.codecHeader.VP9.tl0_pic_idx = 200; 1014 packet_->codecSpecificHeader.codecHeader.VP9.tl0_pic_idx = 200;
1017 1015
1018 packet_->isFirstPacket = true; 1016 packet_->isFirstPacket = true;
1019 packet_->markerBit = false; 1017 packet_->markerBit = false;
1020 packet_->seqNum = 65486; 1018 packet_->seqNum = 65486;
1021 packet_->timestamp = 6000; 1019 packet_->timestamp = 6000;
1022 packet_->frameType = kVideoFrameDelta; 1020 packet_->frameType = kVideoFrameDelta;
1023 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 0; 1021 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 0;
1024 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 6; 1022 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 6;
1025 packet_->codecSpecificHeader.codecHeader.VP9.gof_idx = 1; 1023 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = 1;
1024 packet_->codecSpecificHeader.codecHeader.VP9.temporal_up_switch = true;
1026 EXPECT_EQ(kIncomplete, jitter_buffer_->InsertPacket(*packet_, &re)); 1025 EXPECT_EQ(kIncomplete, jitter_buffer_->InsertPacket(*packet_, &re));
1027 1026
1028 packet_->isFirstPacket = false; 1027 packet_->isFirstPacket = false;
1029 packet_->markerBit = true; 1028 packet_->markerBit = true;
1030 packet_->seqNum = 65487; 1029 packet_->seqNum = 65487;
1031 packet_->frameType = kVideoFrameDelta; 1030 packet_->frameType = kVideoFrameDelta;
1032 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 1; 1031 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 1;
1033 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 6; 1032 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 6;
1034 packet_->codecSpecificHeader.codecHeader.VP9.gof_idx = 1; 1033 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = 1;
1034 packet_->codecSpecificHeader.codecHeader.VP9.temporal_up_switch = true;
1035 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re)); 1035 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re));
1036 1036
1037 packet_->isFirstPacket = false; 1037 packet_->isFirstPacket = false;
1038 packet_->markerBit = true; 1038 packet_->markerBit = true;
1039 packet_->seqNum = 65485; 1039 packet_->seqNum = 65485;
1040 packet_->timestamp = 3000; 1040 packet_->timestamp = 3000;
1041 packet_->frameType = kVideoFrameKey; 1041 packet_->frameType = kVideoFrameKey;
1042 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 1; 1042 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 1;
1043 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 5; 1043 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 5;
1044 packet_->codecSpecificHeader.codecHeader.VP9.gof_idx = 0; 1044 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = 0;
1045 packet_->codecSpecificHeader.codecHeader.VP9.temporal_up_switch = false;
1045 EXPECT_EQ(kIncomplete, jitter_buffer_->InsertPacket(*packet_, &re)); 1046 EXPECT_EQ(kIncomplete, jitter_buffer_->InsertPacket(*packet_, &re));
1046 1047
1047 // Insert first frame with SS data. 1048 // Insert first frame with SS data.
1048 packet_->isFirstPacket = true; 1049 packet_->isFirstPacket = true;
1049 packet_->markerBit = false; 1050 packet_->markerBit = false;
1050 packet_->seqNum = 65484; 1051 packet_->seqNum = 65484;
1051 packet_->frameType = kVideoFrameKey; 1052 packet_->frameType = kVideoFrameKey;
1052 packet_->width = 352; 1053 packet_->width = 352;
1053 packet_->height = 288; 1054 packet_->height = 288;
1054 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 0; 1055 packet_->codecSpecificHeader.codecHeader.VP9.spatial_idx = 0;
1055 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 5; 1056 packet_->codecSpecificHeader.codecHeader.VP9.picture_id = 5;
1056 packet_->codecSpecificHeader.codecHeader.VP9.gof_idx = 0; 1057 packet_->codecSpecificHeader.codecHeader.VP9.temporal_idx = 0;
1058 packet_->codecSpecificHeader.codecHeader.VP9.temporal_up_switch = false;
1057 packet_->codecSpecificHeader.codecHeader.VP9.ss_data_available = true; 1059 packet_->codecSpecificHeader.codecHeader.VP9.ss_data_available = true;
1058 packet_->codecSpecificHeader.codecHeader.VP9.gof.SetGofInfoVP9( 1060 packet_->codecSpecificHeader.codecHeader.VP9.gof.SetGofInfoVP9(
1059 kTemporalStructureMode2); // kTemporalStructureMode3: 0-1-0-1.. 1061 kTemporalStructureMode2); // kTemporalStructureMode3: 0-1-0-1..
1060 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re)); 1062 EXPECT_EQ(kCompleteSession, jitter_buffer_->InsertPacket(*packet_, &re));
1061 1063
1062 VCMEncodedFrame* frame_out = DecodeCompleteFrame(); 1064 VCMEncodedFrame* frame_out = DecodeCompleteFrame();
1063 EXPECT_EQ(3000U, frame_out->TimeStamp()); 1065 EXPECT_EQ(3000U, frame_out->TimeStamp());
1064 EXPECT_EQ(kVideoFrameKey, frame_out->FrameType()); 1066 EXPECT_EQ(kVideoFrameKey, frame_out->FrameType());
1065 EXPECT_EQ(0, frame_out->CodecSpecific()->codecSpecific.VP9.temporal_idx); 1067 EXPECT_EQ(0, frame_out->CodecSpecific()->codecSpecific.VP9.temporal_idx);
1066 EXPECT_FALSE( 1068 EXPECT_FALSE(
(...skipping 1499 matching lines...) Expand 10 before | Expand all | Expand 10 after
2566 2568
2567 // Stream should be decodable from this point. 2569 // Stream should be decodable from this point.
2568 clock_->AdvanceTimeMilliseconds(kDefaultFramePeriodMs); 2570 clock_->AdvanceTimeMilliseconds(kDefaultFramePeriodMs);
2569 InsertFrame(kVideoFrameDelta); 2571 InsertFrame(kVideoFrameDelta);
2570 EXPECT_TRUE(DecodeCompleteFrame()); 2572 EXPECT_TRUE(DecodeCompleteFrame());
2571 nack_list = jitter_buffer_->GetNackList(&extended); 2573 nack_list = jitter_buffer_->GetNackList(&extended);
2572 EXPECT_EQ(0u, nack_list.size()); 2574 EXPECT_EQ(0u, nack_list.size());
2573 } 2575 }
2574 2576
2575 } // namespace webrtc 2577 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/video_coding/main/source/jitter_buffer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698