| OLD | NEW | 
| (Empty) |  | 
 |    1 syntax = "proto2"; | 
 |    2 option optimize_for = LITE_RUNTIME; | 
 |    3 package webrtc; | 
 |    4  | 
 |    5 // This is the main message to dump to a file, it can contain multiple event | 
 |    6 // messages, but it is possible to append multiple EventStreams (each with a | 
 |    7 // single event) to a file. | 
 |    8 // This has the benefit that there's no need to keep all data in memory. | 
 |    9 message RelEventStream { | 
 |   10   repeated RelEvent stream = 1; | 
 |   11 } | 
 |   12  | 
 |   13  | 
 |   14 message RelEvent { | 
 |   15   // required - Elapsed wallclock time in us since the start of the log. | 
 |   16   optional int64 timestamp_us = 1; | 
 |   17  | 
 |   18   // The different types of events that can occur, the UNKNOWN_EVENT entry | 
 |   19   // is added in case future EventTypes are added, in that case old code will | 
 |   20   // receive the new events as UNKNOWN_EVENT. | 
 |   21   enum EventType { | 
 |   22     UNKNOWN_EVENT = 0; | 
 |   23     RTP_EVENT = 1; | 
 |   24     RTCP_EVENT = 2; | 
 |   25     DEBUG_EVENT = 3; | 
 |   26     RECEIVER_CONFIG_EVENT = 4; | 
 |   27     SENDER_CONFIG_EVENT = 5; | 
 |   28     AUDIO_RECEIVER_CONFIG_EVENT = 6; | 
 |   29     AUDIO_SENDER_CONFIG_EVENT = 7; | 
 |   30   } | 
 |   31  | 
 |   32   // required - Indicates the type of this event | 
 |   33   optional EventType type = 2; | 
 |   34  | 
 |   35   // optional - but required if type == RTP_EVENT | 
 |   36   optional RelRtpPacket rtp_packet = 3; | 
 |   37  | 
 |   38   // optional - but required if type == RTCP_EVENT | 
 |   39   optional RelRtcpPacket rtcp_packet = 4; | 
 |   40  | 
 |   41   // optional - but required if type == DEBUG_EVENT | 
 |   42   optional RelDebugEvent debug_event = 5; | 
 |   43  | 
 |   44   // optional - but required if type == RECEIVER_CONFIG_EVENT | 
 |   45   optional RelVideoReceiveConfig receiver_config = 6; | 
 |   46  | 
 |   47   // optional - but required if type == SENDER_CONFIG_EVENT | 
 |   48   optional RelVideoSendConfig sender_config = 7; | 
 |   49  | 
 |   50   // optional - but required if type == AUDIO_RECEIVER_CONFIG_EVENT | 
 |   51   optional RelAudioReceiveConfig audio_receiver_config = 8; | 
 |   52  | 
 |   53   // optional - but required if type == AUDIO_SENDER_CONFIG_EVENT | 
 |   54   optional RelAudioSendConfig audio_sender_config = 9; | 
 |   55 } | 
 |   56  | 
 |   57  | 
 |   58 message RelRtpPacket { | 
 |   59   // Indicates if the packet is incoming or outgoing with respect to the user | 
 |   60   // that is logging the data. | 
 |   61   enum Direction { | 
 |   62     UNKNOWN_DIRECTION = 0; | 
 |   63     OUTGOING = 1; | 
 |   64     INCOMING = 2; | 
 |   65   } | 
 |   66   enum PayloadType { | 
 |   67     UNKNOWN_TYPE = 0; | 
 |   68     AUDIO = 1; | 
 |   69     VIDEO = 2; | 
 |   70     RTX = 3;  // TODO(terelius): Where does this get set? | 
 |   71   } | 
 |   72  | 
 |   73   // required | 
 |   74   optional Direction direction = 1; | 
 |   75  | 
 |   76   // required | 
 |   77   optional PayloadType type = 2; | 
 |   78  | 
 |   79   // required - The size of the packet including both payload and header. | 
 |   80   optional uint32 packet_length = 3; | 
 |   81  | 
 |   82   // required - The RTP header only. | 
 |   83   optional bytes header = 4; | 
 |   84  | 
 |   85   // Logging payloads for user data requires privacy review. Don't uncomment. | 
 |   86   // optional bytes payload = 5; | 
 |   87 } | 
 |   88  | 
 |   89  | 
 |   90 message RelRtcpPacket { | 
 |   91   // Indicates if the packet is incoming or outgoing with respect to the user | 
 |   92   // that is logging the data. | 
 |   93   enum Direction { | 
 |   94     UNKNOWN_DIRECTION = 0; | 
 |   95     OUTGOING = 1; | 
 |   96     INCOMING = 2; | 
 |   97   } | 
 |   98   enum PayloadType { | 
 |   99     UNKNOWN_TYPE = 0; | 
 |  100     AUDIO = 1; | 
 |  101     VIDEO = 2; | 
 |  102   } | 
 |  103  | 
 |  104   // required | 
 |  105   optional Direction direction = 1; | 
 |  106  | 
 |  107   // required | 
 |  108   optional PayloadType type = 2; | 
 |  109  | 
 |  110   // required - The whole packet including both payload and header. | 
 |  111   optional bytes data = 3; | 
 |  112 } | 
 |  113  | 
 |  114  | 
 |  115 message RelDebugEvent { | 
 |  116   // Indicates the type of the debug event. | 
 |  117   // LOG_START and LOG_END indicate the start and end of the log respectively. | 
 |  118   // AUDIO_PLAYOUT indicates a call to the PlayoutData10Ms() function in ACM. | 
 |  119   enum EventType { | 
 |  120     UNKNOWN_EVENT = 0; | 
 |  121     LOG_START = 1; | 
 |  122     LOG_END = 2; | 
 |  123     AUDIO_PLAYOUT = 3; | 
 |  124   } | 
 |  125  | 
 |  126   // required | 
 |  127   optional EventType type = 1; | 
 |  128  | 
 |  129   // An optional message that can be used to store additional information about | 
 |  130   // the debug event. | 
 |  131   optional string message = 2; | 
 |  132 } | 
 |  133  | 
 |  134  | 
 |  135 // TODO(terelius): Video and audio streams could in principle share SSRC, | 
 |  136 // so identifying a stream based only on SSRC might not work. | 
 |  137 // It might be better to use a combination of SSRC and media type | 
 |  138 // or SSRC and port number, but for now we will rely on SSRC only. | 
 |  139 message RelVideoReceiveConfig { | 
 |  140   // required - Synchronization source (stream identifier) to be received. | 
 |  141   optional uint32 remote_ssrc = 1; | 
 |  142   // required - Sender SSRC used for sending RTCP (such as receiver reports). | 
 |  143   optional uint32 local_ssrc = 2; | 
 |  144  | 
 |  145   // Compound mode is described by RFC 4585 and reduced-size | 
 |  146   // RTCP mode is described by RFC 5506. | 
 |  147   enum RtcpMode { | 
 |  148     RTCP_COMPOUND = 1; | 
 |  149     RTCP_REDUCEDSIZE = 2; | 
 |  150   } | 
 |  151   // required - RTCP mode to use. | 
 |  152   optional RtcpMode rtcp_mode = 3; | 
 |  153  | 
 |  154   // required - Extended RTCP settings. | 
 |  155   optional bool receiver_reference_time_report = 4; | 
 |  156  | 
 |  157   // required - Receiver estimated maximum bandwidth. | 
 |  158   optional bool remb = 5; | 
 |  159  | 
 |  160   // Map from video RTP payload type -> RTX config. | 
 |  161   repeated RtxMap rtx_map = 6; | 
 |  162  | 
 |  163   // RTP header extensions used for the received stream. | 
 |  164   repeated RtpHeaderExtension header_extensions = 7; | 
 |  165  | 
 |  166   // List of decoders associated with the stream. | 
 |  167   repeated DecoderConfig decoders = 8; | 
 |  168 } | 
 |  169  | 
 |  170  | 
 |  171 // Maps decoder names to payload types. | 
 |  172 message DecoderConfig { | 
 |  173   // required | 
 |  174   optional string name = 1; | 
 |  175  | 
 |  176   // required | 
 |  177   optional sint32 payload_type = 2; | 
 |  178 } | 
 |  179  | 
 |  180  | 
 |  181 // Maps RTP header extension names to numerical IDs. | 
 |  182 message RtpHeaderExtension { | 
 |  183   // required | 
 |  184   optional string name = 1; | 
 |  185  | 
 |  186   // required | 
 |  187   optional sint32 id = 2; | 
 |  188 } | 
 |  189  | 
 |  190  | 
 |  191 // RTX settings for incoming video payloads that may be received. | 
 |  192 // RTX is disabled if there's no config present. | 
 |  193 message RtxConfig { | 
 |  194   // required - SSRC to use for the RTX stream. | 
 |  195   optional uint32 rtx_ssrc = 1; | 
 |  196  | 
 |  197   // required - Payload type to use for the RTX stream. | 
 |  198   optional sint32 rtx_payload_type = 2; | 
 |  199 } | 
 |  200  | 
 |  201  | 
 |  202 message RtxMap { | 
 |  203   // required | 
 |  204   optional sint32 payload_type = 1; | 
 |  205  | 
 |  206   // required | 
 |  207   optional RtxConfig config = 2; | 
 |  208 } | 
 |  209  | 
 |  210  | 
 |  211 message RelVideoSendConfig { | 
 |  212   // Synchronization source (stream identifier) for outgoing stream. | 
 |  213   // One stream can have several ssrcs for e.g. simulcast. | 
 |  214   // At least one ssrc is required. | 
 |  215   repeated uint32 ssrcs = 1; | 
 |  216  | 
 |  217   // RTP header extensions used for the outgoing stream. | 
 |  218   repeated RtpHeaderExtension header_extensions = 2; | 
 |  219  | 
 |  220   // List of SSRCs for retransmitted packets. | 
 |  221   repeated uint32 rtx_ssrcs = 3; | 
 |  222  | 
 |  223   // required if rtx_ssrcs is used - Payload type for retransmitted packets. | 
 |  224   optional sint32 rtx_payload_type = 4; | 
 |  225  | 
 |  226   // required - Canonical end-point identifier. | 
 |  227   optional string c_name = 5; | 
 |  228  | 
 |  229   // required - Encoder associated with the stream. | 
 |  230   optional EncoderConfig encoder = 6; | 
 |  231 } | 
 |  232  | 
 |  233  | 
 |  234 // Maps encoder names to payload types. | 
 |  235 message EncoderConfig { | 
 |  236   // required | 
 |  237   optional string name = 1; | 
 |  238  | 
 |  239   // required | 
 |  240   optional sint32 payload_type = 2; | 
 |  241 } | 
 |  242  | 
 |  243  | 
 |  244 message RelAudioReceiveConfig { | 
 |  245   // TODO(terelius): Figure out what the requirements are from the audio team. | 
 |  246 } | 
 |  247  | 
 |  248  | 
 |  249 message RelAudioSendConfig { | 
 |  250   // TODO(terelius): Figure out what the requirements are from the audio team. | 
 |  251 } | 
| OLD | NEW |