blob: dacfb5e273ba01387966f94791e5a87c5fd5155c [file] [log] [blame]
// 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];
}