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