[gimp-gap/gap-2-8] fixed iterators and endless loop in video index creation
- From: Wolfgang Hofer <wolfgangh src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp-gap/gap-2-8] fixed iterators and endless loop in video index creation
- Date: Thu, 27 Feb 2014 17:33:33 +0000 (UTC)
commit eef5deb1a9c6542fb698bd359f2a2e1b35de6f82
Author: Wolfgang Hofer <wolfgangh svn gnome org>
Date: Thu Feb 27 18:32:59 2014 +0100
fixed iterators and endless loop in video index creation
ChangeLog | 58 +++++++++
gap/gap_filter_iterators.c | 37 ++++++
gap/gap_fmac_main.c | 130 +++++++++++++++++---
gap/gap_name2layer_main.c | 28 ++++-
gap/gap_player_dialog.c | 8 ++
gap/gap_video_index_creator.c | 14 ++-
gap/iter_ALT/gen/plug_in_blinds_iter_ALT.inc | 13 ++-
gap/iter_ALT/gen/plug_in_checkerboard_iter_ALT.inc | 8 +-
gap/iter_ALT/gen/plug_in_destripe_iter_ALT.inc | 1 +
gap/iter_ALT/gen/plug_in_engrave_iter_ALT.inc | 1 +
.../gen/plug_in_fractal_trace_iter_ALT.inc | 25 ++--
gap/iter_ALT/gen/plug_in_mblur_iter_ALT.inc | 2 +
gap/iter_ALT/gen/plug_in_mosaic_iter_ALT.inc | 37 ++++--
gap/iter_ALT/gen/plug_in_newsprint_iter_ALT.inc | 32 +++---
gap/iter_ALT/gen/plug_in_ripple_iter_ALT.inc | 20 ++--
gap/iter_ALT/gen/plug_in_shift_iter_ALT.inc | 7 +-
gap/iter_ALT/gen/plug_in_video_iter_ALT.inc | 17 ++-
gap/iter_ALT/gen/plug_in_waves_iter_ALT.inc | 1 +
gap/iter_ALT/mod/plug_in_applylens_iter_ALT.inc | 16 ++-
gap/iter_ALT/mod/plug_in_bump_map_iter_ALT.inc | 2 +
.../mod/plug_in_colors_channel_mixer_iter_ALT.inc | 3 +
gap/iter_ALT/mod/plug_in_dog_iter_ALT.inc | 2 +
gap/iter_ALT/mod/plug_in_map_object_iter_ALT.inc | 2 +
gap/iter_ALT/mod/plug_in_polar_coords_iter_ALT.inc | 3 +
gap/iter_ALT/mod/plug_in_sinus_iter_ALT.inc | 1 +
gap/iter_ALT/mod/plug_in_solid_noise_iter_ALT.inc | 3 +
gap/iter_ALT/mod/plug_in_sparkle_iter_ALT.inc | 5 +
libgapvidapi/gap_vid_api_ffmpeg.c | 21 +++-
28 files changed, 404 insertions(+), 93 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 021cdfa..4c739a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,61 @@
+2014-02-27 Wolfgang Hofer <hof gimp org>
+
+- fixed bug in the GAP video API that caused endless loop in
+ ffmpeg based video index creation.
+ (p_wrapper_ffmpeg_get_next_frame retcode was not returned to the caller !)
+
+- video index creator and player dialog:
+ video index creation now shows the current frame count in the progress bar.
+ This is done because the total number of frames to process is just a guess
+ and the percentage is kept at constant level if there are (much) more frames to process
+ (than assumed in the initial guess.)
+
+- Updated iterator procedures to fit last values buffer structures
+ for the plug-ins that are part of the GIMP-2.8.10 release.
+ (some of them have changed their structure and are not compatible
+ with GIMP-2.6.x releases)
+
+
+- added information column in the filtermacro dialog
+ this column shows errors that occured when recording a filtercall.
+ The current implementation marks filters with Error 1
+ when the probe iteratorcall fails at recording time
+ (triggered by the Add button in the filtermacro dialog)
+
+ The probe iteratorcall typically fails when the last values buffer
+ (where the filter stores its parmaters) does not match the
+ corresponding iterator implementation.
+
+
+ * gap/gap_filter_iterators.c
+ * gap/gap_fmac_main.c
+ * gap/gap_name2layer_main.c
+ * gap/gap_player_dialog.c
+ * gap/gap_video_index_creator.c
+ * gap/iter_ALT/gen/plug_in_blinds_iter_ALT.inc
+ * gap/iter_ALT/gen/plug_in_checkerboard_iter_ALT.inc
+ * gap/iter_ALT/gen/plug_in_destripe_iter_ALT.inc
+ * gap/iter_ALT/gen/plug_in_engrave_iter_ALT.inc
+ * gap/iter_ALT/gen/plug_in_fractal_trace_iter_ALT.inc
+ * gap/iter_ALT/gen/plug_in_mblur_iter_ALT.inc
+ * gap/iter_ALT/gen/plug_in_mosaic_iter_ALT.inc
+ * gap/iter_ALT/gen/plug_in_newsprint_iter_ALT.inc
+ * gap/iter_ALT/gen/plug_in_ripple_iter_ALT.inc
+ * gap/iter_ALT/gen/plug_in_shift_iter_ALT.inc
+ * gap/iter_ALT/gen/plug_in_video_iter_ALT.inc
+ * gap/iter_ALT/gen/plug_in_waves_iter_ALT.inc
+ * gap/iter_ALT/mod/plug_in_applylens_iter_ALT.inc
+ * gap/iter_ALT/mod/plug_in_bump_map_iter_ALT.inc
+ * gap/iter_ALT/mod/plug_in_colors_channel_mixer_iter_ALT.inc
+ * gap/iter_ALT/mod/plug_in_dog_iter_ALT.inc
+ * gap/iter_ALT/mod/plug_in_map_object_iter_ALT.inc
+ * gap/iter_ALT/mod/plug_in_polar_coords_iter_ALT.inc
+ * gap/iter_ALT/mod/plug_in_sinus_iter_ALT.inc
+ * gap/iter_ALT/mod/plug_in_solid_noise_iter_ALT.inc
+ * gap/iter_ALT/mod/plug_in_sparkle_iter_ALT.inc
+ * libgapvidapi/gap_vid_api_ffmpeg.c
+
+
2014-02-22 Wolfgang Hofer <hof gimp org>
- extended filtermacro reference sidecar filformat (.fmref)
.fmref files do describe persistent layer ids and
diff --git a/gap/gap_filter_iterators.c b/gap/gap_filter_iterators.c
index 1af857e..58033b5 100644
--- a/gap/gap_filter_iterators.c
+++ b/gap/gap_filter_iterators.c
@@ -228,6 +228,22 @@ static void p_delta_int(int *val, int val_from, int val_to, gint32 total_steps,
delta = ((double)(val_to - val_from) / (double)total_steps) * ((double)total_steps - current_step);
*val = val_from + delta;
}
+static void p_delta_gboolean(gboolean *val, gboolean val_from, gboolean val_to, gint32 total_steps, gdouble
current_step)
+{
+ double delta;
+
+ if(total_steps < 1) return;
+
+ delta = (1.0 / (double)total_steps) * ((double)total_steps - current_step);
+ if (delta <= 0.5)
+ {
+ *val = val_from;
+ }
+ else
+ {
+ *val = val_to;
+ }
+}
static void p_delta_gint(gint *val, gint val_from, gint val_to, gint32 total_steps, gdouble current_step)
{
double delta;
@@ -1369,6 +1385,27 @@ gap_common_iterator(const char *c_keyname, GimpRunMode run_mode, gint32 total_st
+static void
+p_delta_GimpOrientationType(GimpOrientationType *val, GimpOrientationType *val_from, GimpOrientationType
*val_to, gint32 total_steps, gdouble current_step)
+{
+ double delta;
+ gboolean orientationFrom;
+ gboolean orientationTo;
+ gboolean orientationCurrent;
+
+ if(total_steps < 1) return;
+
+ orientationCurrent = (*val == GIMP_ORIENTATION_HORIZONTAL);
+ orientationFrom = (*val_from == GIMP_ORIENTATION_HORIZONTAL);
+ orientationTo = (*val_to == GIMP_ORIENTATION_HORIZONTAL);
+
+ p_delta_gboolean(&orientationCurrent, orientationFrom, orientationTo, total_steps, current_step);
+
+
+ *val = (orientationCurrent) ? GIMP_ORIENTATION_HORIZONTAL : GIMP_ORIENTATION_VERTICAL;
+
+}
+
static void
p_delta_GimpRGB(GimpRGB *val, GimpRGB *val_from, GimpRGB *val_to, gint32 total_steps, gdouble current_step)
diff --git a/gap/gap_fmac_main.c b/gap/gap_fmac_main.c
old mode 100644
new mode 100755
index bf71099..1bbc0a2
--- a/gap/gap_fmac_main.c
+++ b/gap/gap_fmac_main.c
@@ -73,6 +73,7 @@
#define GAP_DB_BROWSER_FMAC_HELP_ID "gap-filtermacro-db-browser"
#define FMAC_FILE_LENGTH 1500
+#define ERRCODE_KEY_STRING "(err:"
/* ------------------------
* global gap DEBUG switch
@@ -112,6 +113,8 @@ typedef struct
gint gap_fmac_dialog(GimpRunMode run_mode, gint32 image_id, gint32 drawable_id);
+static long p_get_errorcode_as_long(const char *line);
+static gchar * p_get_errorcode_string(const char *line);
static gchar * p_get_filtername(const char *line);
static void p_procedure_select_callback (GtkTreeSelection *sel, fmac_globalparams_t *gpp);
static void p_tree_fill (fmac_globalparams_t *gpp);
@@ -130,7 +133,7 @@ static void p_setbutton_sensitivity(fmac_globalparams_t *gpp);
static gboolean p_chk_filtermacro_file(const char *filtermacro_file);
static void p_print_and_free_msg(char *msg, GimpRunMode run_mode);
-static gchar * p_get_gap_filter_data_string(const char *plugin_name);
+static gchar * p_get_gap_filter_data_string(const char *plugin_name, gint errorcode);
static gchar * p_get_mapped_gap_filter_data_string(const char *plugin_name, const char *filtermacro_file);
static gint p_fmac_add_filter_to_file(const char *filtermacro_file, const char *plugin_name);
static gint p_fmac_add_filter(const char *filtermacro_file, gint32 image_id);
@@ -382,12 +385,13 @@ p_print_and_free_msg(char *msg, GimpRunMode run_mode)
* "plug_in_name" len hexbyte1 hexbyte2 .......\n
* example:
* "plug_in_sharpen" 4 0a 00 00 00
+ * "plug_in_sharpen" 4 0a 00 00 00 (err: -1)
*
* return data_string or NULL pointer if nothing was found.
* the returned data_string should be g_free'd by the caller (if it was not NULL)
*/
static gchar *
-p_get_gap_filter_data_string(const char *plugin_name)
+p_get_gap_filter_data_string(const char *plugin_name, gint errorcode)
{
gint plugin_data_len;
int l_byte;
@@ -403,7 +407,7 @@ p_get_gap_filter_data_string(const char *plugin_name)
if(gap_debug)
{
- printf("p_get_gap_filter_data_string: plugin_name:%s:\n", plugin_name);
+ printf("p_get_gap_filter_data_string: plugin_name:%s: errorcode:%d\n", plugin_name, errorcode);
}
plugin_data_len = gimp_get_data_size (plugin_name);
@@ -428,8 +432,16 @@ p_get_gap_filter_data_string(const char *plugin_name)
g_free(l_str);
}
- /* add terminating newline character */
- l_str = g_strdup_printf("%s\n", l_str_tmp);
+ if (errorcode == 0)
+ {
+ /* add terminating newline character */
+ l_str = g_strdup_printf("%s\n", l_str_tmp);
+ }
+ else
+ {
+ /* add errorcode and terminating newline character */
+ l_str = g_strdup_printf("%s %s %d)\n", l_str_tmp, ERRCODE_KEY_STRING, errorcode);
+ }
g_free(l_str_tmp);
if (gap_debug)
@@ -447,6 +459,7 @@ p_get_gap_filter_data_string(const char *plugin_name)
} /* end p_get_gap_filter_data_string */
+
/* -----------------------------------
* p_get_mapped_gap_filter_data_string
* -----------------------------------
@@ -464,7 +477,7 @@ p_get_gap_filter_data_string(const char *plugin_name)
*
* return data_string or NULL pointer if nothing was found.
* the returned data_string should be g_free'd by the caller (if it was not NULL)
- *
+ *
*/
static gchar *
p_get_mapped_gap_filter_data_string(const char *plugin_name, const char *filtermacro_file)
@@ -476,10 +489,11 @@ p_get_mapped_gap_filter_data_string(const char *plugin_name, const char *filterm
gchar *data_string;
const char *l_iteratorname;
gint l_count;
+ gint l_error;
data_string = NULL;
-
+
if(plugin_name == NULL)
{
return (NULL);
@@ -521,7 +535,7 @@ p_get_mapped_gap_filter_data_string(const char *plugin_name, const char *filterm
gimp_get_data(plugin_name, plugin_data_bck);
- /* Set FROM and TO buffers.
+ /* Set FROM and TO buffers.
* (in recording mode we use all the same data as the backup of the original buffer)
* those buffers are not relevant in recording mode, but are required
* for the iterator call interface.
@@ -536,22 +550,26 @@ p_get_mapped_gap_filter_data_string(const char *plugin_name, const char *filterm
* this triggers the mapping of drawable ids in the persistent .fmref file.
* (but only in case the called plugin has at least one an iterable drawable_id in its last_values
paramters,
* otherwise the las values buffer shall not change by the iteratorcall,
- * due to same settings for from and to values)
+ * due to same settings for from and to values)
*/
- gap_filter_iterator_call(l_iteratorname
+ l_error = 0;
+ if(!gap_filter_iterator_call(l_iteratorname
, 1 /* total_steps */
, 1.0 /* current_step */
, plugin_name
, plugin_data_len
- );
+ ))
+ {
+ l_error = 1;
+ }
- data_string = p_get_gap_filter_data_string(plugin_name);
+ data_string = p_get_gap_filter_data_string(plugin_name, l_error);
/* restore original data from backup buffer */
gimp_set_data(plugin_name, plugin_data_bck, plugin_data_len);
g_free(plugin_data_bck);
-
+
/* disable the sessionwide filtermacro context */
gap_fmct_disable_GapFmacContext();
@@ -775,6 +793,11 @@ gap_fmac_dialog(GimpRunMode run_mode, gint32 image_id, gint32 drawable_id)
renderer,
"text", 3,
NULL);
+ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (gpp->tv),
+ -1, _("Information"),
+ renderer,
+ "text", 4,
+ NULL);
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (gpp->tv), TRUE);
gtk_widget_set_size_request (gpp->tv, 320 /*WIDTH*/, 100 /*HEIGHT*/);
@@ -821,6 +844,73 @@ gap_fmac_dialog(GimpRunMode run_mode, gint32 image_id, gint32 drawable_id)
return 0;
} /* end gap_fmac_dialog */
+/* ----------------------------
+ * p_get_errorcode_as_long
+ * ----------------------------
+ * input is a typical filtermacro file line
+ * if the line contains a filtername (starting with double quotes character)
+ * AND also contains an errorcode string "(err: -1)
+ * then return the errorcode as long integer
+ * return 0 in case the line has no errorcode (or errorcode 0)
+ */
+static long
+p_get_errorcode_as_long(const char *line)
+{
+ if(*line == '"')
+ {
+ gint l_idx;
+ gint l_start;
+
+ l_idx = 1;
+ l_start = -1;
+ while((line[l_idx] != '\0') && (line[l_idx] != '\n'))
+ {
+ if (l_start == -1)
+ {
+ if (line[l_idx] == '"')
+ {
+ /* found the closing double qute character */
+ l_start = 0;
+ }
+ }
+ else if (l_start == 0)
+ {
+ gint l_len;
+ l_len = strlen(ERRCODE_KEY_STRING);
+ if(strncmp(&line[l_idx], ERRCODE_KEY_STRING, l_len) == 0)
+ {
+ long l_errcode;
+ l_errcode = atol(&line[l_idx + l_len]);
+ return (l_errcode);
+ }
+ }
+
+ l_idx++;
+ }
+ return(0);
+ }
+ return (0);
+
+} /* end p_get_errorcode_as_long */
+
+/* ----------------------------
+ * p_get_errorcode_as_string
+ * ----------------------------
+ * return empty string for errorcode 0 (OK) or n case when no errorcode present
+ */
+static gchar *
+p_get_errorcode_string(const char *line)
+{
+ long l_errcode;
+ l_errcode = p_get_errorcode_as_long(line);
+ if (l_errcode == 0)
+ {
+ return (g_strdup("\0"));
+ }
+ return (g_strdup_printf(_("Error: %d"), (int)l_errcode));
+
+} /* end p_get_errorcode_string */
+
/* ----------------------------
* p_get_filtername
@@ -898,7 +988,13 @@ p_tree_fill (fmac_globalparams_t *gpp)
GapValTextFileLines *txf_ptr_root;
- gpp->store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+ gpp->store = gtk_list_store_new (5
+ , G_TYPE_STRING
+ , G_TYPE_STRING
+ , G_TYPE_STRING
+ , G_TYPE_STRING
+ , G_TYPE_STRING
+ );
gtk_tree_view_set_model (GTK_TREE_VIEW (gpp->tv)
,GTK_TREE_MODEL (gpp->store)
);
@@ -930,7 +1026,9 @@ p_tree_fill (fmac_globalparams_t *gpp)
gchar *numtxt;
gchar *label;
gchar *menu_path;
+ gchar *errorcode;
+ errorcode = p_get_errorcode_string(txf_ptr->line);
menu_path = gap_db_get_plugin_menupath(pdb_name);
if(menu_path == NULL)
{
@@ -945,11 +1043,13 @@ p_tree_fill (fmac_globalparams_t *gpp)
,1, label /* visible number starting at 1 */
,2, pdb_name
,3, menu_path
+ ,4, errorcode
,-1);
g_free (numtxt);
g_free (label);
g_free (menu_path);
g_free (pdb_name);
+ g_free (errorcode);
count_elem++;
}
}
@@ -1452,7 +1552,7 @@ p_fmac_pdb_constraint_proc_sel1(gchar *proc_name, gint32 image_id)
{
char *data_string;
- data_string = p_get_gap_filter_data_string(proc_name);
+ data_string = p_get_gap_filter_data_string(proc_name, 0);
if(data_string)
{
diff --git a/gap/gap_name2layer_main.c b/gap/gap_name2layer_main.c
index 6030077..35c3f17 100644
--- a/gap/gap_name2layer_main.c
+++ b/gap/gap_name2layer_main.c
@@ -202,10 +202,16 @@ run (const gchar *name, /* name of plugin */
l_env = g_getenv("NUML_DEBUG");
if(l_env != NULL)
{
- if((*l_env != 'n') && (*l_env != 'N')) gap_debug = 1;
+ if((*l_env != 'n') && (*l_env != 'N'))
+ {
+ gap_debug = 1;
+ }
}
- if(gap_debug) fprintf(stderr, "\n\nDEBUG: run %s\n", name);
+ if(gap_debug)
+ {
+ printf("\n\nDEBUG: run %s\n", name);
+ }
/* initialize the return of the status */
values[0].type = GIMP_PDB_STATUS;
@@ -302,7 +308,13 @@ p_Naml (gint32 image_id, gint32 drawable_id)
gchar *l_imagename;
gchar *l_text;
- if(gap_debug) printf("p_Naml START\n");
+ if(gap_debug)
+ {
+ printf("p_Naml START image_id:%d drawable_id:%d\n"
+ , (int)image_id
+ , (int)drawable_id
+ );
+ }
l_imagename = g_strdup(gimp_image_get_filename(image_id) );
if(l_imagename == NULL)
@@ -311,7 +323,10 @@ p_Naml (gint32 image_id, gint32 drawable_id)
}
l_text = l_imagename;
- if(gap_debug) printf("p_Naml (1) l_imagename:%s\n", l_imagename);
+ if(gap_debug)
+ {
+ printf("p_Naml (1) l_imagename:%s\n", l_imagename);
+ }
l_drawable_id = -1;
if(glob_namlvals.create_new_layer == 0)
@@ -412,7 +427,10 @@ p_Naml (gint32 image_id, gint32 drawable_id)
gimp_image_undo_group_end(image_id);
- if(gap_debug) printf("p_Naml END layer_id: %d\n", (int)l_new_layer_id);
+ if(gap_debug)
+ {
+ printf("p_Naml END layer_id: %d\n", (int)l_new_layer_id);
+ }
return l_new_layer_id;
} /* end p_Naml */
diff --git a/gap/gap_player_dialog.c b/gap/gap_player_dialog.c
index 1eafeaf..440b3b0 100644
--- a/gap/gap_player_dialog.c
+++ b/gap/gap_player_dialog.c
@@ -2688,6 +2688,14 @@ p_vid_progress_callback(gdouble progress
}
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(gpp->progress_bar), progress);
+ if((gpp->vindex_creation_is_running)
+ && (gpp->gvahand != NULL))
+ {
+ gchar *progressMsg;
+ progressMsg = g_strdup_printf(_("Creating Index %d"), (int)gpp->gvahand->frame_counter);
+ gtk_progress_bar_set_text(GTK_PROGRESS_BAR(gpp->progress_bar), progressMsg);
+ g_free(progressMsg);
+ }
/* g_main_context_iteration makes sure that
* gtk does refresh widgets, and react on events while the videoapi
diff --git a/gap/gap_video_index_creator.c b/gap/gap_video_index_creator.c
index e997315..efe4c6c 100644
--- a/gap/gap_video_index_creator.c
+++ b/gap/gap_video_index_creator.c
@@ -1588,7 +1588,19 @@ p_vid_progress_callback(gdouble progress
);
break;
case FULLSCAN_MODE:
- message = g_strdup_printf(_("Creating video index %0.3f %%"), progress * 100.0);
+ if (vipp->gvahand == NULL)
+ {
+ message = g_strdup_printf(_("Creating video index %0.3f %%")
+ , progress * 100.0
+ );
+ }
+ else
+ {
+ message = g_strdup_printf(_("Creating video index %0.3f %% (%d)")
+ , progress * 100.0
+ , (int)vipp->gvahand->frame_counter
+ );
+ }
break;
default:
message = g_strdup_printf("%0.3f %%", progress * 100.0);
diff --git a/gap/iter_ALT/gen/plug_in_blinds_iter_ALT.inc b/gap/iter_ALT/gen/plug_in_blinds_iter_ALT.inc
index 47ff640..ab7aba7 100644
--- a/gap/iter_ALT/gen/plug_in_blinds_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_blinds_iter_ALT.inc
@@ -8,10 +8,11 @@ gint p_plug_in_blinds_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
{
gint angledsp;
gint numsegs;
- gint orientation;
+ GimpOrientationType orientation;
gboolean bg_trans;
- } t_plug_in_blinds_Vals;
-
+ } t_plug_in_blinds_Vals;
+
+
t_plug_in_blinds_Vals buf, *buf_from, *buf_to;
if(len_struct != sizeof(t_plug_in_blinds_Vals))
@@ -28,10 +29,12 @@ gint p_plug_in_blinds_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
buf_to = (t_plug_in_blinds_Vals *)&g_plugin_data_to[0];
memcpy(&buf, buf_from, sizeof(buf));
+
p_delta_gint(&buf.angledsp, buf_from->angledsp, buf_to->angledsp, total_steps, current_step);
p_delta_gint(&buf.numsegs, buf_from->numsegs, buf_to->numsegs, total_steps, current_step);
- p_delta_gint(&buf.orientation, buf_from->orientation, buf_to->orientation, total_steps, current_step);
-
+ p_delta_GimpOrientationType(&buf.orientation, &buf_from->orientation, &buf_to->orientation, total_steps,
current_step);
+ p_delta_gboolean(&buf.bg_trans, buf_from->bg_trans, buf_to->bg_trans, total_steps, current_step);
+
gimp_set_data("plug-in-blinds", &buf, sizeof(buf));
return 0; /* OK */
diff --git a/gap/iter_ALT/gen/plug_in_checkerboard_iter_ALT.inc
b/gap/iter_ALT/gen/plug_in_checkerboard_iter_ALT.inc
index 0f29997..421b2cd 100644
--- a/gap/iter_ALT/gen/plug_in_checkerboard_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_checkerboard_iter_ALT.inc
@@ -6,8 +6,8 @@ gint p_plug_in_checkerboard_iter_ALT(GimpRunMode run_mode, gint32 total_steps, g
{
typedef struct t_plug_in_checkerboard_Vals
{
- long check_mode;
- long check_size;
+ gboolean mode;
+ gint size;
} t_plug_in_checkerboard_Vals;
t_plug_in_checkerboard_Vals buf, *buf_from, *buf_to;
@@ -26,8 +26,8 @@ gint p_plug_in_checkerboard_iter_ALT(GimpRunMode run_mode, gint32 total_steps, g
buf_to = (t_plug_in_checkerboard_Vals *)&g_plugin_data_to[0];
memcpy(&buf, buf_from, sizeof(buf));
- p_delta_long(&buf.check_mode, buf_from->check_mode, buf_to->check_mode, total_steps, current_step);
- p_delta_long(&buf.check_size, buf_from->check_size, buf_to->check_size, total_steps, current_step);
+ p_delta_gboolean(&buf.mode, buf_from->mode, buf_to->mode, total_steps, current_step);
+ p_delta_gint(&buf.size, buf_from->size, buf_to->size, total_steps, current_step);
gimp_set_data("plug-in-checkerboard", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/gen/plug_in_destripe_iter_ALT.inc b/gap/iter_ALT/gen/plug_in_destripe_iter_ALT.inc
index c248f72..7e85d31 100644
--- a/gap/iter_ALT/gen/plug_in_destripe_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_destripe_iter_ALT.inc
@@ -27,6 +27,7 @@ gint p_plug_in_destripe_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdoub
buf_to = (t_plug_in_destripe_Vals *)&g_plugin_data_to[0];
memcpy(&buf, buf_from, sizeof(buf));
+ p_delta_gboolean(&buf.histogram, buf_from->histogram, buf_to->histogram, total_steps, current_step);
p_delta_gint(&buf.avg_width, buf_from->avg_width, buf_to->avg_width, total_steps, current_step);
buf.preview = FALSE;
diff --git a/gap/iter_ALT/gen/plug_in_engrave_iter_ALT.inc b/gap/iter_ALT/gen/plug_in_engrave_iter_ALT.inc
index e8a31cf..2db44ae 100644
--- a/gap/iter_ALT/gen/plug_in_engrave_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_engrave_iter_ALT.inc
@@ -27,6 +27,7 @@ gint p_plug_in_engrave_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdoubl
memcpy(&buf, buf_from, sizeof(buf));
p_delta_gint(&buf.height, buf_from->height, buf_to->height, total_steps, current_step);
+ p_delta_gboolean(&buf.limit, buf_from->limit, buf_to->limit, total_steps, current_step);
gimp_set_data("plug-in-engrave", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/gen/plug_in_fractal_trace_iter_ALT.inc
b/gap/iter_ALT/gen/plug_in_fractal_trace_iter_ALT.inc
index 40e2354..ca20a48 100644
--- a/gap/iter_ALT/gen/plug_in_fractal_trace_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_fractal_trace_iter_ALT.inc
@@ -6,14 +6,15 @@ gint p_plug_in_fractal_trace_iter_ALT(GimpRunMode run_mode, gint32 total_steps,
{
typedef struct t_plug_in_fractal_trace_Vals
{
- gdouble xmin;
- gdouble xmax;
- gdouble ymin;
- gdouble ymax;
- long depth;
- long outside_type;
+ gdouble x1;
+ gdouble x2;
+ gdouble y1;
+ gdouble y2;
+ gint32 depth;
+ gint32 outside_type;
} t_plug_in_fractal_trace_Vals;
+
t_plug_in_fractal_trace_Vals buf, *buf_from, *buf_to;
if(len_struct != sizeof(t_plug_in_fractal_trace_Vals))
@@ -30,12 +31,12 @@ gint p_plug_in_fractal_trace_iter_ALT(GimpRunMode run_mode, gint32 total_steps,
buf_to = (t_plug_in_fractal_trace_Vals *)&g_plugin_data_to[0];
memcpy(&buf, buf_from, sizeof(buf));
- p_delta_gdouble(&buf.xmin, buf_from->xmin, buf_to->xmin, total_steps, current_step);
- p_delta_gdouble(&buf.xmax, buf_from->xmax, buf_to->xmax, total_steps, current_step);
- p_delta_gdouble(&buf.ymin, buf_from->ymin, buf_to->ymin, total_steps, current_step);
- p_delta_gdouble(&buf.ymax, buf_from->ymax, buf_to->ymax, total_steps, current_step);
- p_delta_long(&buf.depth, buf_from->depth, buf_to->depth, total_steps, current_step);
- p_delta_long(&buf.outside_type, buf_from->outside_type, buf_to->outside_type, total_steps, current_step);
+ p_delta_gdouble(&buf.x1, buf_from->x1, buf_to->x1, total_steps, current_step);
+ p_delta_gdouble(&buf.x2, buf_from->x2, buf_to->x2, total_steps, current_step);
+ p_delta_gdouble(&buf.y1, buf_from->y1, buf_to->y1, total_steps, current_step);
+ p_delta_gdouble(&buf.y2, buf_from->y2, buf_to->y2, total_steps, current_step);
+ p_delta_gint32(&buf.depth, buf_from->depth, buf_to->depth, total_steps, current_step);
+ p_delta_gint32(&buf.outside_type, buf_from->outside_type, buf_to->outside_type, total_steps,
current_step);
gimp_set_data("plug-in-fractal-trace", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/gen/plug_in_mblur_iter_ALT.inc b/gap/iter_ALT/gen/plug_in_mblur_iter_ALT.inc
index 93f240f..568b571 100644
--- a/gap/iter_ALT/gen/plug_in_mblur_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_mblur_iter_ALT.inc
@@ -38,6 +38,8 @@ gint p_plug_in_mblur_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
p_delta_gdouble(&buf.center_x, buf_from->center_x, buf_to->center_x, total_steps, current_step);
p_delta_gdouble(&buf.center_y, buf_from->center_y, buf_to->center_y, total_steps, current_step);
+ p_delta_gboolean(&buf.blur_outward, buf_from->blur_outward, buf_to->blur_outward, total_steps,
current_step);
+
gimp_set_data("plug-in-mblur", &buf, sizeof(buf));
return 0; /* OK */
diff --git a/gap/iter_ALT/gen/plug_in_mosaic_iter_ALT.inc b/gap/iter_ALT/gen/plug_in_mosaic_iter_ALT.inc
index c0e71d4..5f65871 100644
--- a/gap/iter_ALT/gen/plug_in_mosaic_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_mosaic_iter_ALT.inc
@@ -4,6 +4,14 @@
*/
gint p_plug_in_mosaic_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble current_step, gint32
len_struct)
{
+ typedef enum
+ {
+ SQUARES = 0,
+ HEXAGONS = 1,
+ OCTAGONS = 2,
+ TRIANGLES = 3
+ } t_plug_in_mosaic_TileType;
+
typedef struct t_plug_in_mosaic_Vals
{
gdouble tile_size;
@@ -13,14 +21,17 @@ gint p_plug_in_mosaic_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
long tile_allow_split;
gdouble light_dir;
gdouble color_variation;
- long antialiasing;
- long color_averaging;
- long tile_type;
- long tile_surface;
- long grout_color;
+ gboolean antialiasing;
+ gint color_averaging;
+ t_plug_in_mosaic_TileType tile_type;
+ gint tile_surface;
+ gint grout_color;
} t_plug_in_mosaic_Vals;
t_plug_in_mosaic_Vals buf, *buf_from, *buf_to;
+
+ gboolean l_boolean_switch;
+
if(len_struct != sizeof(t_plug_in_mosaic_Vals))
{
@@ -43,11 +54,17 @@ gint p_plug_in_mosaic_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
p_delta_long(&buf.tile_allow_split, buf_from->tile_allow_split, buf_to->tile_allow_split, total_steps,
current_step);
p_delta_gdouble(&buf.light_dir, buf_from->light_dir, buf_to->light_dir, total_steps, current_step);
p_delta_gdouble(&buf.color_variation, buf_from->color_variation, buf_to->color_variation, total_steps,
current_step);
- p_delta_long(&buf.antialiasing, buf_from->antialiasing, buf_to->antialiasing, total_steps, current_step);
- p_delta_long(&buf.color_averaging, buf_from->color_averaging, buf_to->color_averaging, total_steps,
current_step);
- p_delta_long(&buf.tile_type, buf_from->tile_type, buf_to->tile_type, total_steps, current_step);
- p_delta_long(&buf.tile_surface, buf_from->tile_surface, buf_to->tile_surface, total_steps, current_step);
- p_delta_long(&buf.grout_color, buf_from->grout_color, buf_to->grout_color, total_steps, current_step);
+ p_delta_gboolean(&buf.antialiasing, buf_from->antialiasing, buf_to->antialiasing, total_steps,
current_step);
+
+ p_delta_gboolean(&l_boolean_switch, FALSE, TRUE, total_steps, current_step);
+
+ /* enum is not iterated, just pick the other value when its time to switch */
+ buf.tile_type = (l_boolean_switch) ? buf_to->tile_type : buf_from->tile_type;
+
+ /* the follwning gint values are flags and therefore handled as gboolean types */
+ buf.color_averaging = (l_boolean_switch) ? buf_to->color_averaging : buf_from->color_averaging;
+ buf.tile_surface = (l_boolean_switch) ? buf_to->tile_surface : buf_from->tile_surface;
+ buf.grout_color = (l_boolean_switch) ? buf_to->grout_color : buf_from->grout_color;
gimp_set_data("plug-in-mosaic", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/gen/plug_in_newsprint_iter_ALT.inc b/gap/iter_ALT/gen/plug_in_newsprint_iter_ALT.inc
index a787f8e..7459371 100644
--- a/gap/iter_ALT/gen/plug_in_newsprint_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_newsprint_iter_ALT.inc
@@ -6,18 +6,18 @@ gint p_plug_in_newsprint_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdou
{
typedef struct t_plug_in_newsprint_Vals
{
- long cell_width;
- long colorspace;
- long k_pullout;
+ gint cell_width;
+ gint colorspace;
+ gint k_pullout;
gdouble gry_ang;
- long gry_spotfn;
+ gint gry_spotfn;
gdouble red_ang;
- long red_spotfn;
+ gint red_spotfn;
gdouble grn_ang;
- long grn_spotfn;
+ gint grn_spotfn;
gdouble blu_ang;
- long blu_spotfn;
- long oversample;
+ gint blu_spotfn;
+ gint oversample;
} t_plug_in_newsprint_Vals;
t_plug_in_newsprint_Vals buf, *buf_from, *buf_to;
@@ -36,18 +36,18 @@ gint p_plug_in_newsprint_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdou
buf_to = (t_plug_in_newsprint_Vals *)&g_plugin_data_to[0];
memcpy(&buf, buf_from, sizeof(buf));
- p_delta_long(&buf.cell_width, buf_from->cell_width, buf_to->cell_width, total_steps, current_step);
- p_delta_long(&buf.colorspace, buf_from->colorspace, buf_to->colorspace, total_steps, current_step);
- p_delta_long(&buf.k_pullout, buf_from->k_pullout, buf_to->k_pullout, total_steps, current_step);
+ p_delta_gint(&buf.cell_width, buf_from->cell_width, buf_to->cell_width, total_steps, current_step);
+ p_delta_gint(&buf.colorspace, buf_from->colorspace, buf_to->colorspace, total_steps, current_step);
+ p_delta_gint(&buf.k_pullout, buf_from->k_pullout, buf_to->k_pullout, total_steps, current_step);
p_delta_gdouble(&buf.gry_ang, buf_from->gry_ang, buf_to->gry_ang, total_steps, current_step);
- p_delta_long(&buf.gry_spotfn, buf_from->gry_spotfn, buf_to->gry_spotfn, total_steps, current_step);
+ p_delta_gint(&buf.gry_spotfn, buf_from->gry_spotfn, buf_to->gry_spotfn, total_steps, current_step);
p_delta_gdouble(&buf.red_ang, buf_from->red_ang, buf_to->red_ang, total_steps, current_step);
- p_delta_long(&buf.red_spotfn, buf_from->red_spotfn, buf_to->red_spotfn, total_steps, current_step);
+ p_delta_gint(&buf.red_spotfn, buf_from->red_spotfn, buf_to->red_spotfn, total_steps, current_step);
p_delta_gdouble(&buf.grn_ang, buf_from->grn_ang, buf_to->grn_ang, total_steps, current_step);
- p_delta_long(&buf.grn_spotfn, buf_from->grn_spotfn, buf_to->grn_spotfn, total_steps, current_step);
+ p_delta_gint(&buf.grn_spotfn, buf_from->grn_spotfn, buf_to->grn_spotfn, total_steps, current_step);
p_delta_gdouble(&buf.blu_ang, buf_from->blu_ang, buf_to->blu_ang, total_steps, current_step);
- p_delta_long(&buf.blu_spotfn, buf_from->blu_spotfn, buf_to->blu_spotfn, total_steps, current_step);
- p_delta_long(&buf.oversample, buf_from->oversample, buf_to->oversample, total_steps, current_step);
+ p_delta_gint(&buf.blu_spotfn, buf_from->blu_spotfn, buf_to->blu_spotfn, total_steps, current_step);
+ p_delta_gint(&buf.oversample, buf_from->oversample, buf_to->oversample, total_steps, current_step);
gimp_set_data("plug-in-newsprint", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/gen/plug_in_ripple_iter_ALT.inc b/gap/iter_ALT/gen/plug_in_ripple_iter_ALT.inc
index 885ad48..3106055 100644
--- a/gap/iter_ALT/gen/plug_in_ripple_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_ripple_iter_ALT.inc
@@ -6,14 +6,14 @@ gint p_plug_in_ripple_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
{
typedef struct t_plug_in_ripple_Vals
{
- gint period;
- gint amplitude;
- gint orientation;
- gint edges;
- gint waveform;
- gboolean antialias;
- gboolean tile;
- gint phase_shift;
+ gint period;
+ gint amplitude;
+ GimpOrientationType orientation;
+ gint edges;
+ gint waveform;
+ gboolean antialias;
+ gboolean tile;
+ gint phase_shift;
} t_plug_in_ripple_Vals;
t_plug_in_ripple_Vals buf, *buf_from, *buf_to;
@@ -34,9 +34,11 @@ gint p_plug_in_ripple_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
p_delta_gint(&buf.period, buf_from->period, buf_to->period, total_steps, current_step);
p_delta_gint(&buf.amplitude, buf_from->amplitude, buf_to->amplitude, total_steps, current_step);
- p_delta_gint(&buf.orientation, buf_from->orientation, buf_to->orientation, total_steps, current_step);
+ p_delta_GimpOrientationType(&buf.orientation, &buf_from->orientation, &buf_to->orientation, total_steps,
current_step);
p_delta_gint(&buf.edges, buf_from->edges, buf_to->edges, total_steps, current_step);
p_delta_gint(&buf.waveform, buf_from->waveform, buf_to->waveform, total_steps, current_step);
+ p_delta_gboolean(&buf.antialias, buf_from->antialias, buf_to->antialias, total_steps, current_step);
+ p_delta_gboolean(&buf.tile, buf_from->tile, buf_to->tile, total_steps, current_step);
p_delta_gint(&buf.phase_shift, buf_from->phase_shift, buf_to->phase_shift, total_steps, current_step);
gimp_set_data("plug-in-ripple", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/gen/plug_in_shift_iter_ALT.inc b/gap/iter_ALT/gen/plug_in_shift_iter_ALT.inc
index 86d2bc7..a63348a 100644
--- a/gap/iter_ALT/gen/plug_in_shift_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_shift_iter_ALT.inc
@@ -10,6 +10,8 @@ gint p_plug_in_shift_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
gint orientation;
} t_plug_in_shift_Vals;
+ gboolean l_boolean_switch;
+
t_plug_in_shift_Vals buf, *buf_from, *buf_to;
if(len_struct != sizeof(t_plug_in_shift_Vals))
@@ -27,7 +29,10 @@ gint p_plug_in_shift_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
memcpy(&buf, buf_from, sizeof(buf));
p_delta_gint(&buf.shift_amount, buf_from->shift_amount, buf_to->shift_amount, total_steps, current_step);
- p_delta_gint(&buf.orientation, buf_from->orientation, buf_to->orientation, total_steps, current_step);
+
+ /* the gint orientation value has only 2 valid values 0 and 1, therefore itrate the orientation as
boolean */
+ p_delta_gboolean(&l_boolean_switch, FALSE, TRUE, total_steps, current_step);
+ buf.orientation = (l_boolean_switch) ? buf_to->orientation : buf_from->orientation;
gimp_set_data("plug-in-shift", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/gen/plug_in_video_iter_ALT.inc b/gap/iter_ALT/gen/plug_in_video_iter_ALT.inc
index 9c06088..43f51ad 100644
--- a/gap/iter_ALT/gen/plug_in_video_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_video_iter_ALT.inc
@@ -6,13 +6,15 @@ gint p_plug_in_video_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
{
typedef struct t_plug_in_video_Vals
{
- long pattern_number;
- long additive;
- long rotated;
+ gint pattern_number;
+ gint additive;
+ gint rotated;
} t_plug_in_video_Vals;
t_plug_in_video_Vals buf, *buf_from, *buf_to;
+ gboolean l_boolean_switch;
+
if(len_struct != sizeof(t_plug_in_video_Vals))
{
fprintf(stderr, "ERROR: p_plug_in_video_iter_ALT stored Data missmatch in size %d != %d\n",
@@ -27,9 +29,12 @@ gint p_plug_in_video_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
buf_to = (t_plug_in_video_Vals *)&g_plugin_data_to[0];
memcpy(&buf, buf_from, sizeof(buf));
- p_delta_long(&buf.pattern_number, buf_from->pattern_number, buf_to->pattern_number, total_steps,
current_step);
- p_delta_long(&buf.additive, buf_from->additive, buf_to->additive, total_steps, current_step);
- p_delta_long(&buf.rotated, buf_from->rotated, buf_to->rotated, total_steps, current_step);
+ p_delta_gint(&buf.pattern_number, buf_from->pattern_number, buf_to->pattern_number, total_steps,
current_step);
+
+ p_delta_gboolean(&l_boolean_switch, FALSE, TRUE, total_steps, current_step);
+ buf.additive = (l_boolean_switch) ? buf_to->additive : buf_from->additive;
+ buf.rotated = (l_boolean_switch) ? buf_to->rotated : buf_from->rotated;
+
gimp_set_data("plug-in-video", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/gen/plug_in_waves_iter_ALT.inc b/gap/iter_ALT/gen/plug_in_waves_iter_ALT.inc
index 80d6a8b..2194c76 100644
--- a/gap/iter_ALT/gen/plug_in_waves_iter_ALT.inc
+++ b/gap/iter_ALT/gen/plug_in_waves_iter_ALT.inc
@@ -33,6 +33,7 @@ gint p_plug_in_waves_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
p_delta_gdouble(&buf.phase, buf_from->phase, buf_to->phase, total_steps, current_step);
p_delta_gdouble(&buf.wavelength, buf_from->wavelength, buf_to->wavelength, total_steps, current_step);
p_delta_gint32(&buf.type, buf_from->type, buf_to->type, total_steps, current_step);
+ p_delta_gboolean(&buf.reflective, buf_from->reflective, buf_to->reflective, total_steps, current_step);
gimp_set_data("plug-in-waves", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/mod/plug_in_applylens_iter_ALT.inc b/gap/iter_ALT/mod/plug_in_applylens_iter_ALT.inc
index 239c35e..18854a1 100644
--- a/gap/iter_ALT/mod/plug_in_applylens_iter_ALT.inc
+++ b/gap/iter_ALT/mod/plug_in_applylens_iter_ALT.inc
@@ -7,11 +7,15 @@ static gint p_plug_in_applylens_iter_ALT(GimpRunMode run_mode, gint32 total_step
typedef struct t_plug_in_applylens_Vals
{
gdouble refraction;
- long keep_surroundings;
- long set_background;
- long set_transparent;
+ gboolean keep_surr;
+ gboolean use_bkgr;
+ gboolean set_transparent;
} t_plug_in_applylens_Vals;
+
+ gdouble refraction;
+
+
t_plug_in_applylens_Vals buf, *buf_from, *buf_to;
if(len_struct != sizeof(t_plug_in_applylens_Vals))
@@ -29,9 +33,9 @@ static gint p_plug_in_applylens_iter_ALT(GimpRunMode run_mode, gint32 total_step
memcpy(&buf, buf_from, sizeof(buf));
p_delta_gdouble(&buf.refraction, buf_from->refraction, buf_to->refraction, total_steps, current_step);
- p_delta_long(&buf.keep_surroundings, buf_from->keep_surroundings, buf_to->keep_surroundings,
total_steps, current_step);
- p_delta_long(&buf.set_background, buf_from->set_background, buf_to->set_background, total_steps,
current_step);
- p_delta_long(&buf.set_transparent, buf_from->set_transparent, buf_to->set_transparent, total_steps,
current_step);
+ p_delta_gboolean(&buf.keep_surr, buf_from->keep_surr, buf_to->keep_surr, total_steps, current_step);
+ p_delta_gboolean(&buf.use_bkgr, buf_from->use_bkgr, buf_to->use_bkgr, total_steps, current_step);
+ p_delta_gboolean(&buf.set_transparent, buf_from->set_transparent, buf_to->set_transparent, total_steps,
current_step);
gimp_set_data("plug-in-applylens", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/mod/plug_in_bump_map_iter_ALT.inc b/gap/iter_ALT/mod/plug_in_bump_map_iter_ALT.inc
index ece022c..f78dcad 100644
--- a/gap/iter_ALT/mod/plug_in_bump_map_iter_ALT.inc
+++ b/gap/iter_ALT/mod/plug_in_bump_map_iter_ALT.inc
@@ -47,6 +47,8 @@ gint p_plug_in_bump_map_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdoub
p_delta_gint(&buf.yofs, buf_from->yofs, buf_to->yofs, total_steps, current_step);
p_delta_gint(&buf.waterlevel, buf_from->waterlevel, buf_to->waterlevel, total_steps, current_step);
p_delta_gint(&buf.ambient, buf_from->ambient, buf_to->ambient, total_steps, current_step);
+ p_delta_gboolean(&buf.compensate, buf_from->compensate, buf_to->compensate, total_steps, current_step);
+ p_delta_gboolean(&buf.invert, buf_from->invert, buf_to->invert, total_steps, current_step);
p_delta_gint(&buf.type, buf_from->type, buf_to->type, total_steps, current_step);
gimp_set_data("plug-in-bump-map", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/mod/plug_in_colors_channel_mixer_iter_ALT.inc
b/gap/iter_ALT/mod/plug_in_colors_channel_mixer_iter_ALT.inc
index b79b839..57ed236 100644
--- a/gap/iter_ALT/mod/plug_in_colors_channel_mixer_iter_ALT.inc
+++ b/gap/iter_ALT/mod/plug_in_colors_channel_mixer_iter_ALT.inc
@@ -59,6 +59,9 @@ gint p_plug_in_colors_channel_mixer_iter_ALT(GimpRunMode run_mode, gint32 total_
p_delta_channel_mixer_ch_type(&buf.blue, &buf_from->blue, &buf_to->blue, total_steps, current_step);
p_delta_channel_mixer_ch_type(&buf.black, &buf_from->black, &buf_to->black, total_steps, current_step);
+ p_delta_gboolean(&buf.monochrome_flag, buf_from->monochrome_flag, buf_to->monochrome_flag, total_steps,
current_step);
+ p_delta_gboolean(&buf.preserve_luminosity_flag, buf_from->preserve_luminosity_flag,
buf_to->preserve_luminosity_flag, total_steps, current_step);
+
buf.preview = FALSE;
gimp_set_data("plug-in-colors-channel-mixer", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/mod/plug_in_dog_iter_ALT.inc b/gap/iter_ALT/mod/plug_in_dog_iter_ALT.inc
index c59615b..5f8f006 100644
--- a/gap/iter_ALT/mod/plug_in_dog_iter_ALT.inc
+++ b/gap/iter_ALT/mod/plug_in_dog_iter_ALT.inc
@@ -30,6 +30,8 @@ gint p_plug_in_dog_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble cu
p_delta_gdouble(&buf.inner, buf_from->inner, buf_to->inner, total_steps, current_step);
p_delta_gdouble(&buf.outer, buf_from->outer, buf_to->outer, total_steps, current_step);
+ p_delta_gboolean(&buf.normalize, buf_from->normalize, buf_to->normalize, total_steps, current_step);
+ p_delta_gboolean(&buf.invert, buf_from->invert, buf_to->invert, total_steps, current_step);
gimp_set_data("plug-in-dog", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/mod/plug_in_map_object_iter_ALT.inc
b/gap/iter_ALT/mod/plug_in_map_object_iter_ALT.inc
index 6d69ace..da883ca 100644
--- a/gap/iter_ALT/mod/plug_in_map_object_iter_ALT.inc
+++ b/gap/iter_ALT/mod/plug_in_map_object_iter_ALT.inc
@@ -21,8 +21,10 @@ gint p_plug_in_map_object_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdo
gint antialiasing;
gint create_new_image;
+ gint create_new_layer;
gint transparent_background;
gint tiled;
+ gint livepreview;
gint showgrid;
gint showcaps;
diff --git a/gap/iter_ALT/mod/plug_in_polar_coords_iter_ALT.inc
b/gap/iter_ALT/mod/plug_in_polar_coords_iter_ALT.inc
index 7a740aa..278abd9 100644
--- a/gap/iter_ALT/mod/plug_in_polar_coords_iter_ALT.inc
+++ b/gap/iter_ALT/mod/plug_in_polar_coords_iter_ALT.inc
@@ -32,6 +32,9 @@ gint p_plug_in_polar_coords_iter_ALT(GimpRunMode run_mode, gint32 total_steps, g
p_delta_gdouble(&buf.circle, buf_from->circle, buf_to->circle, total_steps, current_step);
p_delta_gdouble(&buf.angle, buf_from->angle, buf_to->angle, total_steps, current_step);
+ p_delta_gboolean(&buf.backwards, buf_from->backwards, buf_to->backwards, total_steps, current_step);
+ p_delta_gboolean(&buf.inverse, buf_from->inverse, buf_to->inverse, total_steps, current_step);
+ p_delta_gboolean(&buf.polrec, buf_from->polrec, buf_to->polrec, total_steps, current_step);
gimp_set_data("plug-in-polar-coords", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/mod/plug_in_sinus_iter_ALT.inc b/gap/iter_ALT/mod/plug_in_sinus_iter_ALT.inc
index c7fc402..c290301 100644
--- a/gap/iter_ALT/mod/plug_in_sinus_iter_ALT.inc
+++ b/gap/iter_ALT/mod/plug_in_sinus_iter_ALT.inc
@@ -47,6 +47,7 @@ gint p_plug_in_sinus_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdouble
p_delta_long(&buf.colors, buf_from->colors, buf_to->colors, total_steps, current_step);
p_delta_GimpRGB(&buf.col1, &buf_from->col1, &buf_to->col1, total_steps, current_step);
p_delta_GimpRGB(&buf.col2, &buf_from->col2, &buf_to->col2, total_steps, current_step);
+ p_delta_gboolean(&buf.random_seed, buf_from->random_seed, buf_to->random_seed, total_steps,
current_step);
gimp_set_data("plug-in-sinus", &buf, sizeof(buf));
diff --git a/gap/iter_ALT/mod/plug_in_solid_noise_iter_ALT.inc
b/gap/iter_ALT/mod/plug_in_solid_noise_iter_ALT.inc
index e6b913e..3386078 100644
--- a/gap/iter_ALT/mod/plug_in_solid_noise_iter_ALT.inc
+++ b/gap/iter_ALT/mod/plug_in_solid_noise_iter_ALT.inc
@@ -31,6 +31,9 @@ gint p_plug_in_solid_noise_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gd
buf_to = (t_plug_in_solid_noise_Vals *)&g_plugin_data_to[0];
memcpy(&buf, buf_from, sizeof(buf));
+ p_delta_gboolean(&buf.tilable, buf_from->tilable, buf_to->tilable, total_steps, current_step);
+ p_delta_gboolean(&buf.turbulent, buf_from->turbulent, buf_to->turbulent, total_steps, current_step);
+
p_delta_guint(&buf.seed, buf_from->seed, buf_to->seed, total_steps, current_step);
p_delta_gint(&buf.detail, buf_from->detail, buf_to->detail, total_steps, current_step);
p_delta_gdouble(&buf.xsize, buf_from->xsize, buf_to->xsize, total_steps, current_step);
diff --git a/gap/iter_ALT/mod/plug_in_sparkle_iter_ALT.inc b/gap/iter_ALT/mod/plug_in_sparkle_iter_ALT.inc
index 61182a2..7a79e46 100644
--- a/gap/iter_ALT/mod/plug_in_sparkle_iter_ALT.inc
+++ b/gap/iter_ALT/mod/plug_in_sparkle_iter_ALT.inc
@@ -46,6 +46,11 @@ gint p_plug_in_sparkle_iter_ALT(GimpRunMode run_mode, gint32 total_steps, gdoubl
p_delta_gdouble(&buf.opacity, buf_from->opacity, buf_to->opacity, total_steps, current_step);
p_delta_gdouble(&buf.random_hue, buf_from->random_hue, buf_to->random_hue, total_steps, current_step);
p_delta_gdouble(&buf.random_saturation, buf_from->random_saturation, buf_to->random_saturation,
total_steps, current_step);
+
+ p_delta_gboolean(&buf.preserve_luminosity, buf_from->preserve_luminosity, buf_to->preserve_luminosity,
total_steps, current_step);
+ p_delta_gboolean(&buf.invers, buf_from->invers, buf_to->invers, total_steps, current_step);
+ p_delta_gboolean(&buf.border, buf_from->border, buf_to->border, total_steps, current_step);
+
p_delta_gint(&buf.colortype, buf_from->colortype, buf_to->colortype, total_steps, current_step);
gimp_set_data("plug-in-sparkle", &buf, sizeof(buf));
diff --git a/libgapvidapi/gap_vid_api_ffmpeg.c b/libgapvidapi/gap_vid_api_ffmpeg.c
index 28d6f20..d7c05d2 100644
--- a/libgapvidapi/gap_vid_api_ffmpeg.c
+++ b/libgapvidapi/gap_vid_api_ffmpeg.c
@@ -847,7 +847,7 @@ p_wrapper_ffmpeg_get_video_chunk(t_GVA_Handle *gvahand
static t_GVA_RetCode
p_wrapper_ffmpeg_get_next_frame(t_GVA_Handle *gvahand)
{
- p_private_ffmpeg_get_next_frame(gvahand, FALSE);
+ return (p_private_ffmpeg_get_next_frame(gvahand, FALSE));
} /* end p_wrapper_ffmpeg_get_next_frame*/
@@ -1496,8 +1496,19 @@ p_private_ffmpeg_get_next_frame(t_GVA_Handle *gvahand, gboolean do_copy_raw_chun
GAP_TIMM_STOP_FUNCTION(funcId);
- if(l_rc == 1) { return(GVA_RET_EOF); }
+ if(l_rc == 1)
+ {
+ if(gap_debug)
+ {
+ printf("p_private_ffmpeg_get_next_frame: returning %d GVA_RET_EOF\n", (int)GVA_RET_EOF);
+ }
+ return(GVA_RET_EOF);
+ }
+ if(gap_debug)
+ {
+ printf("p_private_ffmpeg_get_next_frame: returning %d GVA_RET_ERROR\n", (int)GVA_RET_ERROR);
+ }
return(GVA_RET_ERROR);
} /* end p_private_ffmpeg_get_next_frame */
@@ -3454,9 +3465,13 @@ p_wrapper_ffmpeg_count_frames(t_GVA_Handle *gvahand)
{
/* READ FRAME */
l_rc = p_wrapper_ffmpeg_get_next_frame(copy_gvahand);
+ if(gap_debug)
+ {
+ printf("p_wrapper_ffmpeg_count_frames: get_next l_rc:%d\n", (int)l_rc);
+ }
if(l_rc != GVA_RET_OK)
{
- break; /* eof, or fetch error */
+ break; /* eof, or fetch error */
}
gvahand->frame_counter++;
l_total_frames = MAX(l_total_frames, gvahand->frame_counter);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]