Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(299)

Side by Side Diff: content/renderer/media/webrtc_audio_device_impl.h

Issue 334743006: Support multiple files for AEC dump. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase again... Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_
6 #define CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_ 6 #define CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 // Returns true if the capture device has a paired output device, otherwise 346 // Returns true if the capture device has a paired output device, otherwise
347 // false. Note that if there are more than one open capture device the 347 // false. Note that if there are more than one open capture device the
348 // function will not be able to pick an appropriate device and return false. 348 // function will not be able to pick an appropriate device and return false.
349 bool GetAuthorizedDeviceInfoForAudioRenderer( 349 bool GetAuthorizedDeviceInfoForAudioRenderer(
350 int* session_id, int* output_sample_rate, int* output_buffer_size); 350 int* session_id, int* output_sample_rate, int* output_buffer_size);
351 351
352 const scoped_refptr<WebRtcAudioRenderer>& renderer() const { 352 const scoped_refptr<WebRtcAudioRenderer>& renderer() const {
353 return renderer_; 353 return renderer_;
354 } 354 }
355 355
356 // Enables the Aec dump. If the default capturer exists, it will call
357 // StartAecDump() on the capturer and pass the ownership of the file to
358 // WebRtc. Otherwise it will hold the file until a capturer is added.
359 void EnableAecDump(base::File aec_dump_file);
360
361 // Disables the Aec dump. When this method is called, the ongoing Aec dump
362 // on WebRtc will be stopped.
363 void DisableAecDump();
364
365 private: 356 private:
366 typedef std::list<scoped_refptr<WebRtcAudioCapturer> > CapturerList; 357 typedef std::list<scoped_refptr<WebRtcAudioCapturer> > CapturerList;
367 typedef std::list<WebRtcPlayoutDataSource::Sink*> PlayoutDataSinkList; 358 typedef std::list<WebRtcPlayoutDataSource::Sink*> PlayoutDataSinkList;
368 class RenderBuffer; 359 class RenderBuffer;
369 360
370 // Make destructor private to ensure that we can only be deleted by Release(). 361 // Make destructor private to ensure that we can only be deleted by Release().
371 virtual ~WebRtcAudioDeviceImpl(); 362 virtual ~WebRtcAudioDeviceImpl();
372 363
373 // PeerConnectionAudioSink implementation. 364 // PeerConnectionAudioSink implementation.
374 365
(...skipping 19 matching lines...) Expand all
394 int audio_delay_milliseconds, 385 int audio_delay_milliseconds,
395 base::TimeDelta* current_time) OVERRIDE; 386 base::TimeDelta* current_time) OVERRIDE;
396 387
397 // Called on the main render thread. 388 // Called on the main render thread.
398 virtual void RemoveAudioRenderer(WebRtcAudioRenderer* renderer) OVERRIDE; 389 virtual void RemoveAudioRenderer(WebRtcAudioRenderer* renderer) OVERRIDE;
399 390
400 // WebRtcPlayoutDataSource implementation. 391 // WebRtcPlayoutDataSource implementation.
401 virtual void AddPlayoutSink(WebRtcPlayoutDataSource::Sink* sink) OVERRIDE; 392 virtual void AddPlayoutSink(WebRtcPlayoutDataSource::Sink* sink) OVERRIDE;
402 virtual void RemovePlayoutSink(WebRtcPlayoutDataSource::Sink* sink) OVERRIDE; 393 virtual void RemovePlayoutSink(WebRtcPlayoutDataSource::Sink* sink) OVERRIDE;
403 394
404 // Helper to start the Aec dump if the default capturer exists.
405 void MaybeStartAecDump();
406
407 // Used to DCHECK that we are called on the correct thread. 395 // Used to DCHECK that we are called on the correct thread.
408 base::ThreadChecker thread_checker_; 396 base::ThreadChecker thread_checker_;
409 397
410 int ref_count_; 398 int ref_count_;
411 399
412 // List of captures which provides access to the native audio input layer 400 // List of captures which provides access to the native audio input layer
413 // in the browser process. 401 // in the browser process.
414 CapturerList capturers_; 402 CapturerList capturers_;
415 403
416 // Provides access to the audio renderer in the browser process. 404 // Provides access to the audio renderer in the browser process.
(...skipping 28 matching lines...) Expand all
445 bool recording_; 433 bool recording_;
446 434
447 // Stores latest microphone volume received in a CaptureData() callback. 435 // Stores latest microphone volume received in a CaptureData() callback.
448 // Range is [0, 255]. 436 // Range is [0, 255].
449 uint32_t microphone_volume_; 437 uint32_t microphone_volume_;
450 438
451 // Buffer used for temporary storage during render callback. 439 // Buffer used for temporary storage during render callback.
452 // It is only accessed by the audio render thread. 440 // It is only accessed by the audio render thread.
453 std::vector<int16> render_buffer_; 441 std::vector<int16> render_buffer_;
454 442
455 // Used for start the Aec dump on the default capturer.
456 base::File aec_dump_file_;
457
458 // Flag to tell if audio processing is enabled in MediaStreamAudioProcessor. 443 // Flag to tell if audio processing is enabled in MediaStreamAudioProcessor.
459 const bool is_audio_track_processing_enabled_; 444 const bool is_audio_track_processing_enabled_;
460 445
461 DISALLOW_COPY_AND_ASSIGN(WebRtcAudioDeviceImpl); 446 DISALLOW_COPY_AND_ASSIGN(WebRtcAudioDeviceImpl);
462 }; 447 };
463 448
464 } // namespace content 449 } // namespace content
465 450
466 #endif // CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_ 451 #endif // CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_
OLDNEW
« no previous file with comments | « content/renderer/media/webrtc_audio_capturer.cc ('k') | content/renderer/media/webrtc_audio_device_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698