]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vsrc_mandelbrot.c
Merge commit '0cef06df073934ca08d0357fcbbbcf2bc9b2a0cd'
[ffmpeg] / libavfilter / vsrc_mandelbrot.c
index 950c5c88fd6a5d5bc29d055501536a0b1190249f..063b7d189442a7932ad8c2b94e0719c0558ce209 100644 (file)
@@ -23,7 +23,7 @@
 
 /**
  * @file
- * Mandelbrot fraktal renderer
+ * Mandelbrot fractal renderer
  */
 
 #include "avfilter.h"
@@ -291,7 +291,7 @@ static void draw_mandelbrot(AVFilterContext *ctx, uint32_t *color, int linesize,
 
             use_zyklus= (x==0 || s->inner!=BLACK ||color[x-1 + y*linesize] == 0xFF000000);
             if(use_zyklus)
-                epsilon= scale*1*sqrt(SQR(x-s->w/2) + SQR(y-s->h/2))/s->w;
+                epsilon= scale*(abs(x-s->w/2) + abs(y-s->h/2))/s->w;
 
 #define Z_Z2_C(outr,outi,inr,ini)\
             outr= inr*inr - ini*ini + cr;\
@@ -334,11 +334,11 @@ static void draw_mandelbrot(AVFilterContext *ctx, uint32_t *color, int linesize,
                             switch(s->outer){
                             case            ITERATION_COUNT:
                                 zr = i;
-                                c = lrintf((sin(zr)+1)*127) + lrintf((sin(zr/1.234)+1)*127)*256*256 + lrintf((sin(zr/100)+1)*127)*256;
+                                c = lrintf((sinf(zr)+1)*127) + lrintf((sinf(zr/1.234)+1)*127)*256*256 + lrintf((sinf(zr/100)+1)*127)*256;
                                 break;
                             case NORMALIZED_ITERATION_COUNT:
                                 zr = i + log2(log(s->bailout) / log(zr*zr + zi*zi));
-                                c = lrintf((sin(zr)+1)*127) + lrintf((sin(zr/1.234)+1)*127)*256*256 + lrintf((sin(zr/100)+1)*127)*256;
+                                c = lrintf((sinf(zr)+1)*127) + lrintf((sinf(zr/1.234)+1)*127)*256*256 + lrintf((sinf(zr/100)+1)*127)*256;
                                 break;
                             case                      WHITE:
                                 c = 0xFFFFFF;
@@ -379,6 +379,7 @@ static void draw_mandelbrot(AVFilterContext *ctx, uint32_t *color, int linesize,
                     c= lrintf((s->zyklus[closest_index][0]/closest+1)*127+dv) + lrintf((s->zyklus[closest_index][1]/closest+1)*127+dv)*256;
                 }
             }
+            c |= 0xFF000000;
             color[x + y*linesize]= c;
             if(next_cidx < s->cache_allocated){
                 s->next_cache[next_cidx  ].p[0]= cr;