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

Unified Diff: extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.cc

Issue 1817503002: [chrome.displaySource][WiFi Display] Audio formats capability negotiation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.cc
diff --git a/extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.cc b/extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.cc
index 0724c61e0db1dacc215e3863d2a10b844abdc7d2..2cb0de4d28d0ffdf8197dd471dfe0aee2ecf74b4 100644
--- a/extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.cc
+++ b/extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.cc
@@ -16,7 +16,8 @@ const char kErrorNoVideoFormatData[] =
"Failed to get video format data from the given MediaStreamTrack object";
const char kErrorSinkCannotPlayVideo[] =
"The sink cannot play video from the given MediaStreamTrack object";
-
+const char kErrorSinkCannotPlayAudio[] =
+ "The sink cannot play audio from the given MediaStreamTrack object";
} // namespace
WiFiDisplayMediaManager::WiFiDisplayMediaManager(
@@ -221,13 +222,26 @@ bool WiFiDisplayMediaManager::InitOptimalVideoFormat(
bool WiFiDisplayMediaManager::InitOptimalAudioFormat(
const std::vector<wds::AudioCodec>& sink_codecs) {
- NOTIMPLEMENTED();
+ for (const wds::AudioCodec& codec : sink_codecs) {
+ // MediaStreamTrack contains LPCM audio.
+ if (codec.format == wds::LPCM) {
+ optimal_audio_codec_ = codec;
+ // Picking a single mode.
+ wds::AudioModes optimal_mode;
+ if (codec.modes.test(wds::LPCM_44_1K_16B_2CH))
+ optimal_mode.set(wds::LPCM_44_1K_16B_2CH);
+ else
+ optimal_mode.set(wds::LPCM_48K_16B_2CH);
+ optimal_audio_codec_.modes = optimal_mode;
+ return true;
+ }
+ }
+ error_callback_.Run(kErrorSinkCannotPlayAudio);
return false;
}
wds::AudioCodec WiFiDisplayMediaManager::GetOptimalAudioFormat() const {
- NOTIMPLEMENTED();
- return wds::AudioCodec();
+ return optimal_audio_codec_;
}
} // namespace extensions
« no previous file with comments | « extensions/renderer/api/display_source/wifi_display/wifi_display_media_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698