diff options
author | Michal Jurkiewicz <m.jurkiewicz@samsung.com> | 2024-03-12 18:24:53 +0100 |
---|---|---|
committer | Sungsik Park <bitpark@samsung.com> | 2024-03-19 00:53:52 +0000 |
commit | f0ed7d9b535de26105022305be7b9622ea45b90b (patch) | |
tree | 3470e99e14eb11433675bf647d8b0c20840bd994 | |
parent | 00d43707b3d672db5a7fd11c14f5c8eca294d659 (diff) | |
download | chromium-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.cc | 29 | ||||
-rw-r--r-- | media/gpu/tizen/tizen_video_encode_accelerator.h | 1 |
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_; |