Index: media/base/audio_buffer.h |
diff --git a/media/base/audio_buffer.h b/media/base/audio_buffer.h |
index 63390d4781cacca98c636d465b0e75c28fecd50f..bf8e4334912e78736dba4e3c1e6204beb6d6fec1 100644 |
--- a/media/base/audio_buffer.h |
+++ b/media/base/audio_buffer.h |
@@ -15,9 +15,20 @@ |
#include "media/base/media_export.h" |
#include "media/base/sample_format.h" |
+namespace mojo { |
+template <typename T, typename U> |
+struct TypeConverter; |
+template <typename T> |
+class StructPtr; |
+}; |
+ |
namespace media { |
class AudioBus; |
+namespace interfaces { |
+class AudioBuffer; |
+} |
+ |
// An audio buffer that takes a copy of the data passed to it, holds it, and |
// copies it into an AudioBus when needed. Also supports an end of stream |
// marker. |
@@ -123,6 +134,11 @@ class MEDIA_EXPORT AudioBuffer |
private: |
friend class base::RefCountedThreadSafe<AudioBuffer>; |
+ // mojo::TypeConverter added as a friend so that AudioBuffer can be |
+ // transferred across a mojo connection. |
+ friend struct mojo::TypeConverter<mojo::StructPtr<interfaces::AudioBuffer>, |
+ scoped_refptr<AudioBuffer>>; |
+ |
// Allocates aligned contiguous buffer to hold all channel data (1 block for |
// interleaved data, |channel_count| blocks for planar data), copies |
// [data,data+data_size) to the allocated buffer(s). If |data| is null, no |
@@ -151,6 +167,7 @@ class MEDIA_EXPORT AudioBuffer |
// Contiguous block of channel data. |
scoped_ptr<uint8, base::AlignedFreeDeleter> data_; |
+ size_t data_size_; |
// For planar data, points to each channels data. |
std::vector<uint8*> channel_data_; |