| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 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 15 matching lines...) Expand all Loading... |
| 26 | 26 |
| 27 class FakePacketBuffer : public PacketBuffer { | 27 class FakePacketBuffer : public PacketBuffer { |
| 28 public: | 28 public: |
| 29 FakePacketBuffer() : PacketBuffer(nullptr, 0, 0, nullptr) {} | 29 FakePacketBuffer() : PacketBuffer(nullptr, 0, 0, nullptr) {} |
| 30 | 30 |
| 31 VCMPacket* GetPacket(uint16_t seq_num) override { | 31 VCMPacket* GetPacket(uint16_t seq_num) override { |
| 32 auto packet_it = packets_.find(seq_num); | 32 auto packet_it = packets_.find(seq_num); |
| 33 return packet_it == packets_.end() ? nullptr : &packet_it->second; | 33 return packet_it == packets_.end() ? nullptr : &packet_it->second; |
| 34 } | 34 } |
| 35 | 35 |
| 36 bool InsertPacket(const VCMPacket& packet) override { | 36 bool InsertPacket(VCMPacket* packet) override { |
| 37 packets_[packet.seqNum] = packet; | 37 packets_[packet->seqNum] = *packet; |
| 38 return true; | 38 return true; |
| 39 } | 39 } |
| 40 | 40 |
| 41 bool GetBitstream(const RtpFrameObject& frame, | 41 bool GetBitstream(const RtpFrameObject& frame, |
| 42 uint8_t* destination) override { | 42 uint8_t* destination) override { |
| 43 return true; | 43 return true; |
| 44 } | 44 } |
| 45 | 45 |
| 46 void ReturnFrame(RtpFrameObject* frame) override { | 46 void ReturnFrame(RtpFrameObject* frame) override { |
| 47 packets_.erase(frame->first_seq_num()); | 47 packets_.erase(frame->first_seq_num()); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 76 std::make_pair(std::make_pair(pid, sidx), std::move(frame))); | 76 std::make_pair(std::make_pair(pid, sidx), std::move(frame))); |
| 77 } | 77 } |
| 78 | 78 |
| 79 void InsertGeneric(uint16_t seq_num_start, | 79 void InsertGeneric(uint16_t seq_num_start, |
| 80 uint16_t seq_num_end, | 80 uint16_t seq_num_end, |
| 81 bool keyframe) { | 81 bool keyframe) { |
| 82 VCMPacket packet; | 82 VCMPacket packet; |
| 83 packet.codec = kVideoCodecGeneric; | 83 packet.codec = kVideoCodecGeneric; |
| 84 packet.seqNum = seq_num_start; | 84 packet.seqNum = seq_num_start; |
| 85 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta; | 85 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta; |
| 86 ref_packet_buffer_->InsertPacket(packet); | 86 ref_packet_buffer_->InsertPacket(&packet); |
| 87 | 87 |
| 88 packet.seqNum = seq_num_end; | 88 packet.seqNum = seq_num_end; |
| 89 packet.markerBit = true; | 89 packet.markerBit = true; |
| 90 ref_packet_buffer_->InsertPacket(packet); | 90 ref_packet_buffer_->InsertPacket(&packet); |
| 91 | 91 |
| 92 std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject( | 92 std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject( |
| 93 ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0)); | 93 ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0)); |
| 94 reference_finder_->ManageFrame(std::move(frame)); | 94 reference_finder_->ManageFrame(std::move(frame)); |
| 95 } | 95 } |
| 96 | 96 |
| 97 void InsertVp8(uint16_t seq_num_start, | 97 void InsertVp8(uint16_t seq_num_start, |
| 98 uint16_t seq_num_end, | 98 uint16_t seq_num_end, |
| 99 bool keyframe, | 99 bool keyframe, |
| 100 int32_t pid = kNoPictureId, | 100 int32_t pid = kNoPictureId, |
| 101 uint8_t tid = kNoTemporalIdx, | 101 uint8_t tid = kNoTemporalIdx, |
| 102 int32_t tl0 = kNoTl0PicIdx, | 102 int32_t tl0 = kNoTl0PicIdx, |
| 103 bool sync = false) { | 103 bool sync = false) { |
| 104 VCMPacket packet; | 104 VCMPacket packet; |
| 105 packet.codec = kVideoCodecVP8; | 105 packet.codec = kVideoCodecVP8; |
| 106 packet.seqNum = seq_num_start; | 106 packet.seqNum = seq_num_start; |
| 107 packet.markerBit = (seq_num_start == seq_num_end); | 107 packet.markerBit = (seq_num_start == seq_num_end); |
| 108 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta; | 108 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta; |
| 109 packet.video_header.codecHeader.VP8.pictureId = pid % (1 << 15); | 109 packet.video_header.codecHeader.VP8.pictureId = pid % (1 << 15); |
| 110 packet.video_header.codecHeader.VP8.temporalIdx = tid; | 110 packet.video_header.codecHeader.VP8.temporalIdx = tid; |
| 111 packet.video_header.codecHeader.VP8.tl0PicIdx = tl0; | 111 packet.video_header.codecHeader.VP8.tl0PicIdx = tl0; |
| 112 packet.video_header.codecHeader.VP8.layerSync = sync; | 112 packet.video_header.codecHeader.VP8.layerSync = sync; |
| 113 ref_packet_buffer_->InsertPacket(packet); | 113 ref_packet_buffer_->InsertPacket(&packet); |
| 114 | 114 |
| 115 if (seq_num_start != seq_num_end) { | 115 if (seq_num_start != seq_num_end) { |
| 116 packet.seqNum = seq_num_end; | 116 packet.seqNum = seq_num_end; |
| 117 packet.markerBit = true; | 117 packet.markerBit = true; |
| 118 ref_packet_buffer_->InsertPacket(packet); | 118 ref_packet_buffer_->InsertPacket(&packet); |
| 119 } | 119 } |
| 120 | 120 |
| 121 std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject( | 121 std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject( |
| 122 ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0)); | 122 ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0)); |
| 123 reference_finder_->ManageFrame(std::move(frame)); | 123 reference_finder_->ManageFrame(std::move(frame)); |
| 124 } | 124 } |
| 125 | 125 |
| 126 void InsertVp9Gof(uint16_t seq_num_start, | 126 void InsertVp9Gof(uint16_t seq_num_start, |
| 127 uint16_t seq_num_end, | 127 uint16_t seq_num_end, |
| 128 bool keyframe, | 128 bool keyframe, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 141 packet.video_header.codecHeader.VP9.flexible_mode = false; | 141 packet.video_header.codecHeader.VP9.flexible_mode = false; |
| 142 packet.video_header.codecHeader.VP9.picture_id = pid % (1 << 15); | 142 packet.video_header.codecHeader.VP9.picture_id = pid % (1 << 15); |
| 143 packet.video_header.codecHeader.VP9.temporal_idx = tid; | 143 packet.video_header.codecHeader.VP9.temporal_idx = tid; |
| 144 packet.video_header.codecHeader.VP9.spatial_idx = sid; | 144 packet.video_header.codecHeader.VP9.spatial_idx = sid; |
| 145 packet.video_header.codecHeader.VP9.tl0_pic_idx = tl0; | 145 packet.video_header.codecHeader.VP9.tl0_pic_idx = tl0; |
| 146 packet.video_header.codecHeader.VP9.temporal_up_switch = up_switch; | 146 packet.video_header.codecHeader.VP9.temporal_up_switch = up_switch; |
| 147 if (ss != nullptr) { | 147 if (ss != nullptr) { |
| 148 packet.video_header.codecHeader.VP9.ss_data_available = true; | 148 packet.video_header.codecHeader.VP9.ss_data_available = true; |
| 149 packet.video_header.codecHeader.VP9.gof = *ss; | 149 packet.video_header.codecHeader.VP9.gof = *ss; |
| 150 } | 150 } |
| 151 ref_packet_buffer_->InsertPacket(packet); | 151 ref_packet_buffer_->InsertPacket(&packet); |
| 152 | 152 |
| 153 if (seq_num_start != seq_num_end) { | 153 if (seq_num_start != seq_num_end) { |
| 154 packet.markerBit = true; | 154 packet.markerBit = true; |
| 155 packet.video_header.codecHeader.VP9.ss_data_available = false; | 155 packet.video_header.codecHeader.VP9.ss_data_available = false; |
| 156 packet.seqNum = seq_num_end; | 156 packet.seqNum = seq_num_end; |
| 157 ref_packet_buffer_->InsertPacket(packet); | 157 ref_packet_buffer_->InsertPacket(&packet); |
| 158 } | 158 } |
| 159 | 159 |
| 160 std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject( | 160 std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject( |
| 161 ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0)); | 161 ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0)); |
| 162 reference_finder_->ManageFrame(std::move(frame)); | 162 reference_finder_->ManageFrame(std::move(frame)); |
| 163 } | 163 } |
| 164 | 164 |
| 165 void InsertVp9Flex(uint16_t seq_num_start, | 165 void InsertVp9Flex(uint16_t seq_num_start, |
| 166 uint16_t seq_num_end, | 166 uint16_t seq_num_end, |
| 167 bool keyframe, | 167 bool keyframe, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 179 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta; | 179 packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta; |
| 180 packet.video_header.codecHeader.VP9.inter_layer_predicted = inter; | 180 packet.video_header.codecHeader.VP9.inter_layer_predicted = inter; |
| 181 packet.video_header.codecHeader.VP9.flexible_mode = true; | 181 packet.video_header.codecHeader.VP9.flexible_mode = true; |
| 182 packet.video_header.codecHeader.VP9.picture_id = pid % (1 << 15); | 182 packet.video_header.codecHeader.VP9.picture_id = pid % (1 << 15); |
| 183 packet.video_header.codecHeader.VP9.temporal_idx = tid; | 183 packet.video_header.codecHeader.VP9.temporal_idx = tid; |
| 184 packet.video_header.codecHeader.VP9.spatial_idx = sid; | 184 packet.video_header.codecHeader.VP9.spatial_idx = sid; |
| 185 packet.video_header.codecHeader.VP9.tl0_pic_idx = tl0; | 185 packet.video_header.codecHeader.VP9.tl0_pic_idx = tl0; |
| 186 packet.video_header.codecHeader.VP9.num_ref_pics = refs.size(); | 186 packet.video_header.codecHeader.VP9.num_ref_pics = refs.size(); |
| 187 for (size_t i = 0; i < refs.size(); ++i) | 187 for (size_t i = 0; i < refs.size(); ++i) |
| 188 packet.video_header.codecHeader.VP9.pid_diff[i] = refs[i]; | 188 packet.video_header.codecHeader.VP9.pid_diff[i] = refs[i]; |
| 189 ref_packet_buffer_->InsertPacket(packet); | 189 ref_packet_buffer_->InsertPacket(&packet); |
| 190 | 190 |
| 191 if (seq_num_start != seq_num_end) { | 191 if (seq_num_start != seq_num_end) { |
| 192 packet.seqNum = seq_num_end; | 192 packet.seqNum = seq_num_end; |
| 193 packet.markerBit = true; | 193 packet.markerBit = true; |
| 194 ref_packet_buffer_->InsertPacket(packet); | 194 ref_packet_buffer_->InsertPacket(&packet); |
| 195 } | 195 } |
| 196 | 196 |
| 197 std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject( | 197 std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject( |
| 198 ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0)); | 198 ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0)); |
| 199 reference_finder_->ManageFrame(std::move(frame)); | 199 reference_finder_->ManageFrame(std::move(frame)); |
| 200 } | 200 } |
| 201 | 201 |
| 202 // Check if a frame with picture id |pid| and spatial index |sidx| has been | 202 // Check if a frame with picture id |pid| and spatial index |sidx| has been |
| 203 // delivered from the packet buffer, and if so, if it has the references | 203 // delivered from the packet buffer, and if so, if it has the references |
| 204 // specified by |refs|. | 204 // specified by |refs|. |
| (...skipping 1058 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1263 packet.video_header.codecHeader.VP9.flexible_mode = false; | 1263 packet.video_header.codecHeader.VP9.flexible_mode = false; |
| 1264 packet.video_header.codecHeader.VP9.picture_id = 1; | 1264 packet.video_header.codecHeader.VP9.picture_id = 1; |
| 1265 packet.video_header.codecHeader.VP9.temporal_idx = 0; | 1265 packet.video_header.codecHeader.VP9.temporal_idx = 0; |
| 1266 packet.video_header.codecHeader.VP9.spatial_idx = 0; | 1266 packet.video_header.codecHeader.VP9.spatial_idx = 0; |
| 1267 packet.video_header.codecHeader.VP9.tl0_pic_idx = 0; | 1267 packet.video_header.codecHeader.VP9.tl0_pic_idx = 0; |
| 1268 packet.video_header.codecHeader.VP9.temporal_up_switch = true; | 1268 packet.video_header.codecHeader.VP9.temporal_up_switch = true; |
| 1269 packet.video_header.codecHeader.VP9.ss_data_available = true; | 1269 packet.video_header.codecHeader.VP9.ss_data_available = true; |
| 1270 packet.video_header.codecHeader.VP9.gof = ss; | 1270 packet.video_header.codecHeader.VP9.gof = ss; |
| 1271 | 1271 |
| 1272 { | 1272 { |
| 1273 ref_packet_buffer_->InsertPacket(packet); | 1273 ref_packet_buffer_->InsertPacket(&packet); |
| 1274 std::unique_ptr<RtpFrameObject> frame( | 1274 std::unique_ptr<RtpFrameObject> frame( |
| 1275 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1275 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1276 reference_finder_->ManageFrame(std::move(frame)); | 1276 reference_finder_->ManageFrame(std::move(frame)); |
| 1277 } | 1277 } |
| 1278 | 1278 |
| 1279 // Timestamp goes forward but pid goes backwards. | 1279 // Timestamp goes forward but pid goes backwards. |
| 1280 packet.timestamp = 1; | 1280 packet.timestamp = 1; |
| 1281 packet.video_header.codecHeader.VP9.picture_id = 0; | 1281 packet.video_header.codecHeader.VP9.picture_id = 0; |
| 1282 | 1282 |
| 1283 { | 1283 { |
| 1284 ref_packet_buffer_->InsertPacket(packet); | 1284 ref_packet_buffer_->InsertPacket(&packet); |
| 1285 std::unique_ptr<RtpFrameObject> frame( | 1285 std::unique_ptr<RtpFrameObject> frame( |
| 1286 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1286 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1287 reference_finder_->ManageFrame(std::move(frame)); | 1287 reference_finder_->ManageFrame(std::move(frame)); |
| 1288 } | 1288 } |
| 1289 | 1289 |
| 1290 packet.timestamp = 2; | 1290 packet.timestamp = 2; |
| 1291 packet.video_header.codecHeader.VP9.picture_id = 5000; | 1291 packet.video_header.codecHeader.VP9.picture_id = 5000; |
| 1292 | 1292 |
| 1293 { | 1293 { |
| 1294 ref_packet_buffer_->InsertPacket(packet); | 1294 ref_packet_buffer_->InsertPacket(&packet); |
| 1295 std::unique_ptr<RtpFrameObject> frame( | 1295 std::unique_ptr<RtpFrameObject> frame( |
| 1296 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1296 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1297 reference_finder_->ManageFrame(std::move(frame)); | 1297 reference_finder_->ManageFrame(std::move(frame)); |
| 1298 } | 1298 } |
| 1299 | 1299 |
| 1300 ASSERT_EQ(3UL, frames_from_callback_.size()); | 1300 ASSERT_EQ(3UL, frames_from_callback_.size()); |
| 1301 CheckReferencesVp9(1, 0); | 1301 CheckReferencesVp9(1, 0); |
| 1302 CheckReferencesVp9(129, 0); | 1302 CheckReferencesVp9(129, 0); |
| 1303 CheckReferencesVp9(257, 0); | 1303 CheckReferencesVp9(257, 0); |
| 1304 } | 1304 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1316 packet.markerBit = true; | 1316 packet.markerBit = true; |
| 1317 packet.video_header.codecHeader.VP9.flexible_mode = false; | 1317 packet.video_header.codecHeader.VP9.flexible_mode = false; |
| 1318 packet.video_header.codecHeader.VP9.picture_id = 0; | 1318 packet.video_header.codecHeader.VP9.picture_id = 0; |
| 1319 packet.video_header.codecHeader.VP9.temporal_idx = 0; | 1319 packet.video_header.codecHeader.VP9.temporal_idx = 0; |
| 1320 packet.video_header.codecHeader.VP9.spatial_idx = 0; | 1320 packet.video_header.codecHeader.VP9.spatial_idx = 0; |
| 1321 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; | 1321 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; |
| 1322 packet.video_header.codecHeader.VP9.temporal_up_switch = true; | 1322 packet.video_header.codecHeader.VP9.temporal_up_switch = true; |
| 1323 packet.video_header.codecHeader.VP9.ss_data_available = true; | 1323 packet.video_header.codecHeader.VP9.ss_data_available = true; |
| 1324 packet.video_header.codecHeader.VP9.gof = ss; | 1324 packet.video_header.codecHeader.VP9.gof = ss; |
| 1325 { | 1325 { |
| 1326 ref_packet_buffer_->InsertPacket(packet); | 1326 ref_packet_buffer_->InsertPacket(&packet); |
| 1327 std::unique_ptr<RtpFrameObject> frame( | 1327 std::unique_ptr<RtpFrameObject> frame( |
| 1328 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1328 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1329 reference_finder_->ManageFrame(std::move(frame)); | 1329 reference_finder_->ManageFrame(std::move(frame)); |
| 1330 } | 1330 } |
| 1331 | 1331 |
| 1332 packet.timestamp = 1; | 1332 packet.timestamp = 1; |
| 1333 packet.video_header.codecHeader.VP9.picture_id = 1; | 1333 packet.video_header.codecHeader.VP9.picture_id = 1; |
| 1334 packet.video_header.codecHeader.VP9.tl0_pic_idx = 0; | 1334 packet.video_header.codecHeader.VP9.tl0_pic_idx = 0; |
| 1335 { | 1335 { |
| 1336 ref_packet_buffer_->InsertPacket(packet); | 1336 ref_packet_buffer_->InsertPacket(&packet); |
| 1337 std::unique_ptr<RtpFrameObject> frame( | 1337 std::unique_ptr<RtpFrameObject> frame( |
| 1338 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1338 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1339 reference_finder_->ManageFrame(std::move(frame)); | 1339 reference_finder_->ManageFrame(std::move(frame)); |
| 1340 } | 1340 } |
| 1341 | 1341 |
| 1342 packet.timestamp = 2; | 1342 packet.timestamp = 2; |
| 1343 packet.frameType = kVideoFrameDelta; | 1343 packet.frameType = kVideoFrameDelta; |
| 1344 packet.video_header.codecHeader.VP9.picture_id = 2; | 1344 packet.video_header.codecHeader.VP9.picture_id = 2; |
| 1345 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; | 1345 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; |
| 1346 { | 1346 { |
| 1347 ref_packet_buffer_->InsertPacket(packet); | 1347 ref_packet_buffer_->InsertPacket(&packet); |
| 1348 std::unique_ptr<RtpFrameObject> frame( | 1348 std::unique_ptr<RtpFrameObject> frame( |
| 1349 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1349 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1350 reference_finder_->ManageFrame(std::move(frame)); | 1350 reference_finder_->ManageFrame(std::move(frame)); |
| 1351 } | 1351 } |
| 1352 | 1352 |
| 1353 packet.timestamp = 3; | 1353 packet.timestamp = 3; |
| 1354 packet.frameType = kVideoFrameKey; | 1354 packet.frameType = kVideoFrameKey; |
| 1355 packet.video_header.codecHeader.VP9.ss_data_available = true; | 1355 packet.video_header.codecHeader.VP9.ss_data_available = true; |
| 1356 packet.video_header.codecHeader.VP9.picture_id = 3; | 1356 packet.video_header.codecHeader.VP9.picture_id = 3; |
| 1357 packet.video_header.codecHeader.VP9.tl0_pic_idx = 129; | 1357 packet.video_header.codecHeader.VP9.tl0_pic_idx = 129; |
| 1358 { | 1358 { |
| 1359 ref_packet_buffer_->InsertPacket(packet); | 1359 ref_packet_buffer_->InsertPacket(&packet); |
| 1360 std::unique_ptr<RtpFrameObject> frame( | 1360 std::unique_ptr<RtpFrameObject> frame( |
| 1361 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1361 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1362 reference_finder_->ManageFrame(std::move(frame)); | 1362 reference_finder_->ManageFrame(std::move(frame)); |
| 1363 } | 1363 } |
| 1364 | 1364 |
| 1365 ASSERT_EQ(4UL, frames_from_callback_.size()); | 1365 ASSERT_EQ(4UL, frames_from_callback_.size()); |
| 1366 CheckReferencesVp9(0, 0); | 1366 CheckReferencesVp9(0, 0); |
| 1367 CheckReferencesVp9(128, 0); | 1367 CheckReferencesVp9(128, 0); |
| 1368 CheckReferencesVp9(129, 0, 128); | 1368 CheckReferencesVp9(129, 0, 128); |
| 1369 CheckReferencesVp9(257, 0); | 1369 CheckReferencesVp9(257, 0); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1382 packet.markerBit = true; | 1382 packet.markerBit = true; |
| 1383 packet.video_header.codecHeader.VP9.flexible_mode = false; | 1383 packet.video_header.codecHeader.VP9.flexible_mode = false; |
| 1384 packet.video_header.codecHeader.VP9.picture_id = 1; | 1384 packet.video_header.codecHeader.VP9.picture_id = 1; |
| 1385 packet.video_header.codecHeader.VP9.temporal_idx = 0; | 1385 packet.video_header.codecHeader.VP9.temporal_idx = 0; |
| 1386 packet.video_header.codecHeader.VP9.spatial_idx = 0; | 1386 packet.video_header.codecHeader.VP9.spatial_idx = 0; |
| 1387 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; | 1387 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; |
| 1388 packet.video_header.codecHeader.VP9.temporal_up_switch = true; | 1388 packet.video_header.codecHeader.VP9.temporal_up_switch = true; |
| 1389 packet.video_header.codecHeader.VP9.ss_data_available = true; | 1389 packet.video_header.codecHeader.VP9.ss_data_available = true; |
| 1390 packet.video_header.codecHeader.VP9.gof = ss; | 1390 packet.video_header.codecHeader.VP9.gof = ss; |
| 1391 { | 1391 { |
| 1392 ref_packet_buffer_->InsertPacket(packet); | 1392 ref_packet_buffer_->InsertPacket(&packet); |
| 1393 std::unique_ptr<RtpFrameObject> frame( | 1393 std::unique_ptr<RtpFrameObject> frame( |
| 1394 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1394 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1395 reference_finder_->ManageFrame(std::move(frame)); | 1395 reference_finder_->ManageFrame(std::move(frame)); |
| 1396 } | 1396 } |
| 1397 | 1397 |
| 1398 packet.timestamp = 1; | 1398 packet.timestamp = 1; |
| 1399 packet.video_header.codecHeader.VP9.picture_id = 2; | 1399 packet.video_header.codecHeader.VP9.picture_id = 2; |
| 1400 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; | 1400 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; |
| 1401 { | 1401 { |
| 1402 ref_packet_buffer_->InsertPacket(packet); | 1402 ref_packet_buffer_->InsertPacket(&packet); |
| 1403 std::unique_ptr<RtpFrameObject> frame( | 1403 std::unique_ptr<RtpFrameObject> frame( |
| 1404 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1404 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1405 reference_finder_->ManageFrame(std::move(frame)); | 1405 reference_finder_->ManageFrame(std::move(frame)); |
| 1406 } | 1406 } |
| 1407 | 1407 |
| 1408 packet.timestamp = 2; | 1408 packet.timestamp = 2; |
| 1409 packet.video_header.codecHeader.VP9.picture_id = 3; | 1409 packet.video_header.codecHeader.VP9.picture_id = 3; |
| 1410 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; | 1410 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; |
| 1411 { | 1411 { |
| 1412 ref_packet_buffer_->InsertPacket(packet); | 1412 ref_packet_buffer_->InsertPacket(&packet); |
| 1413 std::unique_ptr<RtpFrameObject> frame( | 1413 std::unique_ptr<RtpFrameObject> frame( |
| 1414 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1414 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1415 reference_finder_->ManageFrame(std::move(frame)); | 1415 reference_finder_->ManageFrame(std::move(frame)); |
| 1416 } | 1416 } |
| 1417 | 1417 |
| 1418 packet.timestamp = 2; | 1418 packet.timestamp = 2; |
| 1419 packet.video_header.codecHeader.VP9.picture_id = 4; | 1419 packet.video_header.codecHeader.VP9.picture_id = 4; |
| 1420 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; | 1420 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; |
| 1421 { | 1421 { |
| 1422 ref_packet_buffer_->InsertPacket(packet); | 1422 ref_packet_buffer_->InsertPacket(&packet); |
| 1423 std::unique_ptr<RtpFrameObject> frame( | 1423 std::unique_ptr<RtpFrameObject> frame( |
| 1424 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1424 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1425 reference_finder_->ManageFrame(std::move(frame)); | 1425 reference_finder_->ManageFrame(std::move(frame)); |
| 1426 } | 1426 } |
| 1427 | 1427 |
| 1428 ASSERT_EQ(4UL, frames_from_callback_.size()); | 1428 ASSERT_EQ(4UL, frames_from_callback_.size()); |
| 1429 CheckReferencesVp9(1, 0); | 1429 CheckReferencesVp9(1, 0); |
| 1430 CheckReferencesVp9(2, 0); | 1430 CheckReferencesVp9(2, 0); |
| 1431 CheckReferencesVp9(3, 0); | 1431 CheckReferencesVp9(3, 0); |
| 1432 CheckReferencesVp9(131, 0); | 1432 CheckReferencesVp9(131, 0); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1445 packet.markerBit = true; | 1445 packet.markerBit = true; |
| 1446 packet.video_header.codecHeader.VP9.flexible_mode = false; | 1446 packet.video_header.codecHeader.VP9.flexible_mode = false; |
| 1447 packet.video_header.codecHeader.VP9.picture_id = 1; | 1447 packet.video_header.codecHeader.VP9.picture_id = 1; |
| 1448 packet.video_header.codecHeader.VP9.temporal_idx = 0; | 1448 packet.video_header.codecHeader.VP9.temporal_idx = 0; |
| 1449 packet.video_header.codecHeader.VP9.spatial_idx = 0; | 1449 packet.video_header.codecHeader.VP9.spatial_idx = 0; |
| 1450 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; | 1450 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; |
| 1451 packet.video_header.codecHeader.VP9.temporal_up_switch = true; | 1451 packet.video_header.codecHeader.VP9.temporal_up_switch = true; |
| 1452 packet.video_header.codecHeader.VP9.ss_data_available = true; | 1452 packet.video_header.codecHeader.VP9.ss_data_available = true; |
| 1453 packet.video_header.codecHeader.VP9.gof = ss; | 1453 packet.video_header.codecHeader.VP9.gof = ss; |
| 1454 { | 1454 { |
| 1455 ref_packet_buffer_->InsertPacket(packet); | 1455 ref_packet_buffer_->InsertPacket(&packet); |
| 1456 std::unique_ptr<RtpFrameObject> frame( | 1456 std::unique_ptr<RtpFrameObject> frame( |
| 1457 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1457 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1458 reference_finder_->ManageFrame(std::move(frame)); | 1458 reference_finder_->ManageFrame(std::move(frame)); |
| 1459 } | 1459 } |
| 1460 | 1460 |
| 1461 packet.timestamp = 1; | 1461 packet.timestamp = 1; |
| 1462 packet.video_header.codecHeader.VP9.picture_id = 0; | 1462 packet.video_header.codecHeader.VP9.picture_id = 0; |
| 1463 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; | 1463 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; |
| 1464 { | 1464 { |
| 1465 ref_packet_buffer_->InsertPacket(packet); | 1465 ref_packet_buffer_->InsertPacket(&packet); |
| 1466 std::unique_ptr<RtpFrameObject> frame( | 1466 std::unique_ptr<RtpFrameObject> frame( |
| 1467 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1467 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1468 reference_finder_->ManageFrame(std::move(frame)); | 1468 reference_finder_->ManageFrame(std::move(frame)); |
| 1469 } | 1469 } |
| 1470 | 1470 |
| 1471 packet.timestamp = 0; | 1471 packet.timestamp = 0; |
| 1472 packet.video_header.codecHeader.VP9.picture_id = 3; | 1472 packet.video_header.codecHeader.VP9.picture_id = 3; |
| 1473 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; | 1473 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; |
| 1474 { | 1474 { |
| 1475 ref_packet_buffer_->InsertPacket(packet); | 1475 ref_packet_buffer_->InsertPacket(&packet); |
| 1476 std::unique_ptr<RtpFrameObject> frame( | 1476 std::unique_ptr<RtpFrameObject> frame( |
| 1477 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); | 1477 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)); |
| 1478 reference_finder_->ManageFrame(std::move(frame)); | 1478 reference_finder_->ManageFrame(std::move(frame)); |
| 1479 } | 1479 } |
| 1480 | 1480 |
| 1481 ASSERT_EQ(2UL, frames_from_callback_.size()); | 1481 ASSERT_EQ(2UL, frames_from_callback_.size()); |
| 1482 CheckReferencesVp9(1, 0); | 1482 CheckReferencesVp9(1, 0); |
| 1483 CheckReferencesVp9(129, 0); | 1483 CheckReferencesVp9(129, 0); |
| 1484 } | 1484 } |
| 1485 | 1485 |
| 1486 } // namespace video_coding | 1486 } // namespace video_coding |
| 1487 } // namespace webrtc | 1487 } // namespace webrtc |
| OLD | NEW |