flatpak: run gsr kms server on host if the file has root capacity
This commit is contained in:
parent
72d75d0f4a
commit
8e66363352
2
TODO
2
TODO
@ -107,4 +107,4 @@ Support I915_FORMAT_MOD_Y_TILED_CCS (and other power saving modifiers, see https
|
|||||||
Test if p2 state can be worked around by using pure nvenc api and overwriting cuInit/cuCtxCreate* to not do anything. Cuda might be loaded when using nvenc but it might not be used, with certain record options? (such as h264 p5).
|
Test if p2 state can be worked around by using pure nvenc api and overwriting cuInit/cuCtxCreate* to not do anything. Cuda might be loaded when using nvenc but it might not be used, with certain record options? (such as h264 p5).
|
||||||
nvenc uses cuda when using b frames and rgb->yuv conversion, so convert the image ourselves instead.-
|
nvenc uses cuda when using b frames and rgb->yuv conversion, so convert the image ourselves instead.-
|
||||||
|
|
||||||
Mesa doesn't support global headers (AV_CODEC_FLAG_GLOBAL_HEADER) with h264... which also breaks mkv since mkv requires global header.
|
Mesa doesn't support global headers (AV_CODEC_FLAG_GLOBAL_HEADER) with h264... which also breaks mkv since mkv requires global header. Right now gpu screen recorder will forcefully set video codec to hevc when h264 is requested for mkv files.
|
||||||
|
@ -244,12 +244,17 @@ int gsr_kms_client_init(gsr_kms_client *self, const char *card_path) {
|
|||||||
fprintf(stderr, "gsr error: gsr_kms_client_init: fork failed, error: %s\n", strerror(errno));
|
fprintf(stderr, "gsr error: gsr_kms_client_init: fork failed, error: %s\n", strerror(errno));
|
||||||
goto err;
|
goto err;
|
||||||
} else if(pid == 0) { /* child */
|
} else if(pid == 0) { /* child */
|
||||||
|
if(inside_flatpak) {
|
||||||
if(has_perm) {
|
if(has_perm) {
|
||||||
const char *args[] = { server_filepath, self->initial_socket_path, card_path, NULL };
|
const char *args[] = { "flatpak-spawn", "--host", "/var/lib/flatpak/app/com.dec05eba.gpu_screen_recorder/current/active/files/bin/gsr-kms-server", self->initial_socket_path, card_path, NULL };
|
||||||
execvp(args[0], (char *const*)args);
|
execvp(args[0], (char *const*)args);
|
||||||
} else if(inside_flatpak) {
|
} else {
|
||||||
const char *args[] = { "flatpak-spawn", "--host", "pkexec", "flatpak", "run", "--command=gsr-kms-server", "com.dec05eba.gpu_screen_recorder", self->initial_socket_path, card_path, NULL };
|
const char *args[] = { "flatpak-spawn", "--host", "pkexec", "flatpak", "run", "--command=gsr-kms-server", "com.dec05eba.gpu_screen_recorder", self->initial_socket_path, card_path, NULL };
|
||||||
execvp(args[0], (char *const*)args);
|
execvp(args[0], (char *const*)args);
|
||||||
|
}
|
||||||
|
} else if(has_perm) {
|
||||||
|
const char *args[] = { server_filepath, self->initial_socket_path, card_path, NULL };
|
||||||
|
execvp(args[0], (char *const*)args);
|
||||||
} else {
|
} else {
|
||||||
const char *args[] = { "pkexec", server_filepath, self->initial_socket_path, card_path, NULL };
|
const char *args[] = { "pkexec", server_filepath, self->initial_socket_path, card_path, NULL };
|
||||||
execvp(args[0], (char *const*)args);
|
execvp(args[0], (char *const*)args);
|
||||||
|
Loading…
Reference in New Issue
Block a user