| /* | |
| * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. | |
| * | |
| * Use of this source code is governed by a BSD-style license | |
| * that can be found in the LICENSE file in the root of the source | |
| * tree. An additional intellectual property rights grant can be found | |
| * in the file PATENTS. All contributing project authors may | |
| * be found in the AUTHORS file in the root of the source tree. | |
| */ | |
| #ifndef MODULES_VIDEO_CODING_JITTER_BUFFER_COMMON_H_ | |
| #define MODULES_VIDEO_CODING_JITTER_BUFFER_COMMON_H_ | |
| namespace webrtc { | |
| // Used to estimate rolling average of packets per frame. | |
| static const float kFastConvergeMultiplier = 0.4f; | |
| static const float kNormalConvergeMultiplier = 0.2f; | |
| enum { kMaxNumberOfFrames = 300 }; | |
| enum { kStartNumberOfFrames = 6 }; | |
| enum { kMaxVideoDelayMs = 10000 }; | |
| enum { kPacketsPerFrameMultiplier = 5 }; | |
| enum { kFastConvergeThreshold = 5 }; | |
| enum VCMJitterBufferEnum { | |
| kMaxConsecutiveOldFrames = 60, | |
| kMaxConsecutiveOldPackets = 300, | |
| // TODO(sprang): Reduce this limit once codecs don't sometimes wildly | |
| // overshoot bitrate target. | |
| kMaxPacketsInSession = 1400, // Allows ~2MB frames. | |
| kBufferIncStepSizeBytes = 30000, // >20 packets. | |
| kMaxJBFrameSizeBytes = 4000000 // sanity don't go above 4Mbyte. | |
| }; | |
| enum VCMFrameBufferEnum { | |
| kOutOfBoundsPacket = -7, | |
| kNotInitialized = -6, | |
| kOldPacket = -5, | |
| kGeneralError = -4, | |
| kFlushIndicator = -3, // Indicator that a flush has occurred. | |
| kTimeStampError = -2, | |
| kSizeError = -1, | |
| kNoError = 0, | |
| kIncomplete = 1, // Frame incomplete. | |
| kCompleteSession = 3, // at least one layer in the frame complete. | |
| kDuplicatePacket = 5 // We're receiving a duplicate packet. | |
| }; | |
| enum VCMFrameBufferStateEnum { | |
| kStateEmpty, // frame popped by the RTP receiver | |
| kStateIncomplete, // frame that have one or more packet(s) stored | |
| kStateComplete, // frame that have all packets | |
| }; | |
| enum { kH264StartCodeLengthBytes = 4 }; | |
| } // namespace webrtc | |
| #endif // MODULES_VIDEO_CODING_JITTER_BUFFER_COMMON_H_ |