diff options
Diffstat (limited to 'chromium/media/cast/logging/proto/raw_events.proto')
-rw-r--r-- | chromium/media/cast/logging/proto/raw_events.proto | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/chromium/media/cast/logging/proto/raw_events.proto b/chromium/media/cast/logging/proto/raw_events.proto new file mode 100644 index 00000000000..1d2c537db8f --- /dev/null +++ b/chromium/media/cast/logging/proto/raw_events.proto @@ -0,0 +1,149 @@ +// 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 int32 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; +}; + +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; +}; + |