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