21 skyway::core::interface::RemoteStream,
22 skyway::core::stream::remote::RemoteAudioStream> {
25 RemoteAudioStream(std::shared_ptr<skyway::core::stream::remote::RemoteAudioStream> core);
30 std::shared_ptr<interface::remote::RemoteAudioStream::Listener> listener)
override;
34 std::shared_ptr<interface::remote::RemoteAudioStream::Listener> listener)
override;
35 rtc::scoped_refptr<webrtc::MediaStreamTrackInterface> Track()
const override;
38 class PcmAudioTrackSink :
public webrtc::AudioTrackSinkInterface {
40 explicit PcmAudioTrackSink(
41 std::shared_ptr<interface::remote::RemoteAudioStream::Listener> listener);
42 void OnData(
const void* audio_data,
45 size_t number_of_channels,
46 size_t number_of_frames,
47 absl::optional<int64_t>)
override;
50 std::shared_ptr<interface::remote::RemoteAudioStream::Listener> listener_;
53 std::unordered_map<std::shared_ptr<interface::remote::RemoteAudioStream::Listener>,
54 std::shared_ptr<PcmAudioTrackSink>>
56 std::mutex sinks_mtx_;