From 6cd17cf5f1c009e1eb2b1e1c14678e8be68bdd3c Mon Sep 17 00:00:00 2001 From: cxp2249 Date: Mon, 29 Jan 2018 20:33:11 +0100 Subject: creator file modified --- src/creator.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/creator.c b/src/creator.c index 71a981f..9990972 100644 --- a/src/creator.c +++ b/src/creator.c @@ -1,5 +1,5 @@ -#include -#include +#include "creator.h" +#include "render.h" static void encode(AVCodecContext *enc_ctx, AVFrame *frame, AVPacket *pkt, FILE *outfile) @@ -24,7 +24,7 @@ static void encode(AVCodecContext *enc_ctx, AVFrame *frame, AVPacket *pkt, av_packet_unref(pkt); } } -int generateVideo(filename, int width, int height, int fps, int bitRate, Config *config, u32 (*sfunc) (long double, long double, u32)) +int generateVideo(filename, int length, int width, int height, int fps, int bitRate, Config *config, u32 (*sfunc) (long double, long double, u32)) { const char *filename; const AVCodec *codec; @@ -101,7 +101,8 @@ int generateVideo(filename, int width, int height, int fps, int bitRate, Config y_max = y_max_s; _config = config; _sfunc = sfunc; - for(i=0;i<25;i++) { + + for(i=0;i Date: Mon, 29 Jan 2018 23:25:03 +0100 Subject: another try --- src/creator.c | 29 ++++++++--------------------- src/render.c | 2 +- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/src/creator.c b/src/creator.c index 9990972..5e8ca08 100644 --- a/src/creator.c +++ b/src/creator.c @@ -19,14 +19,13 @@ static void encode(AVCodecContext *enc_ctx, AVFrame *frame, AVPacket *pkt, fprintf(stderr, "error during encoding\n"); exit(1); } - printf("encoded frame %3"PRId64" (size=%5d)\n", pkt->pts, pkt->size); + //printf("encoded frame %3"PRId64" (size=%5d)\n", pkt->pts, pkt->size); fwrite(pkt->data, 1, pkt->size, outfile); av_packet_unref(pkt); } } int generateVideo(filename, int length, int width, int height, int fps, int bitRate, Config *config, u32 (*sfunc) (long double, long double, u32)) { - const char *filename; const AVCodec *codec; AVCodecContext *c= NULL; int i, ret, x, y; @@ -90,29 +89,15 @@ int generateVideo(filename, int length, int width, int height, int fps, int bitR } - /* encode 1 second of video */ - x_min_s = -2.0; - x_max_s = 1.0; - y_min_s= -1.0; - y_max_s = 1.0; - x_min = x_min_s; - x_max = x_max_s; - y_min = y_min_s; - y_max = y_max_s; - _config = config; - _sfunc = sfunc; - - for(i=0;iwidth) * (_config->height) * sizeof(u32)); - calculate(x_min, y_min, x_max, y_max, _sfunc, s_arr); - picture->data[0] = s_arr; + picture->data[0] = frame; /* prepare a dummy image */ /* Y */ @@ -128,10 +113,13 @@ int generateVideo(filename, int length, int width, int height, int fps, int bitR picture->data[2][y * picture->linesize[2] + x] = 64 + x + i * 5; } } */ + picture->pts = i; /* encode the image */ encode(c, picture, pkt, f); - } +} + +void endFile(void){ /* flush the encoder */ encode(c, NULL, pkt, f); /* add sequence end code to have a real MPEG file */ @@ -140,5 +128,4 @@ int generateVideo(filename, int length, int width, int height, int fps, int bitR avcodec_free_context(&c); av_frame_free(&picture); av_packet_free(&pkt); - return 0; } diff --git a/src/render.c b/src/render.c index 191dcd9..2ebb7c3 100644 --- a/src/render.c +++ b/src/render.c @@ -6,7 +6,7 @@ */ #include "render.h" -#define HAVE_STRUCT_TIMESPEC +//#define HAVE_STRUCT_TIMESPEC #include void init_render(Config *config) -- cgit v1.2.1 From 8f7b0819e038188629eb026ade8eb2173f0dd163 Mon Sep 17 00:00:00 2001 From: Jan Niklas Diercks Date: Tue, 30 Jan 2018 20:04:22 +0000 Subject: Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 3ab2a6c..c9847ed 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # Mandelbrot Render - ProzProg Projekt Ideen: - - - Mandelbrot ist symetrisch zur x-Achse - Color Smoothing \ No newline at end of file -- cgit v1.2.1 From be71fdbc86ac4ad86c48c083df3552a2ddce91e2 Mon Sep 17 00:00:00 2001 From: cxp2249 Date: Wed, 31 Jan 2018 22:58:03 +0100 Subject: render.c with fitting header build: + untestet therefore result open. + ffmpeg-3.4.1.tar.bz2 for source files + https://trac.ffmpeg.org/wiki/CompilationGuide for executing configure script. Required vor avconfig --- src/creator.c | 39 +++++++++++++++------------------------ src/creator.h | 37 +++++++++++-------------------------- src/render_cpu.h | 1 + 3 files changed, 27 insertions(+), 50 deletions(-) diff --git a/src/creator.c b/src/creator.c index 5e8ca08..d8bd008 100644 --- a/src/creator.c +++ b/src/creator.c @@ -24,32 +24,22 @@ static void encode(AVCodecContext *enc_ctx, AVFrame *frame, AVPacket *pkt, av_packet_unref(pkt); } } -int generateVideo(filename, int length, int width, int height, int fps, int bitRate, Config *config, u32 (*sfunc) (long double, long double, u32)) +int generateVideo(filename, int width, int height, int fps, int bitRate) { - const AVCodec *codec; - AVCodecContext *c= NULL; - int i, ret, x, y; - FILE *f; - AVFrame *picture; - AVPacket *pkt; - uint8_t endcode[] = { 0, 0, 1, 0xb7 }; - if (argc <= 1) { - fprintf(stderr, "Usage: %s \n", argv[0]); - exit(0); - } - filename = argv[1]; avcodec_register_all(); + /* find the mpeg1video encoder */ - codec = avcodec_find_encoder(AV_CODEC_ID_MPEG1VIDEO); - if (!codec) { - fprintf(stderr, "codec not found\n"); - exit(1); - } - c = avcodec_alloc_context3(codec); - picture = av_frame_alloc(); - pkt = av_packet_alloc(); - if (!pkt) - exit(1); + codec = avcodec_find_encoder(AV_CODEC_ID_MPEG1VIDEO); + if (!codec) { + fprintf(stderr, "codec not found\n"); + exit(1); + } + c = avcodec_alloc_context3(codec); + + picture = av_frame_alloc(); + pkt = av_packet_alloc(); + if (!pkt) + exit(1); /* put sample parameters */ c->bit_rate = bitRate; @@ -120,7 +110,8 @@ void addFrame(int *frame) } void endFile(void){ - /* flush the encoder */ + uint8_t endcode[] = { 0, 0, 1, 0xb7 }; + /* flush the encoder */ encode(c, NULL, pkt, f); /* add sequence end code to have a real MPEG file */ fwrite(endcode, 1, sizeof(endcode), f); diff --git a/src/creator.h b/src/creator.h index 7606d4e..b89b16c 100644 --- a/src/creator.h +++ b/src/creator.h @@ -18,36 +18,21 @@ #include #include -typedef struct config { - u32 iterations; - u8 threads; - u32 colorFrom; - u32 colorTo; - long double to_x; - long double to_y; - long double speed; - u8 video; - u8 filetype; - u16 width; - u16 height; - u8 renderFPS; - u8 videoFPS; - u32 bitrate; - const char *path; - // TODO: key mapping als option in die struct -} Config; - -Config *_config; -u32 (*_sfunc) (long double, long double, u32); -u32 *s_arr; -long double x_min, x_max, y_min, y_max; -long double x_min_s, x_max_s, y_min_s, y_max_s; -int delta; -long double dt, ft; + +AVFrame *picture; +AVPacket *pkt; + +FILE *f; + + +const AVCodec *codec; +AVCodecContext *c= NULL; +int i, ret, x, y; static void encode(AVCodecContext *enc_ctx, AVFrame *frame, AVPacket *pkt, FILE *outfile); int generateVideo(filename, int width, int height, int fps, int bitRate, Config *config, u32 (*sfunc) (long double, long double, u32)); +void addFrame(int *frame); #endif /* RENDER_H_ */ diff --git a/src/render_cpu.h b/src/render_cpu.h index 7abbdc4..5d32661 100644 --- a/src/render_cpu.h +++ b/src/render_cpu.h @@ -11,6 +11,7 @@ #include "defs.h" #include #include +#define HAVE_STRUCT_TIMESPEC #include #include #include -- cgit v1.2.1