diff options
Diffstat (limited to 'media/gpu/tizen/tizen_video_encode_accelerator.cc')
-rw-r--r-- | media/gpu/tizen/tizen_video_encode_accelerator.cc | 29 |
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()); |