aboutsummaryrefslogtreecommitdiff
path: root/src/creator.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/creator.c')
-rw-r--r--src/creator.c29
1 files changed, 8 insertions, 21 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;i<length*fps;i++) {
+void addFrame(int *frame)
+{
fflush(stdout);
/* make sure the frame data is writable */
ret = av_frame_make_writable(picture);
if (ret < 0)
exit(1);
-
- s_arr = (u32 *) malloc((_config->width) * (_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;
}