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

Side by Side Diff: media/audio/audio_io.h

Issue 4661001: Simplified AudioOutputStream interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 10 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #ifndef MEDIA_AUDIO_AUDIO_IO_H_ 5 #ifndef MEDIA_AUDIO_AUDIO_IO_H_
6 #define MEDIA_AUDIO_AUDIO_IO_H_ 6 #define MEDIA_AUDIO_AUDIO_IO_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "media/audio/audio_buffers_state.h" 9 #include "media/audio/audio_buffers_state.h"
10 10
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 // Provide more data by filling |dest| up to |max_size| bytes. The provided 53 // Provide more data by filling |dest| up to |max_size| bytes. The provided
54 // buffer size is usually what is specified in Open(). The source 54 // buffer size is usually what is specified in Open(). The source
55 // will return the number of bytes it filled. The expected structure of 55 // will return the number of bytes it filled. The expected structure of
56 // |dest| is platform and format specific. 56 // |dest| is platform and format specific.
57 // |pending_bytes| is the number of bytes will be played before the 57 // |pending_bytes| is the number of bytes will be played before the
58 // requested data is played. 58 // requested data is played.
59 virtual uint32 OnMoreData( 59 virtual uint32 OnMoreData(
60 AudioOutputStream* stream, uint8* dest, uint32 max_size, 60 AudioOutputStream* stream, uint8* dest, uint32 max_size,
61 AudioBuffersState buffers_state) = 0; 61 AudioBuffersState buffers_state) = 0;
62 62
63 // The stream is done with this callback. After this call the audio source
64 // can go away or be destroyed.
65 virtual void OnClose(AudioOutputStream* stream) = 0;
66
67 // There was an error while playing a buffer. Audio source cannot be 63 // There was an error while playing a buffer. Audio source cannot be
68 // destroyed yet. No direct action needed by the AudioStream, but it is 64 // destroyed yet. No direct action needed by the AudioStream, but it is
69 // a good place to stop accumulating sound data since is is likely that 65 // a good place to stop accumulating sound data since is is likely that
70 // playback will not continue. |code| is an error code that is platform 66 // playback will not continue. |code| is an error code that is platform
71 // specific. 67 // specific.
72 virtual void OnError(AudioOutputStream* stream, int code) = 0; 68 virtual void OnError(AudioOutputStream* stream, int code) = 0;
73 }; 69 };
74 70
75 // Open the stream. |packet_size| is the requested buffer allocation which 71 // Open the stream.
scherkus (not reviewing) 2010/11/09 02:28:31 so a lot of the comments went away does it not ap
Sergey Ulanov 2010/11/09 22:29:58 The comments about |packet_size| do not apply anym
76 // the audio source thinks it can usually fill without blocking. Internally 72 virtual bool Open() = 0;
77 // two or three buffers of |packet_size| size are created, one will be
78 // locked for playback and one will be ready to be filled in the call to
79 // AudioSourceCallback::OnMoreData().
80 // The number of buffers is controlled by AUDIO_PCM_LOW_LATENCY. See more
81 // information below.
82 //
83 // TODO(ajwong): Streams are not reusable, so try to move packet_size into the
84 // constructor.
85 virtual bool Open(uint32 packet_size) = 0;
86 73
87 // Starts playing audio and generating AudioSourceCallback::OnMoreData(). 74 // Starts playing audio and generating AudioSourceCallback::OnMoreData().
88 // Since implementor of AudioOutputStream may have internal buffers, right 75 // Since implementor of AudioOutputStream may have internal buffers, right
89 // after calling this method initial buffers are fetched. 76 // after calling this method initial buffers are fetched.
90 // 77 //
91 // The output stream does not take ownership of this callback. 78 // The output stream does not take ownership of this callback.
92 virtual void Start(AudioSourceCallback* callback) = 0; 79 virtual void Start(AudioSourceCallback* callback) = 0;
93 80
94 // Stops playing audio. Effect might not be instantaneous as the hardware 81 // Stops playing audio. Effect might not be instantaneous as the hardware
95 // might have locked audio data that is processing. 82 // might have locked audio data that is processing.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 136
150 // Close the stream. This also generates AudioInputCallback::OnClose(). This 137 // Close the stream. This also generates AudioInputCallback::OnClose(). This
151 // should be the last call made on this object. 138 // should be the last call made on this object.
152 virtual void Close() = 0; 139 virtual void Close() = 0;
153 140
154 protected: 141 protected:
155 virtual ~AudioInputStream() {} 142 virtual ~AudioInputStream() {}
156 }; 143 };
157 144
158 #endif // MEDIA_AUDIO_AUDIO_IO_H_ 145 #endif // MEDIA_AUDIO_AUDIO_IO_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698