| // Copyright 2017 The Fuchsia 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 SRC_MEDIA_AUDIO_AUDIO_CORE_AUDIO_RENDERER_FORMAT_INFO_H_ |
| #define SRC_MEDIA_AUDIO_AUDIO_CORE_AUDIO_RENDERER_FORMAT_INFO_H_ |
| |
| #include <fbl/ref_counted.h> |
| #include <fuchsia/media/cpp/fidl.h> |
| #include <stdint.h> |
| |
| #include "lib/media/timeline/timeline_rate.h" |
| #include "src/lib/fxl/macros.h" |
| #include "src/media/audio/audio_core/fwd_decls.h" |
| |
| namespace media::audio { |
| |
| class AudioRendererFormatInfo |
| : public fbl::RefCounted<AudioRendererFormatInfo> { |
| public: |
| static fbl::RefPtr<AudioRendererFormatInfo> Create( |
| fuchsia::media::AudioStreamType format); |
| |
| const fuchsia::media::AudioStreamType& format() const { return format_; } |
| const TimelineRate& frames_per_ns() const { return frames_per_ns_; } |
| const TimelineRate& frame_to_media_ratio() const { |
| return frame_to_media_ratio_; |
| } |
| uint32_t bytes_per_frame() const { return bytes_per_frame_; } |
| |
| private: |
| FXL_DISALLOW_COPY_AND_ASSIGN(AudioRendererFormatInfo); |
| |
| AudioRendererFormatInfo(fuchsia::media::AudioStreamType format); |
| |
| fuchsia::media::AudioStreamType format_; |
| TimelineRate frames_per_ns_; |
| TimelineRate frame_to_media_ratio_; |
| uint32_t bytes_per_frame_; |
| }; |
| |
| } // namespace media::audio |
| |
| #endif // SRC_MEDIA_AUDIO_AUDIO_CORE_AUDIO_RENDERER_FORMAT_INFO_H_ |