aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authornathansmith <nathansmith@posteo.com>2025-05-03 02:35:57 +0000
committernathansmith <nathansmith@posteo.com>2025-05-03 02:35:57 +0000
commit8754798edb5c8825514d1823bb29b260dd5eb740 (patch)
treea2479680212d325d64a7f4886aab2a62b7a7f528 /src
parent2d2f143d248ef9f173f711108feb770efdfe7d21 (diff)
downloadsldj-8754798edb5c8825514d1823bb29b260dd5eb740.tar.gz
sldj-8754798edb5c8825514d1823bb29b260dd5eb740.tar.bz2
sldj-8754798edb5c8825514d1823bb29b260dd5eb740.zip
Borded of this project tbhHEADmain
Diffstat (limited to 'src')
-rw-r--r--src/ffmpeg.c7
-rw-r--r--src/sldj.c16
-rw-r--r--src/sldj.h3
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)
{
diff --git a/src/sldj.c b/src/sldj.c
index 5f66c95..f573629 100644
--- a/src/sldj.c
+++ b/src/sldj.c
@@ -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);
diff --git a/src/sldj.h b/src/sldj.h
index 4ffb4cd..afbdfc5 100644
--- a/src/sldj.h
+++ b/src/sldj.h
@@ -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);