Added fields for configuration information to the protobuf format

in the ACMDump. The ACMDump interface itself is not updated, so there
is no way (yet) to actually write the configuration fields.

BUG=

Review URL: https://codereview.webrtc.org/1202833003

Cr-Commit-Position: refs/heads/master@{#9519}
This commit is contained in:
terelius
2015-06-30 01:51:11 -07:00
committed by Commit bot
parent 2e43b26c78
commit 6e355af348

View File

@ -10,6 +10,7 @@ message ACMDumpEventStream {
repeated ACMDumpEvent stream = 1; repeated ACMDumpEvent stream = 1;
} }
message ACMDumpEvent { message ACMDumpEvent {
// required - Elapsed wallclock time in us since the start of the log. // required - Elapsed wallclock time in us since the start of the log.
optional int64 timestamp_us = 1; optional int64 timestamp_us = 1;
@ -21,6 +22,7 @@ message ACMDumpEvent {
UNKNOWN_EVENT = 0; UNKNOWN_EVENT = 0;
RTP_EVENT = 1; RTP_EVENT = 1;
DEBUG_EVENT = 2; DEBUG_EVENT = 2;
CONFIG_EVENT = 3;
} }
// required - Indicates the type of this event // required - Indicates the type of this event
@ -31,8 +33,12 @@ message ACMDumpEvent {
// optional - but required if type == DEBUG_EVENT // optional - but required if type == DEBUG_EVENT
optional ACMDumpDebugEvent debug_event = 4; optional ACMDumpDebugEvent debug_event = 4;
// optional - but required if type == CONFIG_EVENT
optional ACMDumpConfigEvent config = 5;
} }
message ACMDumpRTPPacket { message ACMDumpRTPPacket {
// Indicates if the packet is incoming or outgoing with respect to the user // Indicates if the packet is incoming or outgoing with respect to the user
// that is logging the data. // that is logging the data.
@ -58,6 +64,7 @@ message ACMDumpRTPPacket {
optional bytes RTP_data = 3; optional bytes RTP_data = 3;
} }
message ACMDumpDebugEvent { message ACMDumpDebugEvent {
// Indicates the type of the debug event. // Indicates the type of the debug event.
// LOG_START and LOG_END indicate the start and end of the log respectively. // LOG_START and LOG_END indicate the start and end of the log respectively.
@ -75,4 +82,88 @@ message ACMDumpDebugEvent {
// An optional message that can be used to store additional information about // An optional message that can be used to store additional information about
// the debug event. // the debug event.
optional string message = 2; optional string message = 2;
} }
// TODO(terelius): Video and audio streams could in principle share SSRC,
// so identifying a stream based only on SSRC might not work.
// It might be better to use a combination of SSRC and media type
// or SSRC and port number, but for now we will rely on SSRC only.
message ACMDumpConfigEvent {
// Synchronization source (stream identifier) to be received.
optional uint32 remote_ssrc = 1;
// RTX settings for incoming video payloads that may be received. RTX is
// disabled if there's no config present.
optional RtcpConfig rtcp_config = 3;
// Map from video RTP payload type -> RTX config.
repeated RtxMap rtx_map = 4;
// RTP header extensions used for the received stream.
repeated RtpHeaderExtension header_extensions = 5;
// List of decoders associated with the stream.
repeated DecoderConfig decoders = 6;
}
// Maps decoder names to payload types.
message DecoderConfig {
// required
optional string name = 1;
// required
optional sint32 payload_type = 2;
}
// Maps RTP header extension names to numerical ids.
message RtpHeaderExtension {
// required
optional string name = 1;
// required
optional sint32 id = 2;
}
// RTX settings for incoming video payloads that may be received.
// RTX is disabled if there's no config present.
message RtxConfig {
// required - SSRCs to use for the RTX streams.
optional uint32 ssrc = 1;
// required - Payload type to use for the RTX stream.
optional sint32 payload_type = 2;
}
message RtxMap {
// required
optional sint32 payload_type = 1;
// required
optional RtxConfig config = 2;
}
// Configuration information for RTCP.
// For bandwidth estimation purposes it is more interesting to log the
// RTCP messages that the sender receives, but we will support logging
// at the receiver side too.
message RtcpConfig {
// Sender SSRC used for sending RTCP (such as receiver reports).
optional uint32 local_ssrc = 1;
// RTCP mode to use. Compound mode is described by RFC 4585 and reduced-size
// RTCP mode is described by RFC 5506.
enum RtcpMode {RTCP_COMPOUND = 1; RTCP_REDUCEDSIZE = 2;}
optional RtcpMode rtcp_mode = 2;
// Extended RTCP settings.
optional bool receiver_reference_time_report = 3;
// Receiver estimated maximum bandwidth.
optional bool remb = 4;
}