- add sources.
[platform/framework/web/crosswalk.git] / src / remoting / proto / audio.proto
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
7 syntax = "proto2";
8
9 option optimize_for = LITE_RUNTIME;
10
11 package remoting;
12
13 message 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