OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2004 Google Inc. | 3 * Copyright 2004 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 return true; | 301 return true; |
302 } | 302 } |
303 virtual bool SetRemoteRenderer(uint32_t ssrc, AudioRenderer* renderer) { | 303 virtual bool SetRemoteRenderer(uint32_t ssrc, AudioRenderer* renderer) { |
304 std::map<uint32_t, AudioRenderer*>::iterator it = | 304 std::map<uint32_t, AudioRenderer*>::iterator it = |
305 remote_renderers_.find(ssrc); | 305 remote_renderers_.find(ssrc); |
306 if (renderer) { | 306 if (renderer) { |
307 if (it != remote_renderers_.end()) { | 307 if (it != remote_renderers_.end()) { |
308 ASSERT(it->second == renderer); | 308 ASSERT(it->second == renderer); |
309 } else { | 309 } else { |
310 remote_renderers_.insert(std::make_pair(ssrc, renderer)); | 310 remote_renderers_.insert(std::make_pair(ssrc, renderer)); |
| 311 renderer->AddChannel(0); |
311 } | 312 } |
312 } else { | 313 } else { |
313 if (it != remote_renderers_.end()) { | 314 if (it != remote_renderers_.end()) { |
| 315 it->second->RemoveChannel(0); |
314 remote_renderers_.erase(it); | 316 remote_renderers_.erase(it); |
315 } else { | 317 } else { |
316 return false; | 318 return false; |
317 } | 319 } |
318 } | 320 } |
319 return true; | 321 return true; |
320 } | 322 } |
321 | 323 |
322 virtual bool GetActiveStreams(AudioInfo::StreamList* streams) { return true; } | 324 virtual bool GetActiveStreams(AudioInfo::StreamList* streams) { return true; } |
323 virtual int GetOutputLevel() { return 0; } | 325 virtual int GetOutputLevel() { return 0; } |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 private: | 375 private: |
374 struct OutputScaling { | 376 struct OutputScaling { |
375 OutputScaling() : left(1.0), right(1.0) {} | 377 OutputScaling() : left(1.0), right(1.0) {} |
376 double left, right; | 378 double left, right; |
377 }; | 379 }; |
378 | 380 |
379 class VoiceChannelAudioSink : public AudioRenderer::Sink { | 381 class VoiceChannelAudioSink : public AudioRenderer::Sink { |
380 public: | 382 public: |
381 explicit VoiceChannelAudioSink(AudioRenderer* renderer) | 383 explicit VoiceChannelAudioSink(AudioRenderer* renderer) |
382 : renderer_(renderer) { | 384 : renderer_(renderer) { |
| 385 renderer_->AddChannel(0); |
383 renderer_->SetSink(this); | 386 renderer_->SetSink(this); |
384 } | 387 } |
385 virtual ~VoiceChannelAudioSink() { | 388 virtual ~VoiceChannelAudioSink() { |
386 if (renderer_) { | 389 if (renderer_) { |
| 390 renderer_->RemoveChannel(0); |
387 renderer_->SetSink(NULL); | 391 renderer_->SetSink(NULL); |
388 } | 392 } |
389 } | 393 } |
390 void OnData(const void* audio_data, | 394 void OnData(const void* audio_data, |
391 int bits_per_sample, | 395 int bits_per_sample, |
392 int sample_rate, | 396 int sample_rate, |
393 int number_of_channels, | 397 int number_of_channels, |
394 size_t number_of_frames) override {} | 398 size_t number_of_frames) override {} |
395 void OnClose() override { renderer_ = NULL; } | 399 void OnClose() override { renderer_ = NULL; } |
396 AudioRenderer* renderer() const { return renderer_; } | 400 AudioRenderer* renderer() const { return renderer_; } |
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1006 | 1010 |
1007 private: | 1011 private: |
1008 std::vector<FakeDataMediaChannel*> channels_; | 1012 std::vector<FakeDataMediaChannel*> channels_; |
1009 std::vector<DataCodec> data_codecs_; | 1013 std::vector<DataCodec> data_codecs_; |
1010 DataChannelType last_channel_type_; | 1014 DataChannelType last_channel_type_; |
1011 }; | 1015 }; |
1012 | 1016 |
1013 } // namespace cricket | 1017 } // namespace cricket |
1014 | 1018 |
1015 #endif // TALK_MEDIA_BASE_FAKEMEDIAENGINE_H_ | 1019 #endif // TALK_MEDIA_BASE_FAKEMEDIAENGINE_H_ |
OLD | NEW |