}
/* convert image files to animated gif ./tmp/anim.gif */
-void write_animation(void)
+void convert_to_gif(void)
{
int result;
return;
}
+/* convert image files to mp4 ./tmp/anim.mp4 */
+void convert_to_mp4(void)
+{
+ int result;
+
+ /* call ffmpeg
+ FIXME: requires ffmpeg binary with '-pattern_type glob' support,
+ so this will not work on the Parallella without updates! */
+ result = system("ffmpeg -v quiet -pattern_type glob -i "
+ "'./tmp/i*.ppm' ./tmp/anim.mp4"); (void)result;
+ fixsudo("./tmp/anim.mp4");
+
+ return;
+}
+
/* write timer values */
void write_timers(uint32_t timers[CORES_Y][CORES_X][TIMERS], uint32_t iter)
{
/* helper functions */
void fixsudo(const char *filename);
void write_populations(d2q9_block_t lattice[CORES_Y][CORES_X], int iter);
-void write_animation(void);
void write_density (d2q9_block_t lattice[CORES_Y][CORES_X], int iter);
void write_velocity (d2q9_block_t lattice[CORES_Y][CORES_X], int iter);
+void convert_to_gif(void);
+void convert_to_mp4(void);
void write_timers(uint32_t timers[CORES_Y][CORES_X][TIMERS], uint32_t iter);
/* globals */
char *filename = "bin/main.srec";
/* remove old results */
- int dummy = system("rm -f ./tmp/i*.ppm ./tmp/anim.gif populations.dat timers.dat");
+ int dummy = system("rm -f ./tmp/i*.ppm ./tmp/anim.gif ./tmp/anim.mp4 populations.dat timers.dat");
(void)dummy;
e_epiphany_t dev;
printf("\nProgram finished successfully.\n");
printf("Convert ...\n");
- write_animation();
+ convert_to_gif();
return(0);
}