For WebRTC test suite automation, this enables forwarding device with getUserMedia
when <tizen:metadata key="http://samsung.com/tv/metadata/audio.out.capture" value="true" />
is enabled in config.xml.
Change-Id: I1bbacf27c85d219b24d54e4fa9ad41d78257ff91
Signed-off-by: e.bugtong <e.bugtong@samsung.com>
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
+#if BUILDFLAG(IS_TIZEN_TV)
+#include "wrt/src/common/application_data.h"
+#endif
+
namespace content {
namespace {
BrowserMainLoop::GetInstance()->media_stream_manager())));
}
+#if BUILDFLAG(IS_TIZEN_TV)
+bool IsAudioOutCaptureEnabled() {
+ const char* kAudioOutCapture=
+ "http://samsung.com/tv/metadata/audio.out.capture";
+ auto& app_data = wrt::ApplicationData::GetInstance();
+ if (app_data.GetMetadata(kAudioOutCapture) == "true") {
+ LOG(INFO) << "audio.out.capture value is true";
+ return true;
+ }
+ return false;
+}
+#endif
+
} // namespace
MediaCaptureDevices* MediaCaptureDevices::GetInstance() {
devices_enumerated_ = true;
#if BUILDFLAG(IS_TIZEN_TV)
blink::MediaStreamDevices all_devices = devices;
- audio_forward_devices_ = ExtractAudioForwardDevices(all_devices);
+ // Check metadata for audio.out.capture to enable audio forwarding device
+ // used to capture system output audio
+ if (!IsAudioOutCaptureEnabled()) {
+ audio_forward_devices_ = ExtractAudioForwardDevices(all_devices);
+ }
audio_devices_ = all_devices;
#else
audio_devices_ = devices;
#include "content/browser/media/capture/sub_capture_target_id_web_contents_helper.h"
#endif
+#if BUILDFLAG(IS_TIZEN_TV)
+#include "wrt/src/common/application_data.h"
+#endif
+
using blink::mojom::MediaDeviceType;
namespace content {
return result;
}
+#if BUILDFLAG(IS_TIZEN_TV)
+bool IsAudioOutCaptureEnabled() {
+ const char* kAudioOutCapture=
+ "http://samsung.com/tv/metadata/audio.out.capture";
+ auto& app_data = wrt::ApplicationData::GetInstance();
+ if (app_data.GetMetadata(kAudioOutCapture) == "true") {
+ LOG(INFO) << "audio.out.capture value is true";
+ return true;
+ }
+ return false;
+}
+#endif
+
} // namespace
struct MediaDevicesDispatcherHost::AudioInputCapabilitiesRequest {
<< ",default id:" << default_device_id;
#if BUILDFLAG(IS_TIZEN_TV)
- // Tizen forwarding device is used to capture all tizen output audio,
- // only available for getDisplayMedia. make it's capibility be invisible
- // for other case.
- if (is_forwarding_device(device_info.label)) {
- LOG(INFO) << "ignore tizen forwarding device capability.";
- continue;
+ // Check metadata for audio.out.capture to enable audio forwarding device
+ // used to capture system output audio
+ if (!IsAudioOutCaptureEnabled()) {
+ // Tizen forwarding device is used to capture all tizen output audio,
+ // only available for getDisplayMedia. make it's capibility be invisible
+ // for other case.
+ if (is_forwarding_device(device_info.label)) {
+ LOG(INFO) << "ignore tizen forwarding device capability.";
+ continue;
+ }
}
+
#endif
if (device_info.device_id == default_device_id)
#if BUILDFLAG(IS_TIZEN_TV)
#include "media/capture/video/tizen/create_face_detection_library.h"
+#include "wrt/src/common/application_data.h"
#endif // BUILDFLAG(IS_TIZEN_TV)
namespace blink {
return constraints;
}
+#if BUILDFLAG(IS_TIZEN_TV)
+bool IsAudioOutCaptureEnabled() {
+ const char* kAudioOutCapture=
+ "http://samsung.com/tv/metadata/audio.out.capture";
+ auto& app_data = wrt::ApplicationData::GetInstance();
+ if (app_data.GetMetadata(kAudioOutCapture) == "true") {
+ LOG(INFO) << "audio.out.capture value is true";
+ return true;
+ }
+ return false;
+}
+#endif
+
} // namespace
const char MediaDevices::kSupplementName[] = "MediaDevices";
WebMediaDeviceInfo device_info = enumeration[i][j];
String device_label = String::FromUTF8(device_info.label);
#if BUILDFLAG(IS_TIZEN_TV)
- // Block tizen forwarding device, refer to:
- // https://review.tizen.org/gerrit/319068/
- if (device_label.Find("forwarding") != kNotFound) {
- continue;
+ // Check metadata for audio.out.capture to enable audio forwarding device
+ // used to capture system output audio
+ if (!IsAudioOutCaptureEnabled()) {
+ // Block tizen forwarding device, refer to:
+ // https://review.tizen.org/gerrit/319068/
+ if (device_label.Find("forwarding") != kNotFound) {
+ continue;
+ }
}
#endif
#if BUILDFLAG(IS_TIZEN_TV)
#include "wrt/src/common/privilege.h"
+#include "wrt/src/common/application_data.h"
#endif
#include <sound_manager_internal.h>
#if BUILDFLAG(IS_TIZEN_TV)
constexpr char kMediaCapturePrivilege[] =
"http://tizen.org/privilege/mediacapture";
+
+
+bool IsAudioOutCaptureEnabled() {
+ const char* kAudioOutCapture=
+ "http://samsung.com/tv/metadata/audio.out.capture";
+ auto& app_data = wrt::ApplicationData::GetInstance();
+ if (app_data.GetMetadata(kAudioOutCapture) == "true") {
+ LOG(INFO) << "audio.out.capture value is true";
+ return true;
+ }
+ return false;
+}
#endif
CapiUsbAudioInputStream::CapiUsbAudioInputStream(
if (device_type == SOUND_DEVICE_FORWARDING) {
auto has_privilege =
wrt::privilege::FindPrivilegeFromCynara(kMediaCapturePrivilege);
- if (!has_privilege) {
+ if (!has_privilege && !IsAudioOutCaptureEnabled()) {
LOG(ERROR) << "No system audio capture privilege.";
return false;
}