Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/plugins/sequence/dnr.c')
-rw-r--r--release/plugins/sequence/dnr.c151
1 files changed, 0 insertions, 151 deletions
diff --git a/release/plugins/sequence/dnr.c b/release/plugins/sequence/dnr.c
deleted file mode 100644
index d374c40633c..00000000000
--- a/release/plugins/sequence/dnr.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Dynamic Noise Reduction (based on the VirtualDub filter by Steven Don)
- *
- * Copyright (c) 2005 Peter Schlaile
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#include <math.h>
-#include "plugin.h"
-#include <stdio.h>
-
-char name[]= "Dynamic Noise Reduction";
-
-VarStruct varstr[]= {
- { NUMSLI|INT, "Level:", 10.0, 0.0, 15.0, "Level"},
-};
-
-typedef struct Cast {
- int level;
-} Cast;
-
-float cfra;
-void * plugin_private_data;
-
-struct my_data {
- unsigned char lookup_table[65536];
- int last_level;
- float last_cfra;
- int last_width;
- int last_height;
- unsigned char * last_frame;
-};
-
-void plugin_seq_doit(Cast *, float, float, int, int,
- ImBuf *, ImBuf *, ImBuf *, ImBuf *);
-
-int plugin_seq_getversion(void) { return B_PLUGIN_VERSION;}
-
-static void precalculate(unsigned char * table, int level)
-{
- int ap_, bp;
-
- for (ap_ = 0; ap_ < 256; ap_++) {
- for (bp = 0; bp < 256; bp++) {
- int ap = ap_;
- int diff = ap - bp;
- if (diff < 0) {
- diff = -diff;
- }
- if (diff < level) {
- if (diff > (level >> 1)) {
- ap = (ap + ap + bp)/3;
- } else {
- ap = bp;
- }
- }
-
- *table++ = ap;
- }
- }
-}
-
-void plugin_but_changed(int but) { }
-void plugin_init() { }
-
-void * plugin_seq_alloc_private_data()
-{
- struct my_data * result = (struct my_data*) calloc(
- sizeof(struct my_data), 1);
- result->last_cfra = -1;
- return result;
-}
-
-void plugin_seq_free_private_data(void * data)
-{
- struct my_data * d = (struct my_data*) data;
- if (d->last_frame) {
- free(d->last_frame);
- }
- free(d);
-}
-
-void plugin_getinfo(PluginInfo *info)
-{
- info->name= name;
- info->nvars= sizeof(varstr)/sizeof(VarStruct);
- info->cfra= &cfra;
-
- info->varstr= varstr;
-
- info->init= plugin_init;
- info->seq_doit= (SeqDoit) plugin_seq_doit;
- info->callback= plugin_but_changed;
-}
-
-static void doit(unsigned char * src_, unsigned char * dst_,
- unsigned char * table, int width, int height)
-{
- int count = width * height;
- unsigned char * src = src_;
- unsigned char * dst = dst_;
-
- while (count--) {
- *dst = table[(*src++ << 8) | *dst]; dst++;
- *dst = table[(*src++ << 8) | *dst]; dst++;
- *dst = table[(*src++ << 8) | *dst]; dst++;
- *dst++ = *src++;
- }
-
- memcpy(src_, dst_, width * height * 4);
-}
-
-void plugin_seq_doit(Cast *cast, float facf0, float facf1, int width,
- int height, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *out, ImBuf *use) {
-
- struct my_data * d = (struct my_data*) plugin_private_data;
-
- if (!ibuf1) return;
-
- if (cast->level != d->last_level) {
- precalculate(d->lookup_table, cast->level);
- d->last_level = cast->level;
- }
-
- if (width != d->last_width || height != d->last_height ||
- cfra != d->last_cfra + 1)
- {
- free(d->last_frame);
- d->last_frame = (unsigned char*) calloc(width * height, 4);
-
- d->last_width = width;
- d->last_height = height;
- }
-
- memcpy(out->rect, ibuf1->rect, width * height * 4);
-
- doit((unsigned char*) out->rect,
- d->last_frame, d->lookup_table, width, height);
-
- d->last_cfra = cfra;
-}