]> granicus.if.org Git - libass/commitdiff
Apply \be after \blur (like VSFilter)
authorOleg Oshmyan <chortos@inbox.lv>
Thu, 13 Mar 2014 03:05:11 +0000 (03:05 +0000)
committerOleg Oshmyan <chortos@inbox.lv>
Tue, 10 Feb 2015 02:42:35 +0000 (04:42 +0200)
libass/ass_bitmap.c

index 19c472767feae0918e8a4f4520f7f6d2ea74b969..97fb26b271e29a7da1977281358dfea7a218c83c 100644 (file)
@@ -146,6 +146,20 @@ void ass_synth_blur(ASS_SynthPriv *priv_blur, int opaque_box, int be,
             return;
     }
 
+    // Apply gaussian blur
+    if (blur_radius > 0.0 && generate_tables(priv_blur, blur_radius)) {
+        if (bm_o)
+            ass_gauss_blur(bm_o->buffer, priv_blur->tmp,
+                           bm_o->w, bm_o->h, bm_o->stride,
+                           priv_blur->gt2, priv_blur->g_r,
+                           priv_blur->g_w);
+        if (!bm_o || opaque_box)
+            ass_gauss_blur(bm_g->buffer, priv_blur->tmp,
+                           bm_g->w, bm_g->h, bm_g->stride,
+                           priv_blur->gt2, priv_blur->g_r,
+                           priv_blur->g_w);
+    }
+
     // Apply box blur (multiple passes, if requested)
     if (be) {
         uint16_t* tmp = priv_blur->tmp;
@@ -180,20 +194,6 @@ void ass_synth_blur(ASS_SynthPriv *priv_blur, int opaque_box, int be,
             }
         }
     }
-
-    // Apply gaussian blur
-    if (blur_radius > 0.0 && generate_tables(priv_blur, blur_radius)) {
-        if (bm_o)
-            ass_gauss_blur(bm_o->buffer, priv_blur->tmp,
-                           bm_o->w, bm_o->h, bm_o->stride,
-                           priv_blur->gt2, priv_blur->g_r,
-                           priv_blur->g_w);
-        if (!bm_o || opaque_box)
-            ass_gauss_blur(bm_g->buffer, priv_blur->tmp,
-                           bm_g->w, bm_g->h, bm_g->stride,
-                           priv_blur->gt2, priv_blur->g_r,
-                           priv_blur->g_w);
-    }
 }
 
 ASS_SynthPriv *ass_synth_init(double radius)