• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Protocol for audio messages.
6
7syntax = "proto2";
8
9option optimize_for = LITE_RUNTIME;
10
11package remoting;
12
13message AudioPacket {
14  optional int32 timestamp = 1 [default = 0];
15
16  // Packets with raw data must have exactly one data field.
17  // For those packets, samples are signed and represented using little endian.
18  // Some encoders (eg. Speex) may add multiple data fields to separate encoded
19  // frames.
20  repeated bytes data = 2;
21
22  enum Encoding {
23    ENCODING_INVALID = -1;
24    ENCODING_RAW = 0;  // Uncompressed encoding
25    ENCODING_OPUS = 1;
26    ENCODING_SPEEX = 2;
27  }
28
29  optional Encoding encoding = 3 [default = ENCODING_INVALID];
30
31  enum SamplingRate {
32    SAMPLING_RATE_INVALID = -1;
33    SAMPLING_RATE_44100 = 44100;
34    SAMPLING_RATE_48000 = 48000;
35  }
36
37  optional SamplingRate sampling_rate = 4 [default = SAMPLING_RATE_INVALID];
38
39  enum BytesPerSample {
40    BYTES_PER_SAMPLE_INVALID = -1;
41    BYTES_PER_SAMPLE_2 = 2;
42  }
43
44  optional BytesPerSample bytes_per_sample = 5
45      [default = BYTES_PER_SAMPLE_INVALID];
46
47  enum Channels {
48    CHANNELS_INVALID = -1;
49    CHANNELS_MONO = 1;
50    CHANNELS_STEREO = 2;
51  }
52
53  optional Channels channels = 6 [default = CHANNELS_INVALID];
54}
55
56