// Copyright (c) 2012 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 remoting; message AudioPacket { optional int32 timestamp = 1 [default = 0]; // Packets with raw data must have exactly one data field. // For those packets, samples are signed and represented using little endian. // Some encoders (eg. Speex) may add multiple data fields to separate encoded // frames. repeated bytes data = 2; enum Encoding { ENCODING_INVALID = -1; ENCODING_RAW = 0; // Uncompressed encoding ENCODING_OPUS = 1; ENCODING_SPEEX = 2; } optional Encoding encoding = 3 [default = ENCODING_INVALID]; enum SamplingRate { SAMPLING_RATE_INVALID = -1; SAMPLING_RATE_44100 = 44100; SAMPLING_RATE_48000 = 48000; } optional SamplingRate sampling_rate = 4 [default = SAMPLING_RATE_INVALID]; enum BytesPerSample { BYTES_PER_SAMPLE_INVALID = -1; BYTES_PER_SAMPLE_2 = 2; } optional BytesPerSample bytes_per_sample = 5 [default = BYTES_PER_SAMPLE_INVALID]; enum Channels { CHANNELS_INVALID = -1; CHANNELS_MONO = 1; CHANNELS_STEREO = 2; } optional Channels channels = 6 [default = CHANNELS_INVALID]; }