| // Copyright 2014 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. |
| |
| // Protocol for audio messages. |
| |
| syntax = "proto2"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| package media.cast.proto; |
| |
| // Keep in sync with media/cast/logging/logging_defines.h. |
| // For compatibility reasons, existing values in this enum must not be changed. |
| enum EventType { |
| UNKNOWN = 0; |
| |
| // Note: 1-28 are deprecated in favor of unified event types. Do not use. |
| // Generic events. No longer used. |
| RTT_MS = 1; |
| PACKET_LOSS = 2; |
| JITTER_MS = 3; |
| VIDEO_ACK_RECEIVED = 4; // Sender side frame event. |
| REMB_BITRATE = 5; // Generic event. No longer used. |
| // Audio receiver. |
| AUDIO_ACK_SENT = 6; |
| // Video receiver. |
| VIDEO_ACK_SENT = 7; |
| // Audio sender. |
| AUDIO_FRAME_CAPTURE_END = 8; |
| AUDIO_FRAME_CAPTURE_BEGIN = 9; |
| AUDIO_FRAME_ENCODED = 10; |
| // Audio receiver. |
| AUDIO_PLAYOUT_DELAY = 11; |
| AUDIO_FRAME_DECODED = 12; |
| // Video sender. |
| VIDEO_FRAME_CAPTURE_BEGIN = 13; |
| VIDEO_FRAME_CAPTURE_END = 14; |
| VIDEO_FRAME_SENT_TO_ENCODER = 15; // Deprecated |
| VIDEO_FRAME_ENCODED = 16; |
| // Video receiver. |
| VIDEO_FRAME_DECODED = 17; |
| VIDEO_RENDER_DELAY = 18; |
| // Send-side packet events. |
| // AUDIO_PACKET_SENT_TO_PACER = 19; // Deprecated |
| // VIDEO_PACKET_SENT_TO_PACER = 20; // Deprecated |
| AUDIO_PACKET_SENT_TO_NETWORK = 21; |
| VIDEO_PACKET_SENT_TO_NETWORK = 22; |
| AUDIO_PACKET_RETRANSMITTED = 23; |
| VIDEO_PACKET_RETRANSMITTED = 24; |
| // Receiver-side packet events. |
| AUDIO_PACKET_RECEIVED = 25; |
| VIDEO_PACKET_RECEIVED = 26; |
| DUPLICATE_AUDIO_PACKET_RECEIVED = 27; |
| DUPLICATE_VIDEO_PACKET_RECEIVED = 28; |
| |
| |
| // New, unified event types. |
| FRAME_CAPTURE_BEGIN = 29; |
| FRAME_CAPTURE_END = 30; |
| FRAME_ENCODED = 31; |
| FRAME_ACK_RECEIVED = 32; |
| FRAME_ACK_SENT = 33; |
| FRAME_DECODED = 34; |
| FRAME_PLAYOUT = 35; |
| PACKET_SENT_TO_NETWORK = 36; |
| PACKET_RETRANSMITTED = 37; |
| PACKET_RECEIVED = 38; |
| PACKET_RTX_REJECTED = 39; |
| } |
| |
| // Contains information independent of the stream that describes the system |
| // setup, e.g. OS and hardware info. |
| message GeneralDescription { |
| optional string product = 1; |
| optional string product_version = 2; |
| optional string os = 3; |
| } |
| |
| // Each log will contain one |LogMetadata|. |
| message LogMetadata { |
| // |true| if the events are related to audio. |false| if they are related to |
| // video. |
| optional bool is_audio = 1; |
| |
| // Used as a reference for all event entries. |
| // i.e. the original RTP timestamp for each event will be |
| // |first_rtp_timestamp| + |relative_rtp_timestamp|. |
| optional uint32 first_rtp_timestamp = 2; |
| |
| // Number of AggregatedFrameEvent's. |
| optional int32 num_frame_events = 3; |
| |
| // Number of AggregatedPacketEvent's. |
| optional int32 num_packet_events = 4; |
| |
| // The internal timestamp value in milliseconds that represents the time |
| // of the Unix epoch. This is used for relating the timestamps in the events |
| // to a real time and date. |
| optional int64 reference_timestamp_ms_at_unix_epoch = 5; |
| |
| // Extra data to attach to the log, e.g. experiment tags, |
| // in key-value JSON string format. The data is supplied by the application. |
| optional string extra_data = 6; |
| |
| optional GeneralDescription general_description = 7; |
| } |
| |
| message AggregatedFrameEvent { |
| optional uint32 relative_rtp_timestamp = 1; |
| |
| repeated EventType event_type = 2 [packed = true]; |
| |
| // The internal timestamp value in milliseconds. Use |
| // LogMetadata.reference_timestamp_ms_at_unix_epoch to relate to a real time |
| // and date. |
| repeated int64 event_timestamp_ms = 3 [packed = true]; |
| |
| // Only set if there is a frame encoded event. |
| optional int32 encoded_frame_size = 4; |
| |
| // Only set if there is a frame playout event. |
| optional int64 delay_millis = 5; |
| |
| // Only set if there is a video frame encoded event. |
| optional bool key_frame = 6; |
| |
| // Only set if there is a video frame encoded event. |
| optional int32 target_bitrate = 7; |
| |
| // Only set if there is a frame capture event. |
| optional int32 width = 8; |
| optional int32 height = 9; |
| |
| // Only set if there is a frame encoded event. |
| optional int32 encoder_cpu_percent_utilized = 10; |
| optional int32 idealized_bitrate_percent_utilized = 11; |
| }; |
| |
| message BasePacketEvent { |
| optional int32 packet_id = 1; |
| repeated EventType event_type = 2 [packed = true]; |
| |
| // The internal timestamp value in milliseconds. Use |
| // LogMetadata.reference_timestamp_ms_at_unix_epoch to relate to a real time |
| // and date. |
| repeated int64 event_timestamp_ms = 3 [packed = true]; |
| |
| // Size of the packet. |
| optional int32 size = 4; |
| } |
| |
| message AggregatedPacketEvent { |
| optional uint32 relative_rtp_timestamp = 1; |
| repeated BasePacketEvent base_packet_event = 2; |
| }; |
| |