summaryrefslogtreecommitdiff
path: root/media/gpu/tizen/tizen_video_encode_accelerator.cc
diff options
context:
space:
mode:
Diffstat (limited to 'media/gpu/tizen/tizen_video_encode_accelerator.cc')
-rw-r--r--media/gpu/tizen/tizen_video_encode_accelerator.cc29
1 files changed, 29 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());