|
|
@ -58,14 +58,19 @@ void grab_and_apply_magick(const char *file, const char *payload,
|
|
|
|
if ((child = fork()) < 0) {
|
|
|
|
if ((child = fork()) < 0) {
|
|
|
|
sway_log(L_ERROR, "Swaygrab failed to fork.");
|
|
|
|
sway_log(L_ERROR, "Swaygrab failed to fork.");
|
|
|
|
exit(EXIT_FAILURE);
|
|
|
|
exit(EXIT_FAILURE);
|
|
|
|
} else if (child == 0) {
|
|
|
|
} else if (child != 0) {
|
|
|
|
|
|
|
|
close(fd[0]);
|
|
|
|
|
|
|
|
write(fd[1], pixels, len);
|
|
|
|
close(fd[1]);
|
|
|
|
close(fd[1]);
|
|
|
|
write(fd[0], pixels, len);
|
|
|
|
|
|
|
|
free(pixels - 9);
|
|
|
|
free(pixels - 9);
|
|
|
|
waitpid(child, NULL, 0);
|
|
|
|
waitpid(child, NULL, 0);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
|
|
|
|
close(fd[1]);
|
|
|
|
|
|
|
|
if (dup2(fd[0], 0) != 0) {
|
|
|
|
|
|
|
|
sway_log(L_ERROR, "Could not fdup the pipe");
|
|
|
|
|
|
|
|
}
|
|
|
|
close(fd[0]);
|
|
|
|
close(fd[0]);
|
|
|
|
execlp("convert", "-depth", "8", "-size", size, "rgba:-", "-flip", file, NULL);
|
|
|
|
execlp("convert", "convert", "-depth", "8", "-size", size, "rgba:-", "-flip", file, NULL);
|
|
|
|
sway_log(L_ERROR, "Swaygrab could not run convert.");
|
|
|
|
sway_log(L_ERROR, "Swaygrab could not run convert.");
|
|
|
|
exit(EXIT_FAILURE);
|
|
|
|
exit(EXIT_FAILURE);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -104,7 +109,7 @@ void grab_and_apply_movie_magic(const char *file, const char *payload,
|
|
|
|
"-video_size %dx%d -pixel_format argb "
|
|
|
|
"-video_size %dx%d -pixel_format argb "
|
|
|
|
"-i pipe:0 -r %d -vf vflip %s";
|
|
|
|
"-i pipe:0 -r %d -vf vflip %s";
|
|
|
|
char *cmd = malloc(strlen(fmt) - 8 /*args*/
|
|
|
|
char *cmd = malloc(strlen(fmt) - 8 /*args*/
|
|
|
|
+ strlen(ffmpeg_opts) + numlen(width) + numlen(height)
|
|
|
|
+ strlen(ffmpeg_opts) + numlen(width) + numlen(height)
|
|
|
|
+ numlen(framerate) * 2 + strlen(file) + 1);
|
|
|
|
+ numlen(framerate) * 2 + strlen(file) + 1);
|
|
|
|
sprintf(cmd, fmt, ffmpeg_opts, framerate, width, height, framerate, file);
|
|
|
|
sprintf(cmd, fmt, ffmpeg_opts, framerate, width, height, framerate, file);
|
|
|
|
|
|
|
|
|
|
|
|