From 44beaa0e1d66ae3950785eaa10d2400d37ddb1c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Relvas?= Date: Thu, 11 Jul 2024 20:31:11 +0100 Subject: [PATCH] screencastService: Add gstreamer pipeline for h264 low-power hw encode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VA-API low-power encoder profiles (such as vah264lpenc) reduce power consumption by relying entirely on fixed-function hardware blocks. Use vah264lpenc over vah264enc by default, in order to save on energy and 3D engine capacity. Signed-off-by: José Relvas Part-of: --- js/dbusServices/screencast/screencastService.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/js/dbusServices/screencast/screencastService.js b/js/dbusServices/screencast/screencastService.js index c01aa830f..e82eae399 100644 --- a/js/dbusServices/screencast/screencastService.js +++ b/js/dbusServices/screencast/screencastService.js @@ -31,6 +31,17 @@ const DEFAULT_DRAW_CURSOR = true; const PIPELINE_BLOCKLIST_FILENAME = 'gnome-shell-screencast-pipeline-blocklist'; const PIPELINES = [ + { + id: 'hwenc-dmabuf-h264-vaapi-lp', + fileExtension: 'mp4', + pipelineString: + 'capsfilter caps=video/x-raw(memory:DMABuf),format=DMA_DRM,max-framerate=%F/1 ! \ + vapostproc ! \ + vah264lpenc ! \ + queue ! \ + h264parse ! \ + mp4mux fragment-duration=500 fragment-mode=first-moov-then-finalise', + }, { id: 'hwenc-dmabuf-h264-vaapi', fileExtension: 'mp4',