OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "content/renderer/media/media_stream_dependency_factory.h" | 5 #include "content/renderer/media/media_stream_dependency_factory.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
665 pc_factory_ = factory; | 665 pc_factory_ = factory; |
666 webrtc::PeerConnectionFactoryInterface::Options factory_options; | 666 webrtc::PeerConnectionFactoryInterface::Options factory_options; |
667 factory_options.disable_sctp_data_channels = | 667 factory_options.disable_sctp_data_channels = |
668 cmd_line->HasSwitch(switches::kDisableSCTPDataChannels); | 668 cmd_line->HasSwitch(switches::kDisableSCTPDataChannels); |
669 factory_options.disable_encryption = | 669 factory_options.disable_encryption = |
670 cmd_line->HasSwitch(switches::kDisableWebRtcEncryption); | 670 cmd_line->HasSwitch(switches::kDisableWebRtcEncryption); |
671 pc_factory_->SetOptions(factory_options); | 671 pc_factory_->SetOptions(factory_options); |
672 | 672 |
673 // |aec_dump_file| will be invalid when dump is not enabled. | 673 // |aec_dump_file| will be invalid when dump is not enabled. |
674 if (aec_dump_file_ != base::kInvalidPlatformFileValue) { | 674 if (aec_dump_file_ != base::kInvalidPlatformFileValue) { |
675 FILE* aec_dump_file_stream = base::FdopenPlatformFile(aec_dump_file_, "w"); | 675 StartAecDump(aec_dump_file_); |
676 if (!aec_dump_file_stream) { | |
677 VLOG(1) << "Could not open AEC dump file."; | |
678 base::ClosePlatformFile(aec_dump_file_); | |
679 } else { | |
680 // |pc_factory_| takes ownership of |aec_dump_file_stream|. | |
681 pc_factory_->StartAecDump(aec_dump_file_stream); | |
682 } | |
683 aec_dump_file_ = base::kInvalidPlatformFileValue; | 676 aec_dump_file_ = base::kInvalidPlatformFileValue; |
684 } | 677 } |
685 | 678 |
686 return true; | 679 return true; |
687 } | 680 } |
688 | 681 |
689 bool MediaStreamDependencyFactory::PeerConnectionFactoryCreated() { | 682 bool MediaStreamDependencyFactory::PeerConnectionFactoryCreated() { |
690 return pc_factory_.get() != NULL; | 683 return pc_factory_.get() != NULL; |
691 } | 684 } |
692 | 685 |
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1020 IPC_MESSAGE_HANDLER(MediaStreamMsg_EnableAecDump, OnAecDumpFile) | 1013 IPC_MESSAGE_HANDLER(MediaStreamMsg_EnableAecDump, OnAecDumpFile) |
1021 IPC_MESSAGE_HANDLER(MediaStreamMsg_DisableAecDump, OnDisableAecDump) | 1014 IPC_MESSAGE_HANDLER(MediaStreamMsg_DisableAecDump, OnDisableAecDump) |
1022 IPC_MESSAGE_UNHANDLED(handled = false) | 1015 IPC_MESSAGE_UNHANDLED(handled = false) |
1023 IPC_END_MESSAGE_MAP() | 1016 IPC_END_MESSAGE_MAP() |
1024 return handled; | 1017 return handled; |
1025 } | 1018 } |
1026 | 1019 |
1027 void MediaStreamDependencyFactory::OnAecDumpFile( | 1020 void MediaStreamDependencyFactory::OnAecDumpFile( |
1028 IPC::PlatformFileForTransit file_handle) { | 1021 IPC::PlatformFileForTransit file_handle) { |
1029 DCHECK_EQ(aec_dump_file_, base::kInvalidPlatformFileValue); | 1022 DCHECK_EQ(aec_dump_file_, base::kInvalidPlatformFileValue); |
1030 aec_dump_file_ = IPC::PlatformFileForTransitToPlatformFile(file_handle); | 1023 if (PeerConnectionFactoryCreated()) { |
1031 DCHECK_NE(aec_dump_file_, base::kInvalidPlatformFileValue); | 1024 base::PlatformFile file = |
| 1025 IPC::PlatformFileForTransitToPlatformFile(file_handle); |
| 1026 DCHECK_NE(file, base::kInvalidPlatformFileValue); |
| 1027 StartAecDump(file); |
| 1028 } else { |
| 1029 aec_dump_file_ = IPC::PlatformFileForTransitToPlatformFile(file_handle); |
| 1030 DCHECK_NE(aec_dump_file_, base::kInvalidPlatformFileValue); |
| 1031 } |
1032 } | 1032 } |
1033 | 1033 |
1034 void MediaStreamDependencyFactory::OnDisableAecDump() { | 1034 void MediaStreamDependencyFactory::OnDisableAecDump() { |
1035 if (aec_dump_file_ != base::kInvalidPlatformFileValue) | 1035 if (aec_dump_file_ != base::kInvalidPlatformFileValue) |
1036 base::ClosePlatformFile(aec_dump_file_); | 1036 base::ClosePlatformFile(aec_dump_file_); |
1037 aec_dump_file_ = base::kInvalidPlatformFileValue; | 1037 aec_dump_file_ = base::kInvalidPlatformFileValue; |
1038 } | 1038 } |
1039 | 1039 |
| 1040 void MediaStreamDependencyFactory::StartAecDump( |
| 1041 const base::PlatformFile& aec_dump_file) { |
| 1042 FILE* aec_dump_file_stream = base::FdopenPlatformFile(aec_dump_file, "w"); |
| 1043 if (!aec_dump_file_stream) { |
| 1044 VLOG(1) << "Could not open AEC dump file."; |
| 1045 base::ClosePlatformFile(aec_dump_file); |
| 1046 } else { |
| 1047 // |pc_factory_| takes ownership of |aec_dump_file_stream|. |
| 1048 pc_factory_->StartAecDump(aec_dump_file_stream); |
| 1049 } |
| 1050 } |
| 1051 |
1040 } // namespace content | 1052 } // namespace content |
OLD | NEW |