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

Unified Diff: media/cast/rtcp/rtcp_utility.h

Issue 388663003: Cast: Reshuffle files under media/cast (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: missing includes Created 6 years, 5 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/cast/rtcp/rtcp_unittest.cc ('k') | media/cast/rtcp/rtcp_utility.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/rtcp/rtcp_utility.h
diff --git a/media/cast/rtcp/rtcp_utility.h b/media/cast/rtcp/rtcp_utility.h
deleted file mode 100644
index 34f3f25a889e4f5d6eefc55ad52508d5c89277f3..0000000000000000000000000000000000000000
--- a/media/cast/rtcp/rtcp_utility.h
+++ /dev/null
@@ -1,346 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef MEDIA_CAST_RTCP_RTCP_UTILITY_H_
-#define MEDIA_CAST_RTCP_RTCP_UTILITY_H_
-
-#include "media/cast/cast_config.h"
-#include "media/cast/cast_defines.h"
-#include "media/cast/logging/logging_defines.h"
-#include "media/cast/rtcp/rtcp_defines.h"
-
-namespace media {
-namespace cast {
-
-static const int kRtcpRpsiDataSize = 30;
-
-// RFC 3550 page 44, including end null.
-static const size_t kRtcpCnameSize = 256;
-static const int kRtcpMaxNumberOfRembFeedbackSsrcs = 255;
-
-static const uint32 kRemb = ('R' << 24) + ('E' << 16) + ('M' << 8) + 'B';
-static const uint32 kCast = ('C' << 24) + ('A' << 16) + ('S' << 8) + 'T';
-
-static const uint8 kReceiverLogSubtype = 2;
-
-static const size_t kRtcpMaxReceiverLogMessages = 256;
-static const size_t kRtcpMaxNackFields = 253;
-static const size_t kRtcpMaxCastLossFields = 100;
-
-struct RtcpFieldReceiverReport {
- // RFC 3550.
- uint32 sender_ssrc;
- uint8 number_of_report_blocks;
-};
-
-struct RtcpFieldSenderReport {
- // RFC 3550.
- uint32 sender_ssrc;
- uint8 number_of_report_blocks;
- uint32 ntp_most_significant;
- uint32 ntp_least_significant;
- uint32 rtp_timestamp;
- uint32 sender_packet_count;
- uint32 sender_octet_count;
-};
-
-struct RtcpFieldReportBlockItem {
- // RFC 3550.
- uint32 ssrc;
- uint8 fraction_lost;
- uint32 cumulative_number_of_packets_lost;
- uint32 extended_highest_sequence_number;
- uint32 jitter;
- uint32 last_sender_report;
- uint32 delay_last_sender_report;
-};
-
-struct RtcpFieldSdesCName {
- // RFC 3550
- uint32 sender_ssrc;
- char name[kRtcpCnameSize];
-};
-
-struct RtcpFieldBye {
- // RFC 3550.
- uint32 sender_ssrc;
-};
-
-struct RtcpFieldGenericRtpFeedbackNack {
- // RFC 4585.
- uint32 sender_ssrc;
- uint32 media_ssrc;
-};
-
-struct RtcpFieldGenericRtpFeedbackNackItem {
- // RFC 4585.
- uint16 packet_id;
- uint16 bitmask;
-};
-
-struct RtcpFieldPayloadSpecificFir {
- // RFC 5104.
- uint32 sender_ssrc;
- uint32 media_ssrc; // zero!
-};
-
-struct RtcpFieldPayloadSpecificFirItem {
- // RFC 5104.
- uint32 ssrc;
- uint8 command_sequence_number;
-};
-
-struct RtcpFieldPayloadSpecificPli {
- // RFC 4585.
- uint32 sender_ssrc;
- uint32 media_ssrc;
-};
-
-struct RtcpFieldPayloadSpecificRpsi {
- // RFC 4585.
- uint32 sender_ssrc;
- uint32 media_ssrc;
- uint8 payload_type;
- uint16 number_of_valid_bits;
- uint8 native_bit_string[kRtcpRpsiDataSize];
-};
-
-struct RtcpFieldXr {
- // RFC 3611.
- uint32 sender_ssrc;
-};
-
-struct RtcpFieldXrRrtr {
- // RFC 3611.
- uint32 ntp_most_significant;
- uint32 ntp_least_significant;
-};
-
-struct RtcpFieldXrDlrr {
- // RFC 3611.
- uint32 receivers_ssrc;
- uint32 last_receiver_report;
- uint32 delay_last_receiver_report;
-};
-
-struct RtcpFieldPayloadSpecificApplication {
- uint32 sender_ssrc;
- uint32 media_ssrc;
-};
-
-struct RtcpFieldPayloadSpecificRembItem {
- uint32 bitrate;
- uint8 number_of_ssrcs;
- uint32 ssrcs[kRtcpMaxNumberOfRembFeedbackSsrcs];
-};
-
-struct RtcpFieldPayloadSpecificCastItem {
- uint8 last_frame_id;
- uint8 number_of_lost_fields;
- uint16 target_delay_ms;
-};
-
-struct RtcpFieldPayloadSpecificCastNackItem {
- uint8 frame_id;
- uint16 packet_id;
- uint8 bitmask;
-};
-
-struct RtcpFieldApplicationSpecificCastReceiverLogItem {
- uint32 sender_ssrc;
- uint32 rtp_timestamp;
- uint32 event_timestamp_base;
- uint8 event;
- union {
- uint16 packet_id;
- int16 delay_delta;
- } delay_delta_or_packet_id;
- uint16 event_timestamp_delta;
-};
-
-union RtcpField {
- RtcpFieldReceiverReport receiver_report;
- RtcpFieldSenderReport sender_report;
- RtcpFieldReportBlockItem report_block_item;
- RtcpFieldSdesCName c_name;
- RtcpFieldBye bye;
-
- RtcpFieldXr extended_report;
- RtcpFieldXrRrtr rrtr;
- RtcpFieldXrDlrr dlrr;
-
- RtcpFieldGenericRtpFeedbackNack nack;
- RtcpFieldGenericRtpFeedbackNackItem nack_item;
-
- RtcpFieldPayloadSpecificPli pli;
- RtcpFieldPayloadSpecificRpsi rpsi;
- RtcpFieldPayloadSpecificFir fir;
- RtcpFieldPayloadSpecificFirItem fir_item;
- RtcpFieldPayloadSpecificApplication application_specific;
- RtcpFieldPayloadSpecificRembItem remb_item;
- RtcpFieldPayloadSpecificCastItem cast_item;
- RtcpFieldPayloadSpecificCastNackItem cast_nack_item;
-
- RtcpFieldApplicationSpecificCastReceiverLogItem cast_receiver_log;
-};
-
-enum RtcpFieldTypes {
- kRtcpNotValidCode,
-
- // RFC 3550.
- kRtcpRrCode,
- kRtcpSrCode,
- kRtcpReportBlockItemCode,
- kRtcpSdesCode,
- kRtcpSdesChunkCode,
- kRtcpByeCode,
-
- // RFC 3611.
- kRtcpXrCode,
- kRtcpXrRrtrCode,
- kRtcpXrDlrrCode,
- kRtcpXrUnknownItemCode,
-
- // RFC 4585.
- kRtcpGenericRtpFeedbackNackCode,
- kRtcpGenericRtpFeedbackNackItemCode,
- kRtcpPayloadSpecificPliCode,
- kRtcpPayloadSpecificRpsiCode,
- kRtcpPayloadSpecificAppCode,
-
- // Application specific.
- kRtcpPayloadSpecificRembCode,
- kRtcpPayloadSpecificRembItemCode,
- kRtcpPayloadSpecificCastCode,
- kRtcpPayloadSpecificCastNackItemCode,
- kRtcpApplicationSpecificCastReceiverLogCode,
- kRtcpApplicationSpecificCastReceiverLogFrameCode,
- kRtcpApplicationSpecificCastReceiverLogEventCode,
-
- // RFC 5104.
- kRtcpPayloadSpecificFirCode,
- kRtcpPayloadSpecificFirItemCode,
-
- // RFC 6051.
- kRtcpGenericRtpFeedbackSrReqCode,
-};
-
-struct RtcpCommonHeader {
- uint8 V; // Version.
- bool P; // Padding.
- uint8 IC; // Item count / subtype.
- uint8 PT; // Packet Type.
- uint16 length_in_octets;
-};
-
-class RtcpParser {
- public:
- RtcpParser(const uint8* rtcp_data, size_t rtcp_length);
- ~RtcpParser();
-
- RtcpFieldTypes FieldType() const;
- const RtcpField& Field() const;
-
- bool IsValid() const;
-
- RtcpFieldTypes Begin();
- RtcpFieldTypes Iterate();
-
- private:
- enum ParseState {
- kStateTopLevel, // Top level packet
- kStateReportBlock, // Sender/Receiver report report blocks.
- kStateSdes,
- kStateBye,
- kStateApplicationSpecificCastReceiverFrameLog,
- kStateApplicationSpecificCastReceiverEventLog,
- kStateExtendedReportBlock,
- kStateExtendedReportDelaySinceLastReceiverReport,
- kStateGenericRtpFeedbackNack,
- kStatePayloadSpecificRpsi,
- kStatePayloadSpecificFir,
- kStatePayloadSpecificApplication,
- kStatePayloadSpecificRemb, // Application specific Remb.
- kStatePayloadSpecificCast, // Application specific Cast.
- kStatePayloadSpecificCastNack, // Application specific Nack for Cast.
- };
-
- bool RtcpParseCommonHeader(const uint8* begin,
- const uint8* end,
- RtcpCommonHeader* parsed_header) const;
-
- void IterateTopLevel();
- void IterateReportBlockItem();
- void IterateSdesItem();
- void IterateByeItem();
- void IterateCastReceiverLogFrame();
- void IterateCastReceiverLogEvent();
- void IterateExtendedReportItem();
- void IterateExtendedReportDelaySinceLastReceiverReportItem();
- void IterateNackItem();
- void IterateRpsiItem();
- void IterateFirItem();
- void IteratePayloadSpecificAppItem();
- void IteratePayloadSpecificRembItem();
- void IteratePayloadSpecificCastItem();
- void IteratePayloadSpecificCastNackItem();
-
- void Validate();
- void EndCurrentBlock();
-
- bool ParseRR();
- bool ParseSR();
- bool ParseReportBlockItem();
-
- bool ParseSdes();
- bool ParseSdesItem();
- bool ParseSdesTypes();
- bool ParseBye();
- bool ParseByeItem();
- bool ParseApplicationDefined(uint8 subtype);
- bool ParseCastReceiverLogFrameItem();
- bool ParseCastReceiverLogEventItem();
-
- bool ParseExtendedReport();
- bool ParseExtendedReportItem();
- bool ParseExtendedReportReceiverReferenceTimeReport();
- bool ParseExtendedReportDelaySinceLastReceiverReport();
-
- bool ParseFeedBackCommon(const RtcpCommonHeader& header);
- bool ParseNackItem();
- bool ParseRpsiItem();
- bool ParseFirItem();
- bool ParsePayloadSpecificAppItem();
- bool ParsePayloadSpecificRembItem();
- bool ParsePayloadSpecificCastItem();
- bool ParsePayloadSpecificCastNackItem();
-
- private:
- const uint8* const rtcp_data_begin_;
- const uint8* const rtcp_data_end_;
-
- bool valid_packet_;
- const uint8* rtcp_data_;
- const uint8* rtcp_block_end_;
-
- ParseState state_;
- uint8 number_of_blocks_;
- RtcpFieldTypes field_type_;
- RtcpField field_;
-
- DISALLOW_COPY_AND_ASSIGN(RtcpParser);
-};
-
-// Converts a log event type to an integer value.
-// NOTE: We have only allocated 4 bits to represent the type of event over the
-// wire. Therefore, this function can only return values from 0 to 15.
-uint8 ConvertEventTypeToWireFormat(CastLoggingEvent event);
-
-// The inverse of |ConvertEventTypeToWireFormat()|.
-CastLoggingEvent TranslateToLogEventFromWireFormat(uint8 event);
-
-} // namespace cast
-} // namespace media
-
-#endif // MEDIA_CAST_RTCP_RTCP_UTILITY_H_
« no previous file with comments | « media/cast/rtcp/rtcp_unittest.cc ('k') | media/cast/rtcp/rtcp_utility.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698