| 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 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 return ManageFrameVp9(frame); | 93 return ManageFrameVp9(frame); |
| 94 // Since the EndToEndTests use kVicdeoCodecUnknow we treat it the same as | 94 // Since the EndToEndTests use kVicdeoCodecUnknow we treat it the same as |
| 95 // kVideoCodecGeneric. | 95 // kVideoCodecGeneric. |
| 96 // TODO(philipel): Take a look at the EndToEndTests and see if maybe they | 96 // TODO(philipel): Take a look at the EndToEndTests and see if maybe they |
| 97 // should be changed to use kVideoCodecGeneric instead. | 97 // should be changed to use kVideoCodecGeneric instead. |
| 98 case kVideoCodecUnknown: | 98 case kVideoCodecUnknown: |
| 99 case kVideoCodecH264: | 99 case kVideoCodecH264: |
| 100 case kVideoCodecI420: | 100 case kVideoCodecI420: |
| 101 case kVideoCodecGeneric: | 101 case kVideoCodecGeneric: |
| 102 return ManageFrameGeneric(frame, kNoPictureId); | 102 return ManageFrameGeneric(frame, kNoPictureId); |
| 103 case kVideoCodecStereo: |
| 104 return ManageFrameVp9(frame); |
| 103 } | 105 } |
| 104 | 106 |
| 105 // If not all code paths return a value it makes the win compiler sad. | 107 // If not all code paths return a value it makes the win compiler sad. |
| 106 RTC_NOTREACHED(); | 108 RTC_NOTREACHED(); |
| 107 return kDrop; | 109 return kDrop; |
| 108 } | 110 } |
| 109 | 111 |
| 110 void RtpFrameReferenceFinder::PaddingReceived(uint16_t seq_num) { | 112 void RtpFrameReferenceFinder::PaddingReceived(uint16_t seq_num) { |
| 111 rtc::CritScope lock(&crit_); | 113 rtc::CritScope lock(&crit_); |
| 112 auto clean_padding_to = | 114 auto clean_padding_to = |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 397 RTC_DCHECK(rtp_codec_header); | 399 RTC_DCHECK(rtp_codec_header); |
| 398 const RTPVideoHeaderVP9& codec_header = rtp_codec_header->VP9; | 400 const RTPVideoHeaderVP9& codec_header = rtp_codec_header->VP9; |
| 399 | 401 |
| 400 bool old_frame = Vp9PidTl0Fix(*frame, &rtp_codec_header->VP9.picture_id, | 402 bool old_frame = Vp9PidTl0Fix(*frame, &rtp_codec_header->VP9.picture_id, |
| 401 &rtp_codec_header->VP9.tl0_pic_idx); | 403 &rtp_codec_header->VP9.tl0_pic_idx); |
| 402 if (old_frame) | 404 if (old_frame) |
| 403 return kDrop; | 405 return kDrop; |
| 404 | 406 |
| 405 if (codec_header.picture_id == kNoPictureId || | 407 if (codec_header.picture_id == kNoPictureId || |
| 406 codec_header.temporal_idx == kNoTemporalIdx) { | 408 codec_header.temporal_idx == kNoTemporalIdx) { |
| 407 return ManageFrameGeneric(std::move(frame), codec_header.picture_id); | 409 return ManageFrameGeneric(std::move(frame), kNoPictureId); |
| 408 } | 410 } |
| 409 | 411 |
| 410 frame->spatial_layer = codec_header.spatial_idx; | 412 frame->spatial_layer = codec_header.spatial_idx; |
| 411 frame->inter_layer_predicted = codec_header.inter_layer_predicted; | 413 frame->inter_layer_predicted = codec_header.inter_layer_predicted; |
| 412 frame->picture_id = codec_header.picture_id % kPicIdLength; | 414 frame->picture_id = codec_header.picture_id % kPicIdLength; |
| 413 | |
| 414 if (last_unwrap_ == -1) | 415 if (last_unwrap_ == -1) |
| 415 last_unwrap_ = codec_header.picture_id; | 416 last_unwrap_ = codec_header.picture_id; |
| 416 | 417 |
| 417 if (last_picture_id_ == -1) | 418 if (last_picture_id_ == -1) |
| 418 last_picture_id_ = frame->picture_id; | 419 last_picture_id_ = frame->picture_id; |
| 419 | 420 |
| 420 if (codec_header.flexible_mode) { | 421 if (codec_header.flexible_mode) { |
| 421 frame->num_references = codec_header.num_ref_pics; | 422 frame->num_references = codec_header.num_ref_pics; |
| 422 for (size_t i = 0; i < frame->num_references; ++i) { | 423 for (size_t i = 0; i < frame->num_references; ++i) { |
| 423 frame->references[i] = | 424 frame->references[i] = |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 if (!gof_info_.empty() && | 747 if (!gof_info_.empty() && |
| 747 AheadOf<uint8_t>(gof_info_.begin()->first, fixed_tl0)) { | 748 AheadOf<uint8_t>(gof_info_.begin()->first, fixed_tl0)) { |
| 748 return true; | 749 return true; |
| 749 } | 750 } |
| 750 } | 751 } |
| 751 return false; | 752 return false; |
| 752 } | 753 } |
| 753 | 754 |
| 754 } // namespace video_coding | 755 } // namespace video_coding |
| 755 } // namespace webrtc | 756 } // namespace webrtc |
| OLD | NEW |