Chromium Code Reviews| Index: services/media/framework/lpcm_util.h |
| diff --git a/services/media/framework/lpcm_util.h b/services/media/framework/lpcm_util.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6758472d248929dda141d5f10cb064d2b587fe09 |
| --- /dev/null |
| +++ b/services/media/framework/lpcm_util.h |
| @@ -0,0 +1,46 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef SERVICES_MEDIA_FRAMEWORK_LPCM_UTIL_H_ |
| +#define SERVICES_MEDIA_FRAMEWORK_LPCM_UTIL_H_ |
| + |
| +#include <memory> |
| + |
| +#include "services/media/framework/stream_type.h" |
| + |
| +namespace mojo { |
| +namespace media { |
| + |
| +// Helper class that performs various LPCM processing functions. |
| +class LpcmUtil { |
|
jeffbrown
2016/02/02 05:35:46
Avoid "Util" or "Helper" types. Perhaps call this
|
| + public: |
| + static std::unique_ptr<LpcmUtil> Create(const LpcmStreamType& stream_type); |
|
jeffbrown
2016/02/02 05:35:46
Can instances be shared? Consider GetInstance per
|
| + |
| + virtual ~LpcmUtil() {} |
| + |
| + // Fills the buffer with silence. |
| + virtual void Silence(void* buffer, uint64_t frame_count) const = 0; |
| + |
| + // Copies samples. |
| + virtual void Copy(const void* in, void* out, uint64_t frame_count) const = 0; |
| + |
| + // Mixes samples. |
|
jeffbrown
2016/02/02 05:35:46
The description is a bit unclear. Is this summing
|
| + virtual void Mix(const void* in, void* out, uint64_t frame_count) const = 0; |
| + |
| + // Interleaves non-interleaved samples. This assumes ffmpeg non-interleaved |
| + // ("planar") layout, in which the buffer (in) is divided evenly into a |
| + // channel buffer per channel. The samples for each channel are contiguous |
| + // in the respective channel buffer with possible empty space at the end |
| + // (hence the in_type_count and the frame_count). |
| + virtual void Interleave( |
| + const void* in, |
| + uint64_t in_byte_count, |
|
jeffbrown
2016/02/02 05:35:46
Mixing bytes and frames could be error prone.
|
| + void* out, |
| + uint64_t frame_count) const = 0; |
| +}; |
| + |
| +} // namespace media |
| +} // namespace mojo |
| + |
| +#endif // SERVICES_MEDIA_FRAMEWORK_LPCM_UTIL_H_ |