summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Jurkiewicz <m.jurkiewicz@samsung.com>2024-03-12 18:24:53 +0100
committerSungsik Park <bitpark@samsung.com>2024-03-19 00:53:52 +0000
commitf0ed7d9b535de26105022305be7b9622ea45b90b (patch)
tree3470e99e14eb11433675bf647d8b0c20840bd994
parent00d43707b3d672db5a7fd11c14f5c8eca294d659 (diff)
downloadchromium-efl-f0ed7d9b535de26105022305be7b9622ea45b90b.tar.gz
chromium-efl-f0ed7d9b535de26105022305be7b9622ea45b90b.tar.bz2
chromium-efl-f0ed7d9b535de26105022305be7b9622ea45b90b.zip
[WebRTC][HW Encoder] Notify about platform encoder capabilities
Add functionality that provides information about platform encoder capabilities. Bug: https://jira-eu.sec.samsung.net/browse/VDGAME-449 Change-Id: I4ad9e79fcc1d7d8f01ddd2cad75e9da8aeea163e Signed-off-by: Michal Jurkiewicz <m.jurkiewicz@samsung.com>
-rw-r--r--media/gpu/tizen/tizen_video_encode_accelerator.cc29
-rw-r--r--media/gpu/tizen/tizen_video_encode_accelerator.h1
2 files changed, 30 insertions, 0 deletions
diff --git a/media/gpu/tizen/tizen_video_encode_accelerator.cc b/media/gpu/tizen/tizen_video_encode_accelerator.cc
index e40a30933940..a58b9e28ac5e 100644
--- a/media/gpu/tizen/tizen_video_encode_accelerator.cc
+++ b/media/gpu/tizen/tizen_video_encode_accelerator.cc
@@ -197,9 +197,38 @@ bool TizenVideoEncodeAccelerator::Initialize(
return false;
}
+ ReportEncoderCapabilities();
+
return true;
}
+void TizenVideoEncodeAccelerator::ReportEncoderCapabilities() {
+ VideoEncoderInfo info{};
+
+ info.supports_native_handle = true;
+ info.supports_simulcast = false;
+ info.implementation_name = "TizenVideoEncodeAccelerator";
+
+ // Tizen HW encoder is very limited at possibility to generate
+ // content at specific resolution and framerate.
+ // Below values are set according to experiments, changing lower
+ // limit might result in increased bitrate of generated content.
+ info.resolution_bitrate_limits = {{{320, 180}, 0, 30000, 300000},
+ {{480, 270}, 200000, 50000, 500000},
+ {{640, 360}, 300000, 100000, 800000},
+ {{960, 540}, 500000, 250000, 1500000},
+ {{1280, 720}, 900000, 500000, 2500000},
+ {{1920, 1080}, 2000000, 1000000, 20000000}};
+
+ if (!GetTaskRunner()->PostTask(
+ FROM_HERE,
+ base::BindOnce(
+ &VideoEncodeAccelerator::Client::NotifyEncoderInfoChange,
+ base::Unretained(client_), std::move(info)))) {
+ TIZEN_MEDIA_LOG(ERROR) << "Failed to post NotifyEncoderInfoChange task";
+ }
+}
+
bool TizenVideoEncodeAccelerator::RegisterPlatformEncoderCallbacks() {
TIZEN_MEDIA_LOG(INFO);
CHECK(task_runner_->BelongsToCurrentThread());
diff --git a/media/gpu/tizen/tizen_video_encode_accelerator.h b/media/gpu/tizen/tizen_video_encode_accelerator.h
index 467309bac961..8aed671b5f92 100644
--- a/media/gpu/tizen/tizen_video_encode_accelerator.h
+++ b/media/gpu/tizen/tizen_video_encode_accelerator.h
@@ -55,6 +55,7 @@ class TizenVideoEncodeAccelerator : public VideoEncodeAccelerator {
void ResetInternal();
void StartInternal();
void StopInternal();
+ void ReportEncoderCapabilities();
scoped_refptr<base::SingleThreadTaskRunner> GetTaskRunner() {
return task_runner_;