src/include/com/amazonaws/kinesis/video/webrtcclient/Stats.h (64 lines): - line 219: DOUBLE availableOutgoingBitrate; //!< TODO: Total available bit rate for all the outgoing RTP streams on this candidate pair. Calculated by - line 221: DOUBLE availableIncomingBitrate; //!< TODO: Total available bit rate for all the outgoing RTP streams on this candidate pair. Calculated by - line 302: // TODO: transportId not yet populated - line 306: // TODO: codecId not yet populated - line 335: DOMString mediaSourceId; //!< TODO ID representing the current media source - line 336: DOMString senderId; //!< TODO The stats ID used to look up the RTCAudioSenderStats or RTCVideoSenderStats object sending this stream - line 337: DOMString remoteId; //!< TODO ID to look up the remote RTCRemoteInboundRtpStreamStats object for the same SSRC - line 338: DOMString rid; //!< TODO Exposes the rid encoding parameter of this RTP stream if it has been set, otherwise it is undefined - line 356: INT32 fecPacketsSent; //!< TODO Total number of RTP FEC packets sent for this SSRC. Can also be incremented while sending FEC packets in band - line 365: UINT64 qpSum; //!< TODO Only valid for video. The sum of the QP values of frames encoded by this sender. QP value depends on the codec - line 366: UINT64 totalSamplesSent; //!< TODO Only valid for audio. The total number of samples that have been sent over this RTP stream - line 367: UINT64 samplesEncodedWithSilk; //!< TODO Only valid for audio and when the audio codec is Opus. Represnets only SILK portion of codec - line 368: UINT64 samplesEncodedWithCelt; //!< TODO Only valid for audio and when the audio codec is Opus. Represnets only CELT portion of codec - line 394: INT64 packetsLost; //!< TODO Total number of RTP packets lost for this SSRC. Calculated as defined in [RFC3550] section 6.4.1. Note that because - line 400: UINT64 packetsRepaired; //!< TODO The cumulative number of lost RTP packets repaired after applying an error-resilience mechanism [XRBLOCK-STATS]. - line 401: UINT64 burstPacketsLost; //!< TODO The cumulative number of RTP packets lost during loss bursts, Appendix A (c) of [RFC6958]. - line 402: UINT64 burstPacketsDiscarded; //!< TODO The cumulative number of RTP packets discarded during discard bursts, Appendix A (b) of [RFC7003]. - line 403: UINT32 burstLossCount; //!< TODO The cumulative number of bursts of lost RTP packets, Appendix A (e) of [RFC6958]. [RFC3611] recommends a Gmin - line 405: UINT32 burstDiscardCount; //!< TODO The cumulative number of bursts of discarded RTP packets, Appendix A (e) of [RFC8015]. - line 406: DOUBLE burstLossRate; //!< TODO The fraction of RTP packets lost during bursts to the total number of RTP packets expected in the bursts. As - line 408: DOUBLE burstDiscardRate; //!< TODO The fraction of RTP packets discarded during bursts to the total number of RTP packets expected in bursts. As - line 410: DOUBLE gapLossRate; //!< TODO The fraction of RTP packets lost during the gap periods. Appendix A (b) of [RFC7004], however, the actual value is - line 412: DOUBLE gapDiscardRate; //!< TODO The fraction of RTP packets discarded during the gap periods. Appendix A (f) of [RFC7004], however, the actual - line 417: UINT32 partialFramesLost; //!< TODO Only valid for video. The cumulative number of partial frames lost. The measurement begins when the receiver - line 433: DOMString trackId; //!< TODO The identifier of the stats object representing the receiving track, an RTCReceiverAudioTrackAttachmentStats or - line 435: DOMString receiverId; //!< TODO The stats ID used to look up the RTCAudioReceiverStats or RTCVideoReceiverStats object receiving this stream. - line 436: DOMString remoteId; //!< TODO The remoteId is used for looking up the remote RTCRemoteOutboundRtpStreamStats object for the same SSRC. - line 437: UINT32 framesDecoded; //!< TODO Only valid for video. It represents the total number of frames correctly decoded for this RTP stream, i.e., frames - line 439: UINT32 keyFramesDecoded; //!< TODO Only valid for video. It represents the total number of key frames, such as key frames in VP8 [RFC6386] or - line 442: UINT16 frameWidth; //!< TODO Only valid for video. Represents the width of the last decoded frame. Before the first frame is decoded this - line 444: UINT16 frameHeight; //!< TODO Only valid for video. Represents the height of the last decoded frame. Before the first frame is decoded this - line 446: UINT8 frameBitDepth; //!< TODO Only valid for video. Represents the bit depth per pixel of the last decoded frame. Typical values are 24, 30, or - line 448: DOUBLE framesPerSecond; //!< TODO Only valid for video. The number of decoded frames in the last second. - line 449: UINT64 qpSum; //!< TODO Only valid for video. The sum of the QP values of frames decoded by this receiver. The count of frames is in - line 453: DOUBLE totalDecodeTime; //!< TODO Total number of seconds that have been spent decoding the framesDecoded frames of this stream. The average - line 456: DOUBLE totalInterFrameDelay; //!< TODO Sum of the interframe delays in seconds between consecutively decoded frames, recorded just after a frame - line 460: DOUBLE totalSquaredInterFrameDelay; //!< TODO Sum of the squared interframe delays in seconds between consecutively decoded frames, recorded just - line 464: BOOL voiceActivityFlag; //!< TODO Only valid for audio. Whether the last RTP packet whose frame was delivered to the RTCRtpReceiver's - line 471: DOUBLE averageRtcpInterval; //!< TODO The average RTCP interval between two consecutive compound RTCP packets. This is calculated by the sending - line 477: UINT64 fecPacketsReceived; //!< TODO Total number of RTP FEC packets received for this SSRC. This counter can also be incremented when receiving - line 480: fecPacketsDiscarded; //!< TODO Total number of RTP FEC packets received for this SSRC where the error correction payload was discarded by the - line 487: UINT64 packetsDuplicated; //!< TODO The cumulative number of packets discarded because they are duplicated. Duplicate packets are not counted in - line 493: UINT32 nackCount; //!< TODO Count the total number of Negative ACKnowledgement (NACK) packets sent by this receiver. - line 494: UINT32 firCount; //!< TODO Only valid for video. Count the total number of Full Intra Request (FIR) packets sent by this receiver. - line 495: UINT32 pliCount; //!< TODO Only valid for video. Count the total number of Picture Loss Indication (PLI) packets sent by this receiver. - line 496: UINT32 sliCount; //!< TODO Only valid for video. Count the total number of Slice Loss Indication (SLI) packets sent by this receiver. - line 497: DOMHighResTimeStamp estimatedPlayoutTimestamp; //!< TODO This is the estimated playout time of this receiver's track. - line 498: DOUBLE jitterBufferDelay; //!< TODO It is the sum of the time, in seconds, each audio sample or video frame takes from the time it is received and - line 500: UINT64 jitterBufferEmittedCount; //!< TODO The total number of audio samples or video frames that have come out of the jitter buffer (increasing - line 502: UINT64 totalSamplesReceived; //!< TODO Only valid for audio. The total number of samples that have been received on this RTP stream. This includes - line 504: UINT64 samplesDecodedWithSilk; //!< TODO Only valid for audio and when the audio codec is Opus. The total number of samples decoded by the SILK - line 506: UINT64 samplesDecodedWithCelt; //!< TODO Only valid for audio and when the audio codec is Opus. The total number of samples decoded by the CELT - line 508: UINT64 concealedSamples; //!< TODO Only valid for audio. The total number of samples that are concealed samples. A concealed sample is a sample - line 510: UINT64 silentConcealedSamples; //!< TODO Only valid for audio. The total number of concealed samples inserted that are "silent". - line 511: UINT64 concealmentEvents; //!< TODO Only valid for audio. The number of concealment events. This counter increases every time a concealed sample - line 513: UINT64 insertedSamplesForDeceleration; //!< TODO Only valid for audio. When playout is slowed down, this counter is increased by the difference - line 515: UINT64 removedSamplesForAcceleration; //!< TODO Only valid for audio. When playout is sped up, this counter is increased by the difference between - line 517: DOUBLE audioLevel; //!< TODO Only valid for audio. Represents the audio level of the receiving track. For audio levels of tracks attached locally, - line 521: DOUBLE totalAudioEnergy; //!< TODO Only valid for audio. Represents the audio energy of the receiving track. For audio energy of tracks attached - line 523: DOUBLE totalSamplesDuration; //!< TODO Only valid for audio. Represents the audio duration of the receiving track. For audio durations of tracks - line 527: DOMString decoderImplementation; //!< TODO Identifies the decoder implementation used. This is useful for diagnosing interoperability issues. - line 536: RTC_DATA_CHANNEL_STATE_CLOSING, //!< TODO: Set the state to closed after adding onClosing handler to data channel - line 537: RTC_DATA_CHANNEL_STATE_CLOSED //!< TODO: Set the state to closed after adding onClose handler to data channel - line 547: DOMString transportId; //!< TODO: A stats object reference for the transport used to carry this datachannel. src/source/PeerConnection/Rtcp.c (6 lines): - line 5: // TODO handle FIR packet https://tools.ietf.org/html/rfc2032#section-5.2.1 - line 30: // TODO handle SLI packet https://tools.ietf.org/html/rfc4585#section-6.3.2 - line 52: // TODO better sender report handling https://tools.ietf.org/html/rfc3550#section-6.4.1 - line 62: // TODO: handle sender report containing receiver report blocks - line 93: // TODO: handle multiple receiver report blocks - line 186: // TODO: handle lost twcc report packets src/source/Ice/IceAgent.c (5 lines): - line 654: bytesDiscarded = bufferLen; // This includes header and padding. TODO: update length to remove header and padding - line 662: // TODO: use a better estimate of actual time when packet was sent - line 1815: // TODO: Stop skipping IPv6. Since we're allowing IPv6 remote candidates from iceAgentAddRemoteCandidate for host candidates, - line 2324: // TODO FIXME real source of randomness - line 2563: // TODO send error packet src/source/PeerConnection/PeerConnection.c (4 lines): - line 304: // TODO: handle multi-packet frames - line 340: // TODO: Fill frame flag and track id and index if we need to, currently those are not used by RtcRtpTransceiver - line 366: // TODO: handle multi-packet frames - line 1241: // TODO: Add ssrc duplicate detection here not only relying on RAND() src/source/Signaling/LwsApiCalls.c (3 lines): - line 89: // TODO: Attempt to get more meaningful service return code - line 345: // TODO: Attempt to get more meaningful service return code - line 839: // TODO: In the future parse out the creation time but currently we don't need it src/source/Ice/IceAgent.h (2 lines): - line 123: DOUBLE availableOutgoingBitrate; //!< TODO: Total available bit rate for all the outgoing RTP streams on this candidate pair. Calculated by - line 125: DOUBLE availableIncomingBitrate; //!< TODO: Total available bit rate for all the outgoing RTP streams on this candidate pair. Calculated by src/source/Ice/TurnConnection.c (2 lines): - line 903: /* TODO: add plain TCP once it becomes available. */ - line 1349: // TODO: Return back the error check src/source/PeerConnection/Rtp.c (2 lines): - line 195: UINT64 randomRtpTimeoffset = 0; // TODO: spec requires random rtp time offset - line 310: // TODO is frame considered discarded when at least one of its packets is discarded or all of its packets discarded? src/source/Ice/Network.c (2 lines): - line 236: // TODO: Properly handle the non-portable sin_len field if needed per https://issues.amazon.com/KinesisVideo-4952 - line 246: // TODO: Properly handle the non-portable sin6_len field if needed per https://issues.amazon.com/KinesisVideo-4952 src/source/PeerConnection/Retransmitter.c (1 line): - line 69: // TODO it is not very clear from the spec whether nackCount is number of packets received or number of rtp packets lost reported in nack packets src/source/Ice/IceUtils.c (1 line): - line 220: // TODO after getIceServerConfig no longer give turn: ips, do TLS only for turns: src/source/Stun/Stun.c (1 line): - line 143: // TODO refactor this check, we have it for every attribute. src/source/PeerConnection/SessionDescription.c (1 line): - line 566: // TODO: If level asymmetry is allowed, consider sending back DEFAULT_H264_FMTP instead of the received fmtp value. src/source/Rtp/Codecs/RtpH264Payloader.c (1 line): - line 244: // TODO: Add support for Aggregate Packets https://tools.ietf.org/html/rfc6184#section-5.7 src/source/Crypto/Dtls_mbedtls.c (1 line): - line 429: // TODO: Use the 0th certificate for now