Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(264)

Side by Side Diff: mojo/services/media/audio/interfaces/audio_track.mojom

Issue 1509323002: Mojom updates for Motown. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: sync with master Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 [DartPackage="mojo_services"]
5 module mojo.media; 6 module mojo.media;
6 7
7 import "mojo/services/media/common/interfaces/media_common.mojom"; 8 import "mojo/services/media/common/interfaces/media_common.mojom";
8 import "mojo/services/media/common/interfaces/media_pipe.mojom"; 9 import "mojo/services/media/common/interfaces/media_pipe.mojom";
9 import "mojo/services/media/common/interfaces/media_types.mojom"; 10 import "mojo/services/media/common/interfaces/media_types.mojom";
10 import "mojo/services/media/common/interfaces/rate_control.mojom"; 11 import "mojo/services/media/common/interfaces/rate_control.mojom";
11 12
12 struct AudioTrackDescriptor { 13 struct AudioTrackDescriptor {
13 // The track supports the union of all these media type sets. 14 // The track supports the union of all these media type sets.
14 array<MediaTypeSet> supported_media_types; 15 array<MediaTypeSet> supported_media_types;
15 }; 16 };
16 17
17 struct AudioTrackConfiguration { 18 struct AudioTrackConfiguration {
18 // The media type to use. 19 // The media type to use.
19 MediaType media_type; 20 MediaType media_type;
20 21
21 // Desired maximum buffer size, in frames of audio. 22 // Desired maximum buffer size, in frames of audio.
22 uint64 max_frames; 23 uint64 max_frames;
23 24
24 // Ratio of audio frames to media time ticks. 25 // Ratio of audio frames to media time ticks.
25 // 26 //
26 // Presentation time stamps on audio packets are expressed in units of media 27 // Presentation time stamps on audio packets are expressed in units of media
27 // time ticks. Many users will choose to use units of audio frames to express 28 // time ticks. Many users will choose to use units of audio frames to express
28 // their media time, and can simply leave this ratio at the default of 1:1. 29 // their media time, and can simply leave this ratio at the default of 1:1.
29 // For some, however, it may be more convenient to use different units for 30 // For some, however, it may be more convenient to use different units for
30 // media time. For example, if the audio frame rate was 48KHz, and the time 31 // media time. For example, if the audio frame rate was 48KHz, and the time
31 // stamps are expressed in 90KHz units (the units used by MPEG-2 Program 32 // stamps are expressed in 90KHz units (the units used by MPEG-2 Program
32 // Stream timestamps), the ratio should be set to 48000:90000 (aka, 8:15). 33 // Stream timestamps), the ratio should be set to 48000:90000 (aka, 8:15).
33 // IOW - audio_frame_ratio would be set to 8 and media_time_ratio would be set 34 // IOW - audio_frame_ratio would be set to 8 and media_time_ratio would be set
34 // to 15. 35 // to 15.
35 // 36 //
36 // Neither of these values may be 0. A configuration error will occur if they 37 // Neither of these values may be 0. A configuration error will occur if they
37 // are. 38 // are.
38 uint32 audio_frame_ratio = 1; 39 uint32 audio_frame_ratio = 1;
39 uint32 media_time_ratio = 1; 40 uint32 media_time_ratio = 1;
40 }; 41 };
41 42
42 interface AudioTrack { 43 interface AudioTrack {
43 // Get the descriptor. 44 // Get the descriptor.
44 Describe() => (AudioTrackDescriptor descriptor); 45 Describe() => (AudioTrackDescriptor descriptor);
45 46
46 // Set the configuration, receive a pipe to send data to in return. 47 // Set the configuration, receive a pipe to send data to in return.
47 // Possible results include... 48 // Possible results include...
48 // 49 //
49 // kOK: 50 // OK:
50 // Configuration successful, the bound pipe interface is ready to be used. 51 // Configuration successful, the bound pipe interface is ready to be used.
51 // 52 //
52 // kInvalidArgs: 53 // INVALID_ARGUMENT:
jeffbrown 2015/12/10 20:00:59 Several of these errors should be handled by closi
dalesat 2015/12/10 22:33:38 Acknowledged.
53 // One or more of the configuration arguments are illegal. For example, a 54 // One or more of the configuration arguments are illegal. For example, a
54 // value of 0 for either numerator or denominator of the audio frame to 55 // value of 0 for either numerator or denominator of the audio frame to
55 // media time ratio. 56 // media time ratio.
56 // 57 //
57 // kUnsupportedConfig: 58 // kUnsupportedConfig:
58 // The requested configuration is not supported by this track. 59 // The requested configuration is not supported by this track.
59 // 60 //
60 // kInsufficientResources: 61 // INSUFFICIENT_RESOURCES:
61 // Resource limitations prevent configuring the audio track is the desired 62 // Resource limitations prevent configuring the audio track is the desired
62 // way. Perhaps there is not enough RAM to support the 2.7 days of audio 63 // way. Perhaps there is not enough RAM to support the 2.7 days of audio
63 // buffer you requested, or perhaps there is not enough CPU power given the 64 // buffer you requested, or perhaps there is not enough CPU power given the
64 // existing active tracks in the system to support rendering 128 channels 65 // existing active tracks in the system to support rendering 128 channels
65 // at 1.5 MHz frame rate. 66 // at 1.5 MHz frame rate.
66 // 67 //
67 // kBadState: 68 // BAD_STATE:
68 // The track is already configured and has pending data in its pipe. Data 69 // The track is already configured and has pending data in its pipe. Data
69 // needs to be flushed and the media clock must be stopped before the track 70 // needs to be flushed and the media clock must be stopped before the track
70 // may be re-configured. 71 // may be re-configured.
71 Configure(AudioTrackConfiguration configuration, 72 Configure(AudioTrackConfiguration configuration,
72 MediaPipe& pipe) => (MediaResult result); 73 MediaPipe& pipe) => (MediaResult result);
73 74
74 // Request the rate control interface for this AudioTrack 75 // Request the rate control interface for this AudioTrack
75 // Possbile results include... 76 // Possbile results include...
76 // 77 //
77 // kOK: 78 // OK:
78 // Everything went well. 79 // Everything went well.
79 // 80 //
80 // kBadState: 81 // BAD_STATE:
81 // Rate control interface is already bound to a different client. 82 // Rate control interface is already bound to a different client.
82 GetRateControl(RateControl& rate_control) => (MediaResult result); 83 GetRateControl(RateControl& rate_control) => (MediaResult result);
83 }; 84 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698