diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ffmpeg.c | 7 | ||||
-rw-r--r-- | src/sldj.c | 16 | ||||
-rw-r--r-- | src/sldj.h | 3 |
3 files changed, 23 insertions, 3 deletions
diff --git a/src/ffmpeg.c b/src/ffmpeg.c index 21692d0..5479ef5 100644 --- a/src/ffmpeg.c +++ b/src/ffmpeg.c @@ -8,9 +8,10 @@ #include "ffmpeg.h" FFMPEG* ffmpegStart(const char* filename, uint32_t width, uint32_t height, -uint32_t fps) + uint32_t fps) { int pipefd[2]; + if (pipe(pipefd) < 0) { @@ -94,8 +95,8 @@ uint32_t fps) return ffmpeg; } -int ffmpegSendFrame(FFMPEG* ffmpeg, void* data, uint32_t width, uint32_t -height) +int ffmpegSendFrame(FFMPEG* ffmpeg, void* data, uint32_t width, + uint32_t height) { for (uint32_t y = height; y > 0; --y) { @@ -1,4 +1,6 @@ #include "sldj.h" +#include "sldjConfig.h" +#include <raylib.h> void initSldj(Sldj *sldj) { @@ -27,6 +29,15 @@ void initSldj(Sldj *sldj) sldj->gui.fpsSliderValue = (float)DEFAULT_FRAME_RATE; sldj->gui.widthSliderValue = (float)DEFAULT_SCREEN_WIDTH; sldj->gui.heightSliderValue = (float)DEFAULT_SCREEN_HEIGHT; + + sldj->ffmpeg = ffmpegStart("test.mp4", DEFAULT_SCREEN_WIDTH, + DEFAULT_SCREEN_WIDTH, + DEFAULT_FRAME_RATE); + + if (sldj->ffmpeg == NULL) + { + TraceLog(LOG_ERROR, "ffmpeg returned null"); + } } void handleInput(Sldj* sldj) @@ -113,6 +124,10 @@ void updateSldj(Sldj* sldj) EndTextureMode(); ClearBackground(DARKGRAY); + // Output to file + Image image = LoadImageFromTexture(sldj->viewport.texture); + ffmpegSendFrame(sldj->ffmpeg, image.data, image.width, image.height); + // Draw scanned image. Texture viewport = sldj->viewport.texture; @@ -133,6 +148,7 @@ void updateSldj(Sldj* sldj) void closeSldj(Sldj* sldj) { + ffmpegEnd(sldj->ffmpeg, true); UnloadRenderTexture(sldj->viewport); closeScripting(&sldj->scripting); @@ -8,6 +8,7 @@ #include "sldjConfig.h" #include "scripting.h" +#include "ffmpeg.h" #include "libsldj/util.h" #ifndef SLDJ_H @@ -39,6 +40,8 @@ typedef struct Sldj { float heightSliderValue; Rectangle viewportButton; } gui; + + FFMPEG* ffmpeg; } Sldj; void initSldj(Sldj* sldj); |