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

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

Issue 1942713002: [chrome.displaySource][WiFi Display] Consider video encoder capabilities (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
Index: extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.cc
diff --git a/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.cc b/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.cc
index e4ca9aff79c4a9d44dfde24ad24d613caaab23de..941ecab199bbfc612ad69dab5ed09854b4983556 100644
--- a/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.cc
+++ b/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.cc
@@ -6,7 +6,7 @@
#include "base/bind.h"
#include "base/logging.h"
-
+#include "content/public/renderer/video_encode_accelerator.h"
#include "extensions/renderer/api/display_source/wifi_display/wifi_display_elementary_stream_descriptor.h"
namespace extensions {
@@ -29,6 +29,30 @@ WiFiDisplayVideoEncoder::WiFiDisplayVideoEncoder(
WiFiDisplayVideoEncoder::~WiFiDisplayVideoEncoder() = default;
// static
+std::vector<wds::H264Profile> WiFiDisplayVideoEncoder::FindSupportedProfiles(
+ const gfx::Size& frame_size,
+ int32_t frame_rate) {
+ std::vector<wds::H264Profile> result;
+ media::VideoEncodeAccelerator::SupportedProfiles profiles =
+ content::GetSupportedVideoEncodeAcceleratorProfiles();
+ for (const auto& supported : profiles) {
+ if (supported.profile == media::H264PROFILE_HIGH &&
+ supported.max_resolution.width() >= frame_size.width() &&
+ supported.max_resolution.height() >= frame_size.height() &&
+ supported.max_framerate_numerator >= uint32_t(frame_rate)) {
+ result.push_back(wds::CHP);
+ break;
+ }
+ }
+
+ // Constrained profile is provided in any case (by the software encoder
+ // implementation).
+ result.push_back(wds::CBP);
+
+ return result;
+}
+
+// static
void WiFiDisplayVideoEncoder::Create(
const InitParameters& params,
const VideoEncoderCallback& encoder_callback) {

Powered by Google App Engine
This is Rietveld 408576698