plugin fixes and upgrades
authorGood Guy <good1.2guy@gmail.com>
Mon, 29 Feb 2016 22:21:01 +0000 (15:21 -0700)
committerGood Guy <good1.2guy@gmail.com>
Mon, 29 Feb 2016 22:21:01 +0000 (15:21 -0700)
106 files changed:
cinelerra-5.0/plugins/1080to480/1080to480.C
cinelerra-5.0/plugins/1080to540/1080to540.C
cinelerra-5.0/plugins/720to480/720to480.C
cinelerra-5.0/plugins/audioscope/audioscope.C
cinelerra-5.0/plugins/bandslide/bandslide.C
cinelerra-5.0/plugins/bandslide/bandslide.h
cinelerra-5.0/plugins/bandwipe/bandwipe.C
cinelerra-5.0/plugins/bandwipe/bandwipe.h
cinelerra-5.0/plugins/blur/blur.C
cinelerra-5.0/plugins/brightness/brightness.C
cinelerra-5.0/plugins/cdripper/cdripper.C
cinelerra-5.0/plugins/chromakey/chromakey.C
cinelerra-5.0/plugins/chromakeyhsv/chromakey.C
cinelerra-5.0/plugins/color3way/color3way.C
cinelerra-5.0/plugins/colorbalance/colorbalance.C
cinelerra-5.0/plugins/compressor/compressor.C
cinelerra-5.0/plugins/decimate/decimate.C
cinelerra-5.0/plugins/deinterlace/deinterlace.C
cinelerra-5.0/plugins/delayaudio/delayaudio.C
cinelerra-5.0/plugins/delayvideo/delayvideo.C
cinelerra-5.0/plugins/denoise/denoise.C
cinelerra-5.0/plugins/denoisefft/denoisefft.C
cinelerra-5.0/plugins/denoisemjpeg/denoisemjpeg.C
cinelerra-5.0/plugins/denoiseseltempavg/seltempavg.C
cinelerra-5.0/plugins/denoisevideo/denoisevideo.C
cinelerra-5.0/plugins/despike/despike.C
cinelerra-5.0/plugins/diffkey/diffkey.C
cinelerra-5.0/plugins/downsample/downsample.C
cinelerra-5.0/plugins/echo/echo.C
cinelerra-5.0/plugins/echocancel/echocancel.C
cinelerra-5.0/plugins/edge/edge.C
cinelerra-5.0/plugins/fieldframe/fieldframe.C
cinelerra-5.0/plugins/findobject/findobject.C
cinelerra-5.0/plugins/findobject/findobject.h
cinelerra-5.0/plugins/findobject/findobjectwindow.C
cinelerra-5.0/plugins/flip/flip.C
cinelerra-5.0/plugins/framefield/framefield.C
cinelerra-5.0/plugins/freeverb/freeverb.C
cinelerra-5.0/plugins/freezeframe/freezeframe.C
cinelerra-5.0/plugins/gain/gain.C
cinelerra-5.0/plugins/gamma/gamma.C
cinelerra-5.0/plugins/gradient/gradient.C
cinelerra-5.0/plugins/graphic/graphic.C
cinelerra-5.0/plugins/histogram/histogram.C
cinelerra-5.0/plugins/huesaturation/huesaturation.C
cinelerra-5.0/plugins/interpolate/interpolate.C
cinelerra-5.0/plugins/interpolateaudio/interpolateaudio.C
cinelerra-5.0/plugins/interpolatevideo/interpolatevideo.C
cinelerra-5.0/plugins/invertaudio/invert.C
cinelerra-5.0/plugins/invertvideo/invert.C
cinelerra-5.0/plugins/irissquare/irissquare.C
cinelerra-5.0/plugins/ivtc/ivtc.C
cinelerra-5.0/plugins/lens/lens.C
cinelerra-5.0/plugins/level/leveleffect.C
cinelerra-5.0/plugins/linearblur/linearblur.C
cinelerra-5.0/plugins/livevideo/livevideo.C
cinelerra-5.0/plugins/loopaudio/loopaudio.C
cinelerra-5.0/plugins/loopvideo/loopvideo.C
cinelerra-5.0/plugins/motion.new/motion.C
cinelerra-5.0/plugins/motion/motion.C
cinelerra-5.0/plugins/motion2point/motion.C
cinelerra-5.0/plugins/motionblur/motionblur.C
cinelerra-5.0/plugins/oilpainting/oil.C
cinelerra-5.0/plugins/overlay/overlay.C
cinelerra-5.0/plugins/overlayaudio/overlayaudio.C
cinelerra-5.0/plugins/parametric/parametric.C
cinelerra-5.0/plugins/perspective/perspective.C
cinelerra-5.0/plugins/photoscale/photoscale.C
cinelerra-5.0/plugins/piano/piano.C
cinelerra-5.0/plugins/pitch/pitch.C
cinelerra-5.0/plugins/polar/polar.C
cinelerra-5.0/plugins/radialblur/radialblur.C
cinelerra-5.0/plugins/reframert/reframert.C
cinelerra-5.0/plugins/removegaps/removegaps.C
cinelerra-5.0/plugins/resamplert/resamplert.C
cinelerra-5.0/plugins/reverb/reverb.C
cinelerra-5.0/plugins/reverseaudio/reverseaudio.C
cinelerra-5.0/plugins/reversevideo/reversevideo.C
cinelerra-5.0/plugins/rgb601/rgb601.C
cinelerra-5.0/plugins/rgbshift/rgbshift.C
cinelerra-5.0/plugins/rotate/rotate.C
cinelerra-5.0/plugins/scale/scale.C
cinelerra-5.0/plugins/sharpen/sharpen.C
cinelerra-5.0/plugins/shiftinterlace/shiftinterlace.C
cinelerra-5.0/plugins/slide/slide.C
cinelerra-5.0/plugins/spectrogram/spectrogram.C
cinelerra-5.0/plugins/swapchannels/swapchannels.C
cinelerra-5.0/plugins/swapframes/swapframes.C
cinelerra-5.0/plugins/synthesizer/synthesizer.C
cinelerra-5.0/plugins/threshold/threshold.C
cinelerra-5.0/plugins/threshold/thresholdwindow.C
cinelerra-5.0/plugins/timeavg/timeavg.C
cinelerra-5.0/plugins/timefront/timefront.C
cinelerra-5.0/plugins/timestretchrt/timestretchrt.C
cinelerra-5.0/plugins/titler/title.C
cinelerra-5.0/plugins/titler/titlewindow.C
cinelerra-5.0/plugins/translate/translate.C
cinelerra-5.0/plugins/unsharp/unsharp.C
cinelerra-5.0/plugins/videoscope/videoscope.C
cinelerra-5.0/plugins/vocoder/vocoder.C
cinelerra-5.0/plugins/wave/wave.C
cinelerra-5.0/plugins/whirl/whirl.C
cinelerra-5.0/plugins/wipe/wipe.C
cinelerra-5.0/plugins/yuv/yuv.C
cinelerra-5.0/plugins/yuvshift/yuvshift.C
cinelerra-5.0/plugins/zoomblur/zoomblur.C

index b57b7afdae2910422a58fc99e3c663cb8128111e..bb35f2612ebd91bbcdb034e135905481dd229b92 100644 (file)
@@ -257,6 +257,9 @@ void _1080to480Main::save_data(KeyFrame *keyframe)
        output.tag.set_title("1080TO480");
        output.tag.set_property("FIRST_FIELD", config.first_field);
        output.append_tag();
+       output.tag.set_title("/1080TO480");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 109fc90bd5119fd9f086ff14bb2bcd923594c44a..3c6387bc8dee8db378c8e9670bdfd5142a6e125d 100644 (file)
@@ -176,7 +176,7 @@ void _1080to540Main::reduce_field(VFrame *output, VFrame *input, int src_field,
        int h = input->get_h();
 
        if(h > output->get_h()) h = output->get_h();
-       if(w > output->get_w()) h = output->get_w();
+       if(w > output->get_w()) w = output->get_w();
 
 #define REDUCE_MACRO(type, temp, components) \
 for(int i = 0; i < OUT_ROWS; i++) \
@@ -267,6 +267,9 @@ void _1080to540Main::save_data(KeyFrame *keyframe)
        output.tag.set_title("1080TO540");
        output.tag.set_property("FIRST_FIELD", config.first_field);
        output.append_tag();
+       output.tag.set_title("/1080TO540");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 14377714fece0081ecfceeb338329a59a7447cbe..8ebd26cfb2d18e4c8845f1fbb6a88bc051f64776 100644 (file)
@@ -369,6 +369,9 @@ void _720to480Main::save_data(KeyFrame *keyframe)
        output.tag.set_property("FIRST_FIELD", config.first_field);
        output.tag.set_property("DIRECTION", config.direction);
        output.append_tag();
+       output.tag.set_title("/720TO480");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index c20c88bc3eca05adf3f14da02adacb1e237138c7..b80b102c003902dfcdfd1eafe348f14fbbd51716 100644 (file)
@@ -1146,6 +1146,8 @@ void AudioScope::save_data(KeyFrame *keyframe)
        output.tag.set_property("MODE", (int)config.mode);
        output.tag.set_property("TRIGGER_LEVEL", (float)config.trigger_level);
        output.append_tag();
+       output.tag.set_title("/AUDIOSCOPE");
+       output.append_tag();
        output.append_newline();
        output.terminate_string();
 }
index a46f148156467b40ff2bd6b0dfe482f401b6e797..c221902cb72ac28f7bae3bbf5295c166f5e58dda 100644 (file)
@@ -196,6 +196,9 @@ void BandSlideMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("BANDS", bands);
        output.tag.set_property("DIRECTION", direction);
        output.append_tag();
+       output.tag.set_title("/BANDSLIDE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 62823ca967e255b3fd347a06e5306ee09d8f1c15..5a9257c54943e01ae9af0041ae32faf332d389a7 100644 (file)
@@ -24,7 +24,7 @@
 
 class BandSlideMain;
 class BandSlideWindow;
-
+class BandSlideConfig;
 
 #include "overlayframe.inc"
 #include "pluginvclient.h"
@@ -84,16 +84,18 @@ public:
 };
 
 
+class BandSlideConfig
+{
+public:
+};
 
 class BandSlideMain : public PluginVClient
 {
 public:
        BandSlideMain(PluginServer *server);
        ~BandSlideMain();
+       PLUGIN_CLASS_MEMBERS(BandSlideConfig);
 
-       int load_configuration();
-       const char* plugin_title();
-       PluginClientWindow* new_window();
 // required for all realtime plugins
        int process_realtime(VFrame *incoming, VFrame *outgoing);
        void save_data(KeyFrame *keyframe);
index f3551d30b4eeae418a1eda2bb66c8183bbb40684..670285831d145229a2f446e1ae4f42e74fc89e40 100644 (file)
@@ -193,6 +193,9 @@ void BandWipeMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("BANDS", bands);
        output.tag.set_property("DIRECTION", direction);
        output.append_tag();
+       output.tag.set_title("/BANDWIPE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 12045625ba6834eb360c1af921c46ba01f33a22f..7ebbaf869d89491c81600fe1a50f4e421e82a510 100644 (file)
@@ -24,6 +24,7 @@
 
 class BandWipeMain;
 class BandWipeWindow;
+class BandWipeConfig;
 
 
 #include "overlayframe.inc"
@@ -85,6 +86,11 @@ public:
 
 
 
+class BandWipeConfig
+{
+public:
+};
+
 
 class BandWipeMain : public PluginVClient
 {
@@ -92,10 +98,8 @@ public:
        BandWipeMain(PluginServer *server);
        ~BandWipeMain();
 
-// required for all realtime plugins
-       int load_configuration();
-       const char* plugin_title();
-       PluginClientWindow* new_window();
+       PLUGIN_CLASS_MEMBERS(BandWipeConfig);
+
        int process_realtime(VFrame *incoming, VFrame *outgoing);
        void save_data(KeyFrame *keyframe);
        void read_data(KeyFrame *keyframe);
index e4b86f5c8f09431cfd5e2d017fce400f3dbb6dc3..09b35845749052b2f85a8a829a306397d9e74463 100644 (file)
@@ -320,6 +320,9 @@ void BlurMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("A", config.a);
        output.tag.set_property("A_KEY", config.a_key);
        output.append_tag();
+       output.tag.set_title("/BLUR");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 96622f88adb515b6ac16ee48434566ac24f1d0fa..8acdd46b7067a3aae08bc97dfb55b83dfadc2040 100644 (file)
@@ -286,6 +286,9 @@ void BrightnessMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("CONTRAST",  config.contrast);
        output.tag.set_property("LUMA",  config.luma);
        output.append_tag();
+       output.tag.set_title("/BRIGHTNESS");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 9ebeac20b5a316fa106db97711837b528e28f28d..1d9586ca9fff2aa0acd068b606bcd2700b77c83c 100644 (file)
@@ -255,7 +255,7 @@ int CDRipMain::get_toc()
                }
        }
 
-//printf("CDRipMain::get_toc " _LD " " _LD "\n", startlba, endlba);
+//printf("CDRipMain::get_toc %jd %jd\n", startlba, endlba);
        close_drive();
        return result;
 }
@@ -315,7 +315,7 @@ int CDRipMain::stop_loop()
 int CDRipMain::process_loop(Samples **plugin_buffer, int64_t &write_length)
 {
        int result = 0;
-printf("CDRipMain::process_loop 1\n");
+//printf("CDRipMain::process_loop 1\n");
 
 // render it
        if(arg.addr.lba < endlba && !endofselection)
@@ -326,7 +326,7 @@ printf("CDRipMain::process_loop 1\n");
                        fragment_length *= NFRAMES * FRAMESIZE;
                        endofselection = 1;
                }
-printf("CDRipMain::process_loop 2 %d " _LD "\n", arg.addr.lba, endlba);
+//printf("CDRipMain::process_loop 2 %d %jd\n", arg.addr.lba, endlba);
 
                for(i = 0; i < fragment_length; 
                        i += NFRAMES * FRAMESIZE,
@@ -343,7 +343,7 @@ printf("CDRipMain::process_loop 2 %d " _LD "\n", arg.addr.lba, endlba);
                                if(attempts == 2 && !previewing) printf("Can't read CD audio.\n");
                        }
                }
-printf("CDRipMain::process_loop 3\n");
+//printf("CDRipMain::process_loop 3\n");
 
                if(arg.addr.lba > startlba)
                {
@@ -362,22 +362,22 @@ printf("CDRipMain::process_loop 3\n");
 
                        write_length = fragment_samples;
                }
-printf("CDRipMain::process_loop 5 %d\n", interactive);
+//printf("CDRipMain::process_loop 5 %d\n", interactive);
 
                currentlength++;
                if(interactive)
                {
                        if(!result) result = progress->update(currentlength);
                }
-printf("CDRipMain::process_loop 6\n");
+//printf("CDRipMain::process_loop 6\n");
        }
        else
        {
-printf("CDRipMain::process_loop 7\n");
+//printf("CDRipMain::process_loop 7\n");
                endofselection = 1;
                write_length = 0;
        }
 
-printf("CDRipMain::process_loop 8 %d %d\n", endofselection, result);
+//printf("CDRipMain::process_loop 8 %d %d\n", endofselection, result);
        return endofselection || result;
 }
index ba3a565b50a45c052de442cc2149ef1190fee0e6..adc1528c839ddabf54a10235a57d199f758c1520 100644 (file)
@@ -591,6 +591,9 @@ void ChromaKey::save_data(KeyFrame *keyframe)
        output.tag.set_property("SLOPE", config.slope);
        output.tag.set_property("USE_VALUE", config.use_value);
        output.append_tag();
+       output.tag.set_title("/CHROMAKEY");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 5380f90688e0bd25214fbbfbd90072411dd27389..3541143cd180204f883e03aac90a68027c3f5289 100644 (file)
@@ -926,94 +926,93 @@ int ChromaKeyHSV::is_realtime() { return 1; }
 LOAD_CONFIGURATION_MACRO(ChromaKeyHSV, ChromaKeyConfig)
 
 
-void
-ChromaKeyHSV::save_data (KeyFrame * keyframe)
+void ChromaKeyHSV::save_data(KeyFrame * keyframe)
 {
-  FileXML output;
-  output.set_shared_output(keyframe->get_data(), MESSAGESIZE);
-  output.tag.set_title ("CHROMAKEY_HSV");
-  output.tag.set_property ("RED", config.red);
-  output.tag.set_property ("GREEN", config.green);
-  output.tag.set_property ("BLUE", config.blue);
-  output.tag.set_property ("MIN_BRIGHTNESS", config.min_brightness);
-  output.tag.set_property ("MAX_BRIGHTNESS", config.max_brightness);
-  output.tag.set_property ("SATURATION", config.saturation);
-  output.tag.set_property ("MIN_SATURATION", config.min_saturation);
-  output.tag.set_property ("TOLERANCE", config.tolerance);
-  output.tag.set_property ("IN_SLOPE", config.in_slope);
-  output.tag.set_property ("OUT_SLOPE", config.out_slope);
-  output.tag.set_property ("ALPHA_OFFSET", config.alpha_offset);
-  output.tag.set_property ("SPILL_THRESHOLD", config.spill_threshold);
-  output.tag.set_property ("SPILL_AMOUNT", config.spill_amount);
-  output.tag.set_property ("SHOW_MASK", config.show_mask);
-  output.append_tag ();
-  output.terminate_string ();
+       FileXML output;
+       output.set_shared_output(keyframe->get_data(), MESSAGESIZE);
+       output.tag.set_title("CHROMAKEY_HSV");
+       output.tag.set_property("RED", config.red);
+       output.tag.set_property("GREEN", config.green);
+       output.tag.set_property("BLUE", config.blue);
+       output.tag.set_property("MIN_BRIGHTNESS", config.min_brightness);
+       output.tag.set_property("MAX_BRIGHTNESS", config.max_brightness);
+       output.tag.set_property("SATURATION", config.saturation);
+       output.tag.set_property("MIN_SATURATION", config.min_saturation);
+       output.tag.set_property("TOLERANCE", config.tolerance);
+       output.tag.set_property("IN_SLOPE", config.in_slope);
+       output.tag.set_property("OUT_SLOPE", config.out_slope);
+       output.tag.set_property("ALPHA_OFFSET", config.alpha_offset);
+       output.tag.set_property("SPILL_THRESHOLD", config.spill_threshold);
+       output.tag.set_property("SPILL_AMOUNT", config.spill_amount);
+       output.tag.set_property("SHOW_MASK", config.show_mask);
+       output.append_tag();
+       output.tag.set_title("/CHROMAKEY_HSV");
+       output.append_tag();
+       output.append_newline();
+       output.terminate_string();
 }
 
-void
-ChromaKeyHSV::read_data (KeyFrame * keyframe)
+void ChromaKeyHSV::read_data(KeyFrame * keyframe)
 {
-  FileXML input;
-
-  input.set_shared_input (keyframe->get_data(), strlen (keyframe->get_data()));
-
-  while (!input.read_tag ())
-    {
-      if (input.tag.title_is ("CHROMAKEY_HSV"))
-       {
-         config.red = input.tag.get_property ("RED", config.red);
-         config.green = input.tag.get_property ("GREEN", config.green);
-         config.blue = input.tag.get_property ("BLUE", config.blue);
-         config.min_brightness =
-           input.tag.get_property ("MIN_BRIGHTNESS", config.min_brightness);
-         config.max_brightness =
-           input.tag.get_property ("MAX_BRIGHTNESS", config.max_brightness);
-         config.saturation =
-           input.tag.get_property ("SATURATION", config.saturation);
-         config.min_saturation =
-           input.tag.get_property ("MIN_SATURATION", config.min_saturation);
-         config.tolerance =
-           input.tag.get_property ("TOLERANCE", config.tolerance);
-         config.in_slope =
-           input.tag.get_property ("IN_SLOPE", config.in_slope);
-         config.out_slope =
-           input.tag.get_property ("OUT_SLOPE", config.out_slope);
-         config.alpha_offset =
-           input.tag.get_property ("ALPHA_OFFSET", config.alpha_offset);
-         config.spill_threshold =
-           input.tag.get_property ("SPILL_THRESHOLD",
-                                   config.spill_threshold);
-         config.spill_amount =
-           input.tag.get_property ("SPILL_AMOUNT", config.spill_amount);
-         config.show_mask =
-           input.tag.get_property ("SHOW_MASK", config.show_mask);
+       FileXML input;
+
+       input.set_shared_input(keyframe->get_data(), strlen(keyframe->get_data()));
+
+       while( !input.read_tag() ) {
+               if( input.tag.title_is("CHROMAKEY_HSV") ) {
+                       config.red = input.tag.get_property("RED", config.red);
+                       config.green = input.tag.get_property("GREEN", config.green);
+                       config.blue = input.tag.get_property("BLUE", config.blue);
+                       config.min_brightness =
+                               input.tag.get_property("MIN_BRIGHTNESS", config.min_brightness);
+                       config.max_brightness =
+                               input.tag.get_property("MAX_BRIGHTNESS", config.max_brightness);
+                       config.saturation =
+                               input.tag.get_property("SATURATION", config.saturation);
+                       config.min_saturation =
+                               input.tag.get_property("MIN_SATURATION", config.min_saturation);
+                       config.tolerance =
+                               input.tag.get_property("TOLERANCE", config.tolerance);
+                       config.in_slope =
+                               input.tag.get_property("IN_SLOPE", config.in_slope);
+                       config.out_slope =
+                               input.tag.get_property("OUT_SLOPE", config.out_slope);
+                       config.alpha_offset =
+                               input.tag.get_property("ALPHA_OFFSET", config.alpha_offset);
+                       config.spill_threshold =
+                               input.tag.get_property("SPILL_THRESHOLD",
+                                                       config.spill_threshold);
+                       config.spill_amount =
+                               input.tag.get_property("SPILL_AMOUNT", config.spill_amount);
+                       config.show_mask =
+                               input.tag.get_property("SHOW_MASK", config.show_mask);
+               }
        }
-    }
 }
 
 
 NEW_WINDOW_MACRO(ChromaKeyHSV, ChromaKeyWindow)
 
-void ChromaKeyHSV::update_gui ()
+void ChromaKeyHSV::update_gui()
 {
-  if (thread)
-    {
-      load_configuration ();
-      thread->window->lock_window ();
-      ((ChromaKeyWindow*)thread->window)->min_brightness->update (config.min_brightness);
-      ((ChromaKeyWindow*)thread->window)->max_brightness->update (config.max_brightness);
-      ((ChromaKeyWindow*)thread->window)->saturation->update (config.saturation);
-      ((ChromaKeyWindow*)thread->window)->min_saturation->update (config.min_saturation);
-      ((ChromaKeyWindow*)thread->window)->tolerance->update (config.tolerance);
-      ((ChromaKeyWindow*)thread->window)->in_slope->update (config.in_slope);
-      ((ChromaKeyWindow*)thread->window)->out_slope->update (config.out_slope);
-      ((ChromaKeyWindow*)thread->window)->alpha_offset->update (config.alpha_offset);
-      ((ChromaKeyWindow*)thread->window)->spill_threshold->update (config.spill_threshold);
-      ((ChromaKeyWindow*)thread->window)->spill_amount->update (config.spill_amount);
-      ((ChromaKeyWindow*)thread->window)->show_mask->update (config.show_mask);
-      ((ChromaKeyWindow*)thread->window)->update_sample ();
-      thread->window->unlock_window ();
-    }
+       if( thread ) {
+               load_configuration();
+               ChromaKeyWindow *window = (ChromaKeyWindow*)thread->window;
+               window->lock_window();
+               window->min_brightness->update(config.min_brightness);
+               window->max_brightness->update(config.max_brightness);
+               window->saturation->update(config.saturation);
+               window->min_saturation->update(config.min_saturation);
+               window->tolerance->update(config.tolerance);
+               window->in_slope->update(config.in_slope);
+               window->out_slope->update(config.out_slope);
+               window->alpha_offset->update(config.alpha_offset);
+               window->spill_threshold->update(config.spill_threshold);
+               window->spill_amount->update(config.spill_amount);
+               window->show_mask->update(config.show_mask);
+               window->update_sample();
+               window->unlock_window();
+       }
 }
 
 
index 07592f7839294b1ed25d8625fdc666f48ad3aa36..09908686a428fb3010c074535065cd60245ee2c2 100644 (file)
@@ -550,6 +550,9 @@ void Color3WayMain::save_data(KeyFrame *keyframe)
        }
        
        output.append_tag();
+       output.tag.set_title("/COLOR3WAY");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 4bddc7ac0a752cd0207f3d99dffe56fed362533e..13d5e629ace83b514f6b05e934f97ca9331d2ed5 100644 (file)
@@ -544,6 +544,9 @@ void ColorBalanceMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("PRESERVELUMINOSITY",  config.preserve);
        output.tag.set_property("LOCKPARAMS",  config.lock_params);
        output.append_tag();
+       output.tag.set_title("/COLORBALANCE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index ee1cf50897a795845ca16f5ae2cf85a0fa7dfd3a..c2b3dc90b5cc059cbbdac6a2ce5b96f418b09cc0 100644 (file)
@@ -166,6 +166,8 @@ void CompressorEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("SMOOTHING_ONLY", config.smoothing_only);
        output.tag.set_property("INPUT", config.input);
        output.append_tag();
+       output.tag.set_title("/COMPRESSOR");
+       output.append_tag();
        output.append_newline();
 
 
@@ -175,6 +177,8 @@ void CompressorEffect::save_data(KeyFrame *keyframe)
                output.tag.set_property("X", config.levels.values[i].x);
                output.tag.set_property("Y", config.levels.values[i].y);
 
+               output.append_tag();
+               output.tag.set_title("/LEVEL");
                output.append_tag();
                output.append_newline();
        }
index 4d8565fe1b684db1f1b0bf10939f59ec0e3ebdcb..0a08373f595fce7ce33ac66489bf8ae05907df6b 100644 (file)
@@ -772,6 +772,9 @@ void Decimate::save_data(KeyFrame *keyframe)
 //     output.tag.set_property("AVERAGED_FRAMES", config.averaged_frames);
 //     output.tag.set_property("LEAST_DIFFERENCE", config.least_difference);
        output.append_tag();
+       output.tag.set_title("/DECIMATE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 208c2b6f2145bbe326bdbc2c5bd1c4412117b15b..74575854e74a8fda2bff1504ad0b80a67ad719f5 100644 (file)
@@ -559,6 +559,9 @@ void DeInterlaceMain::save_data(KeyFrame *keyframe)
 //     output.tag.set_property("ADAPTIVE", config.adaptive);
 //     output.tag.set_property("THRESHOLD", config.threshold);
        output.append_tag();
+       output.tag.set_title("/DEINTERLACE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 6c95582cbebb852e9946b2f456401faf7dc4bb28..0c0c066f5e9d07be661029270845fd4c0ff9f950 100644 (file)
@@ -113,6 +113,8 @@ void DelayAudio::save_data(KeyFrame *keyframe)
        output.tag.set_title("DELAYAUDIO");
        output.tag.set_property("LENGTH", (double)config.length);
        output.append_tag();
+       output.tag.set_title("/DELAYAUDIO");
+       output.append_tag();
        output.append_newline();
        output.terminate_string();
 }
index 9489a14076ea81eec25774f58a0bb206122e13e3..7bdcd6d3075c107112665046b8ee586e152b66f7 100644 (file)
@@ -264,6 +264,8 @@ void DelayVideo::save_data(KeyFrame *keyframe)
        output.tag.set_title("DELAYVIDEO");
        output.tag.set_property("LENGTH", (double)config.length);
        output.append_tag();
+       output.tag.set_title("/DELAYVIDEO");
+       output.append_tag();
        output.append_newline();
        output.terminate_string();
 }
index 970a4cd925302d573c3408166cb5dac51e9585b1..3110053b94d6f1cd521eda23093f8a940a2e950c 100644 (file)
@@ -159,8 +159,9 @@ void DenoiseEffect::save_data(KeyFrame *keyframe)
        output.tag.set_title("DENOISE");
        output.tag.set_property("LEVEL", config.level);
        output.append_tag();
+       output.tag.set_title("/DENOISE");
+       output.append_tag();
        output.append_newline();
-
        output.terminate_string();
 }
 
index 20e30e6cbc824db1db1593fb42134fd3f9f9973f..9aba4ea8fad5afe406fefc78b7987aac25ec68a2 100644 (file)
@@ -344,8 +344,9 @@ void DenoiseFFTEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("SAMPLES", config.samples);
        output.tag.set_property("LEVEL", config.level);
        output.append_tag();
+       output.tag.set_title("/DENOISEFFT");
+       output.append_tag();
        output.append_newline();
-
        output.terminate_string();
 }
 
index 1ac4e4af752300096074713b1a0ebf33aa2e6125..37a93a49d0c58067761c351ba37c49b056a39124 100644 (file)
@@ -482,6 +482,9 @@ void DenoiseMJPEG::save_data(KeyFrame *keyframe)
        output.tag.set_property("MODE", config.mode);
        output.tag.set_property("DELAY", config.delay);
        output.append_tag();
+       output.tag.set_title("/DENOISE_VIDEO2");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index bfd8dea9b3f23d92e1682b89de263d95a8085bc6..70a991ebf1ff114774e4f20e95e13bd8880bf9ce 100644 (file)
@@ -43,7 +43,7 @@ SelTempAvgConfig::SelTempAvgConfig()
        paranoid = 0;
        nosubtract = 0;
        offset_restartmarker_keyframe = 0;
-       offset_fixed_value = -1000;
+       offset_fixed_value = -15;
        gain = 1.00;
 
        avg_threshold_RY = 0; avg_threshold_GU = 0; avg_threshold_BV = 0;
@@ -817,6 +817,9 @@ void SelTempAvgMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("MASK_BV", config.mask_BV);
 
        output.append_tag();
+       output.tag.set_title("/SELECTIVE_TEMPORAL_AVERAGE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index a754cdff7897d49c83bc707aef5bfdbb74ff4c5b..a33488f823fa770a801ed7108ec97825f20772d5 100644 (file)
@@ -173,7 +173,7 @@ int DenoiseVideoToggle::handle_event()
 {
        *output = get_value();
        plugin->send_configure_change();
-       return 0;
+       return 1;
 }
 
 
@@ -451,6 +451,9 @@ void DenoiseVideo::save_data(KeyFrame *keyframe)
        output.tag.set_property("DO_A", config.do_a);
        output.tag.set_property("COUNT_CHANGED", config.count_changed);
        output.append_tag();
+       output.tag.set_title("/DENOISE_VIDEO");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 3873c66c9f5cf12af10b74b9d78d4933a28e3f5a..5e9f4f80646da35bbd22d4b9476123ae32b831e1 100644 (file)
@@ -100,6 +100,8 @@ void Despike::save_data(KeyFrame *keyframe)
        output.tag.set_property("LEVEL", config.level);
        output.tag.set_property("SLOPE", config.slope);
        output.append_tag();
+       output.tag.set_title("/DESPIKE");
+       output.append_tag();
        output.append_newline();
        output.terminate_string();
 }
index 255b7b9c9d59f0f8d462fdf94329c079350a077f..8cf242622927e393265705f54f3a3ff0ac130bec 100644 (file)
@@ -340,6 +340,9 @@ void DiffKey::save_data(KeyFrame *keyframe)
        output.tag.set_property("SLOPE", config.slope);
        output.tag.set_property("DO_VALUE", config.do_value);
        output.append_tag();
+       output.tag.set_title("/DIFFKEY");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 212dc33a192d3575a7984ffb054882ece8839a6c..9a4a92072d32da041f9ddddaceb3c3145fa0a126 100644 (file)
@@ -453,6 +453,9 @@ void DownSampleMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("B", config.b);
        output.tag.set_property("A", config.a);
        output.append_tag();
+       output.tag.set_title("/DOWNSAMPLE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index b3def892363f4c723fae5143b01b8c55b8a4af9a..f65f9dc5d5b0ebefd9f9a926df574fffd700b023 100644 (file)
@@ -325,6 +325,8 @@ void Echo::save_data(KeyFrame *keyframe)
        output.tag.set_property("ATTEN", config.atten);
        output.tag.set_property("OFFSET", config.offset);
        output.append_tag();
+       output.tag.set_title("/ECHO");
+       output.append_tag();
        output.append_newline();
        output.terminate_string();
 }
index ce476fca9bee7fa2819a9964ef0f2f0aa2eb60ce..b227e6b706a10cb14cf04a507028fc9c5cd776ad 100644 (file)
@@ -1227,6 +1227,8 @@ void EchoCancel::save_data(KeyFrame *keyframe)
        output.tag.set_property("W", w);
        output.tag.set_property("H", h);
        output.append_tag();
+       output.tag.set_title("/ECHOCANCEL");
+       output.append_tag();
        output.append_newline();
        output.terminate_string();
 }
index 89f757cd0c00b4f270e68079d4841fc31242f144..98120bf3b1a3d0c4cadb32fe222ee4a36a870535 100644 (file)
@@ -77,7 +77,7 @@ Edge::~Edge()
        if(temp) delete temp;
 }
 
-const char* Edge::plugin_title() { return N_("Edge"); }
+const char* Edge::plugin_title() { return _("Edge"); }
 int Edge::is_realtime() { return 1; }
 
 NEW_WINDOW_MACRO(Edge, EdgeWindow);
index 0780c61b474d27cab37e239396aab198c50d9316..0cedcad540cbec30e7b9a2e654915d55c8231462 100644 (file)
@@ -361,6 +361,9 @@ void FieldFrame::save_data(KeyFrame *keyframe)
        output.tag.set_property("DOMINANCE", config.field_dominance);
        output.tag.set_property("FIRST_FRAME", config.first_frame);
        output.append_tag();
+       output.tag.set_title("/FIELD_FRAME");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 2f5d1362dbfa8315d30c40017d7a9c53567fd3ce..64861852c0a716b15af954ab3809bdc761878b13 100644 (file)
 #include "surfscan.h"
 #include "transportque.h"
 
+// Needed with OpenCV version 2.4.8
+#include "opencv2/legacy/legacy.hpp"
+#include "opencv2/legacy/compat.hpp"
+
 #include "opencv2/video/tracking.hpp"
 #include "opencv2/video/background_segm.hpp"
 
@@ -287,6 +291,9 @@ void FindObjectMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("SMIN", config.smin);
        output.tag.set_property("BLEND", config.blend);
        output.append_tag();
+       output.tag.set_title("/FINDOBJECT");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
@@ -1087,7 +1094,7 @@ void FindObjectMain::process_blob()
        delete [] scene_rows;
 
     blob_pTracker->Process(scene_image, pMask);
-printf("FindObjectMain::process_blob %d %ld %d\n", __LINE__, get_source_position(), blob_pTracker->GetBlobNum());
+printf("FindObjectMain::process_blob %d %jd %d\n", __LINE__, get_source_position(), blob_pTracker->GetBlobNum());
 
 
 #if 0
@@ -1181,10 +1188,6 @@ int FindObjectMain::process_buffer(VFrame **frame,
 // TODO: use oblique corners & affine transform
        object_w = (int)(config.global_block_w * w / 100);
        object_h = (int)(config.global_block_h * h / 100);
-       object_x1;
-       object_y1;
-       object_x2;
-       object_y2;
 
        object_x1 = (int)(config.block_x * w / 100 - object_w / 2);
        object_y1 = (int)(config.block_y * h / 100 - object_h / 2);
@@ -1200,10 +1203,6 @@ int FindObjectMain::process_buffer(VFrame **frame,
 
        scene_w = (int)(config.global_range_w * w / 100);
        scene_h = (int)(config.global_range_h * h / 100);
-       scene_x1;
-       scene_y1;
-       scene_x2;
-       scene_y2;
        scene_x1 = (int)(config.block_x * w / 100 - scene_w / 2);
        scene_y1 = (int)(config.block_y * h / 100 - scene_h / 2);
        scene_x2 = scene_x1 + scene_w;
@@ -1276,9 +1275,11 @@ int FindObjectMain::process_buffer(VFrame **frame,
 
                switch(config.algorithm)
                {
+#if HAVE_OPENCV_SURF
                        case ALGORITHM_SURF:
                                process_surf();
                                break;
+#endif
                        
                        case ALGORITHM_CAMSHIFT:
                                process_camshift();
index 4b30f8a60faa2adc9404458736af47eb3c1c2c66..f5e5decd85e05d34812a006be643b988284c12bf 100644 (file)
@@ -29,6 +29,8 @@
 #ifndef FINDOBJECT_H
 #define FINDOBJECT_H
 
+//#include "config.h"
+
 #include <math.h>
 #include <stdint.h>
 #include <string.h>
@@ -82,7 +84,9 @@ using namespace cv;
 
 
 #define NO_ALGORITHM 0
+#if HAVE_OPENCV_SURF
 #define ALGORITHM_SURF 1
+#endif
 #define ALGORITHM_CAMSHIFT 2
 #define ALGORITHM_BLOB 3
 
index 37dbae25b92962d6e39c1f1f899d4717b22c811f..7f9e440c4e34bdcd078ef4059404169b52487293 100644 (file)
@@ -484,7 +484,7 @@ int FindObjectAlgorithm::handle_event()
 void FindObjectAlgorithm::create_objects()
 {
        add_item(new BC_MenuItem(to_text(NO_ALGORITHM)));
-#ifdef HAVE_OPENCV_SURF
+#if HAVE_OPENCV_SURF
        add_item(new BC_MenuItem(to_text(ALGORITHM_SURF)));
 #endif
        add_item(new BC_MenuItem(to_text(ALGORITHM_CAMSHIFT)));
@@ -494,7 +494,7 @@ void FindObjectAlgorithm::create_objects()
 int FindObjectAlgorithm::from_text(char *text)
 {
        if(!strcmp(text, _("Don't Calculate"))) return NO_ALGORITHM;
-#ifdef HAVE_OPENCV_SURF
+#if HAVE_OPENCV_SURF
        if(!strcmp(text, _("SURF"))) return ALGORITHM_SURF;
 #endif
        if(!strcmp(text, _("CAMSHIFT"))) return ALGORITHM_CAMSHIFT;
@@ -508,7 +508,7 @@ char* FindObjectAlgorithm::to_text(int mode)
        {
                case NO_ALGORITHM:
                        return _("Don't Calculate");
-#ifdef HAVE_OPENCV_SURF
+#if HAVE_OPENCV_SURF
                case ALGORITHM_SURF:
                        return _("SURF");
 #endif
@@ -524,7 +524,7 @@ int FindObjectAlgorithm::calculate_w(FindObjectWindow *gui)
 {
        int result = 0;
        result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(NO_ALGORITHM)));
-#ifdef HAVE_OPENCV_SURF
+#if HAVE_OPENCV_SURF
        result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(ALGORITHM_SURF)));
 #endif
        result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(ALGORITHM_CAMSHIFT)));
index 8fa305819b86f6ea3a21b042a5af27227fcfe8b2..6c27e8ad398d069531c65ed74377a00985b84328 100644 (file)
@@ -232,13 +232,20 @@ void FlipMain::save_data(KeyFrame *keyframe)
        {
                output.tag.set_title("VERTICAL");
                output.append_tag();
+               output.tag.set_title("/VERTICAL");
+               output.append_tag();
        }
 
        if(config.flip_horizontal)
        {       
                output.tag.set_title("HORIZONTAL");
                output.append_tag();
+               output.tag.set_title("/HORIZONTAL");
+               output.append_tag();
        }
+       output.tag.set_title("/FLIP");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 // data is now in *text
 }
index fb98f10f82e3eb5a54b1abf653990055542bb79f..fabe7e0b48432ae36eefc7688c511968caf0c62d 100644 (file)
@@ -589,6 +589,9 @@ void FrameField::save_data(KeyFrame *keyframe)
        output.tag.set_title("FRAME_FIELD");
        output.tag.set_property("DOMINANCE", config.field_dominance);
        output.append_tag();
+       output.tag.set_title("/FRAME_FIELD");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 291497db5b57416d0dbe655c53fb23acee6035ce..27e4a36559a72fc9dbf86edc570bea8922ee8af8 100644 (file)
@@ -502,8 +502,9 @@ void FreeverbEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("WIDTH", config.width);
        output.tag.set_property("MODE", config.mode);
        output.append_tag();
+       output.tag.set_title("/FREEVERB");
+       output.append_tag();
        output.append_newline();
-
        output.terminate_string();
 }
 
index 77893908af9c8381128f2d1bc16bf334f3ddfbca..08d7d08c6a77a06f6c73e9c3b21c8c7ce01ab946 100644 (file)
@@ -202,12 +202,19 @@ void FreezeFrameMain::save_data(KeyFrame *keyframe)
        {
                output.tag.set_title("ENABLED");
                output.append_tag();
+               output.tag.set_title("/ENABLED");
+               output.append_tag();
        }
        if(config.line_double)
        {
                output.tag.set_title("LINE_DOUBLE");
                output.append_tag();
+               output.tag.set_title("/LINE_DOUBLE");
+               output.append_tag();
        }
+       output.tag.set_title("/FREEZEFRAME");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 // data is now in *text
 }
@@ -263,7 +270,7 @@ int FreezeFrameMain::process_buffer(VFrame *frame,
                                frame->get_h(),
                                frame->get_color_model(),
                                -1);
-//printf("FreezeFrameMain::process_buffer 1 " _LD "\n", first_frame_position);
+//printf("FreezeFrameMain::process_buffer 1 %jd\n", first_frame_position);
                read_frame(first_frame, 
                                0, 
                                get_direction() == PLAY_REVERSE ? first_frame_position + 1 : first_frame_position,
index 0eda4bdd72f3210d51ca8957208a8e268cde2341..a83dc029231b446defd54d331401fcb9559c8da8 100644 (file)
@@ -118,6 +118,8 @@ void Gain::save_data(KeyFrame *keyframe)
        output.tag.set_title("GAIN");
        output.tag.set_property("LEVEL", config.level);
        output.append_tag();
+       output.tag.set_title("/GAIN");
+       output.append_tag();
        output.append_newline();
        output.terminate_string();
 }
index 4c66a8ff26c23b1977fe05a258ba3e1ce6258eaa..23026f07a5dbf5a615d13af4d0f2ba0caf8da725 100644 (file)
@@ -533,6 +533,9 @@ void GammaMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("AUTOMATIC",  config.automatic);
        output.tag.set_property("PLOT",  config.plot);
        output.append_tag();
+       output.tag.set_title("/GAMMA");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 247458eb420bcf66e440889394611e48b0a73988..d4142ad9a80b4756a37bfb8cce6aed4b15cdb663 100644 (file)
@@ -772,6 +772,9 @@ void GradientMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("CENTER_X", config.center_x);
        output.tag.set_property("CENTER_Y", config.center_y);
        output.append_tag();
+       output.tag.set_title("/GRADIENT");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 36d94ed39cb56285a8aa11de2585112004297dee..456b12c6837b07aa84e14e1ddbdc92c0eb61e075 100644 (file)
@@ -1108,6 +1108,8 @@ void GraphicEQ::save_data(KeyFrame *keyframe)
        output.tag.set_property("W", w);
        output.tag.set_property("H", h);
        output.append_tag();
+       output.tag.set_title("/GRAPHICEQ");
+       output.append_tag();
        output.append_newline();
 
        for(int i = 0; i < config.points.total; i++)
@@ -1116,8 +1118,10 @@ void GraphicEQ::save_data(KeyFrame *keyframe)
                output.tag.set_property("X", config.points.values[i]->freq);
                output.tag.set_property("Y", config.points.values[i]->value);
                output.append_tag();
+               output.tag.set_title("/POINT");
+               output.append_tag();
+               output.append_newline();
        }
-       if(config.points.total) output.append_newline();
        
        output.terminate_string();
 }
index fae3b8b8859e5c987e655b5cddcfac30ad934cd3..b248785724062d84120cda952d7833fe1d0d2b24 100644 (file)
@@ -207,14 +207,10 @@ void HistogramMain::save_data(KeyFrame *keyframe)
 //printf("HistogramMain::save_data %d %f %d\n", config.input_min[i], config.input_mid[i], config.input_max[i]);
        }
 
+       output.append_tag();
+       output.tag.set_title("/HISTOGRAM");
        output.append_tag();
        output.append_newline();
-
-
-
-
-
-
        output.terminate_string();
 }
 
index be5fadefb5024578cc699e48e613aa4ca1542d1a..d8b90ea69f5db3c1f18d66bb963b595fbada0550 100644 (file)
@@ -589,6 +589,9 @@ void HueEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("SATURATION", config.saturation);
        output.tag.set_property("VALUE", config.value);
        output.append_tag();
+       output.tag.set_title("/HUESATURATION");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 void HueEffect::read_data(KeyFrame *keyframe)
index 0c63ad0d9c9f9c432135bb779ec02ae45b92f459..7cede4ab986766b1edbec7bd02425f3d3e76aaf7 100644 (file)
@@ -203,6 +203,9 @@ void InterpolatePixelsMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("X", config.x);
        output.tag.set_property("Y", config.y);
        output.append_tag();
+       output.tag.set_title("/INTERPOLATEPIXELS");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 98ac413e336fec903b510ac6393ba564a9bea645..c995b43279d3e6be973d1feb780c683d6f65275b 100644 (file)
@@ -93,16 +93,8 @@ InterpolateAudioEffect::~InterpolateAudioEffect()
 
 
 
-const char* InterpolateAudioEffect::plugin_title()
-{
-       return _("Interpolate");
-}
-
-
-int InterpolateAudioEffect::is_realtime()
-{
-       return 1;
-}
+const char* InterpolateAudioEffect::plugin_title() { return _("Interpolate"); }
+int InterpolateAudioEffect::is_realtime() { return 1; }
 
 
 
index a0313931ea03dd42f264ea53cda9b4cd135b2ec1..c70d6adb0d98cfe4b8b2ae423bf8d7e4b1365325 100644 (file)
@@ -842,13 +842,10 @@ int InterpolateVideo::process_buffer(VFrame *frame,
 
 
 
-int InterpolateVideo::is_realtime()
-{
-       return 1;
-}
 
 NEW_WINDOW_MACRO(InterpolateVideo, InterpolateVideoWindow)
 const char* InterpolateVideo::plugin_title() { return _("Interpolate Video"); }
+int InterpolateVideo::is_realtime() { return 1; }
 
 int InterpolateVideo::load_configuration()
 {
@@ -959,6 +956,9 @@ void InterpolateVideo::save_data(KeyFrame *keyframe)
        output.tag.set_property("SEARCH_RADIUS", config.search_radius);
        output.tag.set_property("MACROBLOCK_SIZE", config.macroblock_size);
        output.append_tag();
+       output.tag.set_title("/INTERPOLATEVIDEO");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 9429584569aa43e385d94237d37b9960624c7a49..c030bffa3348f456af7a9a5f07a2d5619cd4aa57 100644 (file)
@@ -29,23 +29,12 @@ class InvertAudioEffect : public PluginAClient
 {
 public:
        InvertAudioEffect(PluginServer *server)
-        : PluginAClient(server)
-       {
-       };
-       ~InvertAudioEffect()
-       {
-       };
+        : PluginAClient(server) {};
+       ~InvertAudioEffect() {};
 
-       const char* plugin_title()
-       {
-               return  _("Invert Audio");
-       };
-       int is_realtime()
-       {
-               return 1;
-       };
-       int process_realtime(int64_t size, Samples *input_ptr, Samples *output_ptr)
-       {
+       const char* plugin_title() { return  _("Invert Audio"); };
+       int is_realtime() { return 1; };
+       int process_realtime(int64_t size, Samples *input_ptr, Samples *output_ptr) {
                double *output_samples = output_ptr->get_data();
                double *input_samples = input_ptr->get_data();
                for(int i = 0; i < size; i++)
index f17000dae57b0fff9b97eb841a3eb21b5b88c440..d24b10f8925a00375ab61b73fc6f5691785e9279 100644 (file)
@@ -232,6 +232,9 @@ void InvertVideoEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("B", config.b);
        output.tag.set_property("A", config.a);
        output.append_tag();
+       output.tag.set_title("/INVERTVIDEO");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index c7c0911c017641dd7a5af18a6e6eb021e4a3bac7..c98646cb095671acbebe15f364a68aa5dd81a294 100644 (file)
@@ -156,6 +156,9 @@ void IrisSquareMain::save_data(KeyFrame *keyframe)
        output.tag.set_title("IRISSQUARE");
        output.tag.set_property("DIRECTION", direction);
        output.append_tag();
+       output.tag.set_title("/IRISSQUARE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 830a172110c19a148088a5a47ab3dcc6a6748068..f85c3a7ae5647c2b7888a6fb00e7b214ed4df8d9 100644 (file)
@@ -106,6 +106,9 @@ void IVTCMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("AUTO_THRESHOLD", config.auto_threshold);
        output.tag.set_property("PATTERN", config.pattern);
        output.append_tag();
+       output.tag.set_title("/IVTC");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 209884a797aba0a37cff6ecd5306723a3288d909..24916156ada4286bdd3863db26409fa607d72a96 100644 (file)
@@ -778,6 +778,9 @@ void LensMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("CENTER_Y", config.center_y);
        output.tag.set_property("DRAW_GUIDES", config.draw_guides);
        output.append_tag();
+       output.tag.set_title("/LENS");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 
 }
index 5c7e28c4e766bbbd46d64f67822c9bacff9eeb13..e08f1263864fab4d7d452978b832538b1cc74ce3 100644 (file)
@@ -225,8 +225,9 @@ void SoundLevelEffect::save_data(KeyFrame *keyframe)
        output.tag.set_title("SOUNDLEVEL");
        output.tag.set_property("DURATION", config.duration);
        output.append_tag();
+       output.tag.set_title("/SOUNDLEVEL");
+       output.append_tag();
        output.append_newline();
-
        output.terminate_string();
 }
 
index 53c90be5c40b4950dc3467ec7861b5940daab963..090f6c850ca51b20b75d985f3118c49fb96d71d4 100644 (file)
@@ -573,6 +573,9 @@ void LinearBlurMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("B", config.b);
        output.tag.set_property("A", config.a);
        output.append_tag();
+       output.tag.set_title("/LINEARBLUR");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 23b63d506fbb62ed4e0e8aa6a18ece3df508342b..c675acf5c9b4df21fc9832971e6bdbf80858a410 100644 (file)
@@ -598,6 +598,9 @@ void LiveVideo::save_data(KeyFrame *keyframe)
        output.tag.set_title("LIVEVIDEO");
        output.tag.set_property("CHANNEL", config.channel);
        output.append_tag();
+       output.tag.set_title("/LIVEVIDEO");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 517dcbd9341237136b363a7cfddaff4e21a87857..60c368ee20da61b8a053bd29c72a0d2750f46f1d 100644 (file)
@@ -308,6 +308,9 @@ void LoopAudio::save_data(KeyFrame *keyframe)
        output.tag.set_title("LOOPAUDIO");
        output.tag.set_property("SAMPLES", config.samples);
        output.append_tag();
+       output.tag.set_title("/LOOPAUDIO");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index c29189aebe5851487bbd3720f1cccb590e4412f3..fb5448d19abf2212500eca97bd21333a3e98fb52 100644 (file)
@@ -258,6 +258,9 @@ void LoopVideo::save_data(KeyFrame *keyframe)
        output.tag.set_title("LOOPVIDEO");
        output.tag.set_property("FRAMES", config.frames);
        output.append_tag();
+       output.tag.set_title("/LOOPVIDEO");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 5fac22c141b1df59b176b9a0f847489d8bf7ea91..66c0146a75bc81338da43c97102315b5cb51d659 100644 (file)
@@ -362,6 +362,9 @@ void MotionMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("HORIZONTAL_ONLY", config.horizontal_only);
        output.tag.set_property("VERTICAL_ONLY", config.vertical_only);
        output.append_tag();
+       output.tag.set_title("/MOTION");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 37f6baa00eef6d352e94e97fa91df849aa50709d..2303bfb3416d55c44ead188c5bdb687ebbef559b 100644 (file)
@@ -1649,7 +1649,7 @@ float RotateScan::scan_frame(VFrame *previous_frame,
                case MotionScan::LOAD:
                {
                        char string[BCTEXTLEN];
-                       sprintf(string, "%s" _LDv(06),
+                       sprintf(string, "%s%06jd",
                                 ROTATION_FILE, plugin->get_source_position());
                        FILE *input = fopen(string, "r");
                        if(input)
@@ -1821,7 +1821,7 @@ float RotateScan::scan_frame(VFrame *previous_frame,
        if(!skip && plugin->config.tracking_type == MotionScan::SAVE)
        {
                char string[BCTEXTLEN];
-               sprintf(string, "%s" _LDv(06),
+               sprintf(string, "%s%06jd",
                        ROTATION_FILE, plugin->get_source_position());
                FILE *output = fopen(string, "w");
                if(output)
index 39a6f73fdeb87c7e44f2edc70f07747dfa624640..8911fd0720d6cf059fb3f272fb36547ddba7e380 100644 (file)
@@ -358,6 +358,9 @@ void MotionMain2::save_data(KeyFrame *keyframe)
        output.tag.set_property("HORIZONTAL_ONLY", config.horizontal_only);
        output.tag.set_property("VERTICAL_ONLY", config.vertical_only);
        output.append_tag();
+       output.tag.set_title("/MOTION2");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
@@ -711,7 +714,7 @@ int MotionMain2::process_buffer(VFrame **frame,
        
 
 #ifdef DEBUG
-printf("MotionMain2::process_buffer 1 start_position=" _LD "\n", start_position);
+printf("MotionMain2::process_buffer 1 start_position=%jd\n", start_position);
 #endif
 
 
index a222808189e7fd3c30862a332ecdfc68d0ec1ffc..4f1661425207149a7be1fd11e9b34e9b6d059f37 100644 (file)
@@ -492,6 +492,9 @@ void MotionBlurMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("RADIUS", config.radius);
        output.tag.set_property("STEPS", config.steps);
        output.append_tag();
+       output.tag.set_title("/MOTIONBLUR");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 36ac15dfd7f4bfd26cc5202897b8dcabdd5f546a..62450439e8b9638be6c8160ab450e01bf38a386e 100644 (file)
@@ -341,6 +341,9 @@ void OilEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("RADIUS", config.radius);
        output.tag.set_property("USE_INTENSITY", config.use_intensity);
        output.append_tag();
+       output.tag.set_title("/OIL_PAINTING");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index c43ce53b7dbd2f3c8d6ede9e514e86b727f6654a..d3bdd92cf1d44db950710b387b992cd44203e2aa 100644 (file)
@@ -43,8 +43,6 @@ class OverlayConfig
 public:
        OverlayConfig();
 
-
-
        static const char* mode_to_text(int mode);
        int mode;
 
@@ -65,10 +63,6 @@ public:
        };
 };
 
-
-
-
-
 class OverlayMode : public BC_PopupMenu
 {
 public:
@@ -118,11 +112,6 @@ public:
        OverlayOutput *output;
 };
 
-
-
-
-
-
 class Overlay : public PluginVClient
 {
 public:
@@ -152,17 +141,6 @@ public:
        int input_layer2;
 };
 
-
-
-
-
-
-
-
-
-
-
-
 OverlayConfig::OverlayConfig()
 {
        mode = TRANSFER_NORMAL;
@@ -172,45 +150,33 @@ OverlayConfig::OverlayConfig()
 
 const char* OverlayConfig::mode_to_text(int mode)
 {
-       switch(mode)
-       {
-               case TRANSFER_NORMAL:
-                       return _("Normal");
-                       break;
-
-               case TRANSFER_REPLACE:
-                       return _("Replace");
-                       break;
-
-               case TRANSFER_ADDITION:
-                       return _("Addition");
-                       break;
-
-               case TRANSFER_SUBTRACT:
-                       return _("Subtract");
-                       break;
-
-               case TRANSFER_MULTIPLY:
-                       return _("Multiply");
-                       break;
-
-               case TRANSFER_DIVIDE:
-                       return _("Divide");
-                       break;
-
-               case TRANSFER_MAX:
-                       return _("Max");
-                       break;
-
-               case TRANSFER_MIN:
-                       return _("Min");
-                       break;
-
-               default:
-                       return _("Normal");
-                       break;
+       switch(mode) {
+       case TRANSFER_NORMAL:           return _("Normal");
+       case TRANSFER_ADDITION:         return _("Addition");
+       case TRANSFER_SUBTRACT:         return _("Subtract");
+       case TRANSFER_MULTIPLY:         return _("Multiply");
+       case TRANSFER_DIVIDE:           return _("Divide");
+       case TRANSFER_REPLACE:          return _("Replace");
+       case TRANSFER_MAX:              return _("Max");
+       case TRANSFER_MIN:              return _("Min");
+       case TRANSFER_AVERAGE:          return _("Average");
+       case TRANSFER_DARKEN:           return _("Darken");
+       case TRANSFER_LIGHTEN:          return _("Lighten");
+       case TRANSFER_DST:              return _("Dst");
+       case TRANSFER_DST_ATOP:         return _("DstAtop");
+       case TRANSFER_DST_IN:           return _("DstIn");
+       case TRANSFER_DST_OUT:          return _("DstOut");
+       case TRANSFER_DST_OVER:         return _("DstOver");
+       case TRANSFER_SRC:              return _("Src");
+       case TRANSFER_SRC_ATOP:         return _("SrcAtop");
+       case TRANSFER_SRC_IN:           return _("SrcIn");
+       case TRANSFER_SRC_OUT:          return _("SrcOut");
+       case TRANSFER_SRC_OVER:         return _("SrcOver");
+       case TRANSFER_OR:               return _("Or");
+       case TRANSFER_XOR:              return _("Xor");
+       default:                        break;
        }
-       return "";
+       return _("Normal");
 }
 
 const char* OverlayConfig::direction_to_text(int direction)
@@ -291,14 +257,9 @@ void OverlayWindow::create_objects()
 
 
 
-OverlayMode::OverlayMode(Overlay *plugin,
-       int x,
-       int y)
- : BC_PopupMenu(x,
-       y,
-       150,
-       OverlayConfig::mode_to_text(plugin->config.mode),
-       1)
+OverlayMode::OverlayMode(Overlay *plugin, int x, int y)
+ : BC_PopupMenu(x, y, 150,
+       OverlayConfig::mode_to_text(plugin->config.mode), 1)
 {
        this->plugin = plugin;
 }
@@ -459,7 +420,6 @@ int Overlay::process_buffer(VFrame **frame,
        load_configuration();
 
 
-printf("Overlay::process_buffer mode=%d\n", config.mode);
        if(!temp) temp = new VFrame(0,
                -1,
                frame[0]->get_w(),
index 21a98450b48e9d750f805270b54ab959aa9c238a..11704a82d399a4da31a3d68d2d2e7b6ad0520574 100644 (file)
@@ -364,6 +364,8 @@ void OverlayAudio::save_data(KeyFrame *keyframe)
        output.tag.set_property("OUTPUT", config.output_track);
        output.tag.set_property("MODE", config.mode);
        output.append_tag();
+       output.tag.set_title("/OVERLAY");
+       output.append_tag();
        output.append_newline();
        output.terminate_string();
 }
index ec93ffce8768d2efaf0e640aa4997945ffa16d9e..804bc7decc928e7cde82cc11355bf54331ae40f9 100644 (file)
@@ -869,9 +869,14 @@ void ParametricEQ::save_data(KeyFrame *keyframe)
                output.tag.set_property("MAGNITUDE", config.band[i].magnitude);
                output.tag.set_property("MODE", config.band[i].mode);
                output.append_tag();
+               output.tag.set_title("/BAND");
+               output.append_tag();
                output.append_newline();
        }
 
+       output.tag.set_title("/PARAMETRICEQ");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index c2eb184ae2ca00b9653fc0c966089ca3bdf03187..26a2e774ebc1eba55a4cc9f25e98151808450d64 100644 (file)
@@ -670,6 +670,9 @@ void PerspectiveMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("WINDOW_W", config.window_w);
        output.tag.set_property("WINDOW_H", config.window_h);
        output.append_tag();
+       output.tag.set_title("/PERSPECTIVE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 71639577061eda5f5c02b6f42de68a6a8a366c82..fd9b6ed2f20368b5d619863952ba3e8cb2eb9bf5 100644 (file)
@@ -445,6 +445,9 @@ void PhotoScaleMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("HEIGHT", config.height);
        output.tag.set_property("USE_FILE", config.use_file);
        output.append_tag();
+       output.tag.set_title("/PHOTOSCALE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 033b91b2e4aae247b0ecdeb2ac75b59289860edc..3b471ba1043d1c4e415d61d6ee4677b094d1c7c1 100644 (file)
@@ -128,6 +128,9 @@ void Piano::save_data(KeyFrame *keyframe)
                config.oscillator_config.values[i]->save_data(&output);
        }
 
+       output.tag.set_title("/SYNTH");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 // data is now in *text
 }
@@ -143,7 +146,8 @@ int Piano::show_gui()
 
 int Piano::set_string()
 {
-       if(thread) thread->window->set_title(gui_string);
+       if( thread )
+               thread->window->set_title(gui_string);
        return 0;
 }
 
index d49f4e148c6d70a01a46d5385b7581cc4856b041..bb3361b607e7690a18b1dd0c917b82c2000a1632 100644 (file)
@@ -95,8 +95,9 @@ void PitchEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("SCALE", config.scale);
        output.tag.set_property("SIZE", config.size);
        output.append_tag();
+       output.tag.set_title("/PITCH");
+       output.append_tag();
        output.append_newline();
-
        output.terminate_string();
 }
 
index 0b9647406f62e05c9ada243cdfa720aa740d8bcd..1752588e029012b3d8c3b57ca7babe93041fa216 100644 (file)
@@ -316,6 +316,9 @@ void PolarEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("DEPTH", config.depth);
        output.tag.set_property("ANGLE", config.angle);
        output.append_tag();
+       output.tag.set_title("/POLAR");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 04339ca89e31ef16e04969d4cc5dc7a2c62a1487..7e536fecc534182ad42f4beb7b74ebe0e08e5230 100644 (file)
@@ -465,6 +465,9 @@ void RadialBlurMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("B", config.b);
        output.tag.set_property("A", config.a);
        output.append_tag();
+       output.tag.set_title("/RADIALBLUR");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index c9d086f981e27ba022ce8b50cde53dc35ef5d63f..edba7e129afd1d966f9dbe7cd5822021ba21983a 100644 (file)
@@ -432,6 +432,9 @@ void ReframeRT::save_data(KeyFrame *keyframe)
        output.tag.set_property("STRETCH", config.stretch);
        output.tag.set_property("INTERPOLATE", config.interp);
        output.append_tag();
+       output.tag.set_title("/REFRAMERT");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index a0538097cfd568b698606573f4af674ea4b38346..6107d9c57ea9a5c38036051715ab3ff02a63efec 100644 (file)
@@ -293,6 +293,9 @@ void RemoveGaps::save_data(KeyFrame *keyframe)
        output.tag.set_property("DURATION", config.duration);
        output.tag.set_property("THRESHOLD", config.threshold);
        output.append_tag();
+       output.tag.set_title("/REMOVEGAPS");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 7b9569318fb6e31fb9520d5b85c5b30453ad3279..e6de8c3479548ddbbbfaa15c946c9c8e744c97a3 100644 (file)
@@ -258,6 +258,9 @@ void ResampleRT::save_data(KeyFrame *keyframe)
        output.tag.set_title("RESAMPLERT");
        output.tag.set_property("SCALE", config.scale);
        output.append_tag();
+       output.tag.set_title("/RESAMPLERT");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 1d4ec5fbc98a8c3c31fe44d3ef1a5c172ece6028..d309465eed8de97f3e2e9552d68e744e40b4f66b 100644 (file)
@@ -315,10 +315,6 @@ void Reverb::save_data(KeyFrame *keyframe)
        output.tag.set_title("/REVERB");
        output.append_tag();
        output.append_newline();
-//printf("Reverb::save_data 1\n");
-
-
-
        output.terminate_string();
 //printf("Reverb::save_data 2\n");
 }
@@ -598,7 +594,7 @@ void ReverbConfig::boundaries()
 
 void ReverbConfig::dump()
 {
-       printf("ReverbConfig::dump %f " _LD " %f %f " _LD " " _LD " " _LD " " _LD "\n",
+       printf("ReverbConfig::dump %f %jd %f %f %jd %jd %jd %jd\n",
                level_init, delay_init, ref_level1, ref_level2,
                ref_total, ref_length, lowpass1, lowpass2);
 }
index a468c4d79663d884534052b29349494c415182df..fbab14bd3eab5b1d69a8bed5e7115fb92cb20d39 100644 (file)
@@ -319,6 +319,9 @@ void ReverseAudio::save_data(KeyFrame *keyframe)
        output.tag.set_title("REVERSEAUDIO");
        output.tag.set_property("ENABLED", config.enabled);
        output.append_tag();
+       output.tag.set_title("/REVERSEAUDIO");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 72db6dcd010db25672c5c8abff42eb0b9810f419..367b0bdbf3606667bd793798c85234e9ab7e7fb1 100644 (file)
@@ -287,6 +287,9 @@ void ReverseVideo::save_data(KeyFrame *keyframe)
        output.tag.set_title("REVERSEVIDEO");
        output.tag.set_property("ENABLED", config.enabled);
        output.append_tag();
+       output.tag.set_title("/REVERSEVIDEO");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 1de2e00bb18e52cc387251c12aa4f1b406a847e4..273fccea2e42b58ced6519dc9a854b6027e83026 100644 (file)
@@ -91,6 +91,9 @@ void RGB601Main::save_data(KeyFrame *keyframe)
        output.tag.set_title("RGB601");
        output.tag.set_property("DIRECTION", config.direction);
        output.append_tag();
+       output.tag.set_title("/RGB601");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index b4b705c53a67165bc829f2bf99e967dd5241218d..e192f25fb0cde96b6df6001a9e2cdab26ef69692 100644 (file)
@@ -244,6 +244,9 @@ void RGBShiftEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("B_DX", config.b_dx);
        output.tag.set_property("B_DY", config.b_dy);
        output.append_tag();
+       output.tag.set_title("/RGBSHIFT");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index e3eb8dd5ef1fc312ad03ae7da43c53c5aaaba30a..0ebeb60d92bdc887937f525f005d4e18d2f3ee56 100644 (file)
@@ -643,6 +643,9 @@ void RotateEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("DRAW_PIVOT", (int)config.draw_pivot);
 //     output.tag.set_property("INTERPOLATE", (int)config.bilinear);
        output.append_tag();
+       output.tag.set_title("/ROTATE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 // data is now in *text
 }
index 6f4ffb263e1ab80f6562896269e4673d7dabc9b8..f4285f40d89164e73bdf3777a35a71e77c137be2 100644 (file)
@@ -128,6 +128,9 @@ void ScaleMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("HEIGHT", config.height);
        output.tag.set_property("CONSTRAIN", config.constrain);
        output.append_tag();
+       output.tag.set_title("/SCALE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 // data is now in *text
 }
index 11324252d0eaabcd3ff739ef9ad6cdc22f7fb2fb..c8384934f541cb291367a1a5c4831e5ff7a757f8 100644 (file)
@@ -207,25 +207,13 @@ void SharpenMain::save_data(KeyFrame *keyframe)
        output.set_shared_output(keyframe->get_data(), MESSAGESIZE);
        output.tag.set_title("SHARPNESS");
        output.tag.set_property("VALUE", config.sharpness);
+       output.tag.set_property("INTERLACE", config.interlace);
+       output.tag.set_property("HORIZONTAL", config.horizontal);
+       output.tag.set_property("LUMINANCE", config.luminance);
        output.append_tag();
-
-       if(config.interlace)
-       {
-               output.tag.set_title("INTERLACE");
-               output.append_tag();
-       }
-
-       if(config.horizontal)
-       {
-               output.tag.set_title("HORIZONTAL");
-               output.append_tag();
-       }
-
-       if(config.luminance)
-       {
-               output.tag.set_title("LUMINANCE");
-               output.append_tag();
-       }
+       output.tag.set_title("/SHARPNESS");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
@@ -236,9 +224,6 @@ void SharpenMain::read_data(KeyFrame *keyframe)
        input.set_shared_input(keyframe->get_data(), strlen(keyframe->get_data()));
 
        int result = 0;
-       int new_interlace = 0;
-       int new_horizontal = 0;
-       int new_luminance = 0;
 
        while(!result)
        {
@@ -249,30 +234,14 @@ void SharpenMain::read_data(KeyFrame *keyframe)
                        if(input.tag.title_is("SHARPNESS"))
                        {
                                config.sharpness = input.tag.get_property("VALUE", config.sharpness);
+                               config.interlace = input.tag.get_property("INTERLACE", config.interlace);
+                               config.horizontal = input.tag.get_property("HORIZONTAL", config.horizontal);
+                               config.luminance = input.tag.get_property("LUMINANCE", config.luminance);
 //printf("SharpenMain::read_data %f\n", sharpness);
                        }
-                       else
-                       if(input.tag.title_is("INTERLACE"))
-                       {
-                               new_interlace = 1;
-                       }
-                       else
-                       if(input.tag.title_is("HORIZONTAL"))
-                       {
-                               new_horizontal = 1;
-                       }
-                       else
-                       if(input.tag.title_is("LUMINANCE"))
-                       {
-                               new_luminance = 1;
-                       }
                }
        }
 
-       config.interlace = new_interlace;
-       config.horizontal = new_horizontal;
-       config.luminance = new_luminance;
-
        if(config.sharpness > MAXSHARPNESS) 
                config.sharpness = MAXSHARPNESS;
        else
index 47d45cc9f0f982e1a4c052963d02f4a2b2083c74..3e6b57be001f15d73e5b2a367b1a29f05ffdc7c6 100644 (file)
@@ -282,6 +282,8 @@ void ShiftInterlaceMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("ODD_OFFSET", config.odd_offset);
        output.tag.set_property("EVEN_OFFSET", config.even_offset);
        output.append_tag();
+       output.tag.set_title("/SHIFTINTERLACE");
+       output.append_tag();
        output.append_newline();
        output.terminate_string();
 // data is now in *text
index 5692a7131b8e82993e6dc4c9b4b297eb1104d47a..ad03b5c133bafb0c3fb08fdc6a9d9c6b8e885f88 100644 (file)
@@ -223,6 +223,9 @@ void SlideMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("MOTION_DIRECTION", motion_direction);
        output.tag.set_property("DIRECTION", direction);
        output.append_tag();
+       output.tag.set_title("/SLIDE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index f78c60c483b6962765b3728d7fe83021294424a9..ff971a7d2b576153c9c9890202e11a610851fb85 100644 (file)
@@ -1249,6 +1249,8 @@ void Spectrogram::save_data(KeyFrame *keyframe)
        output.tag.set_property("W", (int)w);
        output.tag.set_property("H", (int)h);
        output.append_tag();
+       output.tag.set_title("/SPECTROGRAM");
+       output.append_tag();
        output.append_newline();
        output.terminate_string();
 }
index f15b06eeba5c0ab562a5d9235e37b80ffd8902c8..bbfd4e6aa721990a50f6c99a39215f0b8db8b923 100644 (file)
@@ -227,6 +227,8 @@ void SwapMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("BLUE", config.blue);
        output.tag.set_property("ALPHA", config.alpha);
        output.append_tag();
+       output.tag.set_title("/SWAPCHANNELS");
+       output.append_tag();
        output.append_newline();
        output.terminate_string();
 // data is now in *text
index cfe4d3b0458abbeffc435cb1798cc2c0718c65b7..c6280972107c262456010b39fd6448c9f32f40fe 100644 (file)
@@ -243,6 +243,9 @@ void SwapFrames::save_data(KeyFrame *keyframe)
        output.tag.set_property("ON", config.on);
        output.tag.set_property("SWAP_EVEN", config.swap_even);
        output.append_tag();
+       output.tag.set_title("/SWAPFRAMES");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 0188d07fca07f2ea8ebf8e3b579af9cadc90487e..546aaf9167cd5efcf85290049fee8aa3e0df67f7 100644 (file)
@@ -164,6 +164,9 @@ void Synth::save_data(KeyFrame *keyframe)
                config.oscillator_config.values[i]->save_data(&output);
        }
 
+       output.tag.set_title("/SYNTH");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 //printf("Synth::save_data %d %s\n", __LINE__, output.string);
 // data is now in *text
index 5e269aa084d6da57546c1333cd347b920cd7c649..b61fb48ed2c86455d2f3773749e9fdf06941dce8 100644 (file)
@@ -127,15 +127,8 @@ ThresholdMain::~ThresholdMain()
        delete threshold_engine;
 }
 
-int ThresholdMain::is_realtime()
-{
-       return 1;
-}
-
-const char* ThresholdMain::plugin_title() 
-{ 
-       return _("Threshold"); 
-}
+const char* ThresholdMain::plugin_title() { return _("Threshold"); }
+int ThresholdMain::is_realtime() { return 1; }
 
 
 
@@ -175,38 +168,39 @@ int ThresholdMain::process_buffer(VFrame *frame,
 
 void ThresholdMain::save_data(KeyFrame *keyframe)
 {
-       FileXML file;
-       file.set_shared_output(keyframe->get_data(), MESSAGESIZE);
-       file.tag.set_title("THRESHOLD");
-       file.tag.set_property("MIN", config.min);
-       file.tag.set_property("MAX", config.max);
-       file.tag.set_property("PLOT", config.plot);
-       config.low_color.set_property(file.tag,  "LOW_COLOR");
-       config.mid_color.set_property(file.tag,  "MID_COLOR");
-       config.high_color.set_property(file.tag, "HIGH_COLOR");
-       file.append_tag();
-       file.tag.set_title("/THRESHOLD");
-       file.append_tag();
-       file.terminate_string();
+       FileXML output;
+       output.set_shared_output(keyframe->get_data(), MESSAGESIZE);
+       output.tag.set_title("THRESHOLD");
+       output.tag.set_property("MIN", config.min);
+       output.tag.set_property("MAX", config.max);
+       output.tag.set_property("PLOT", config.plot);
+       config.low_color.set_property(output.tag,  "LOW_COLOR");
+       config.mid_color.set_property(output.tag,  "MID_COLOR");
+       config.high_color.set_property(output.tag, "HIGH_COLOR");
+       output.append_tag();
+       output.tag.set_title("/THRESHOLD");
+       output.append_tag();
+       output.append_newline();
+       output.terminate_string();
 }
 
 void ThresholdMain::read_data(KeyFrame *keyframe)
 {
-       FileXML file;
+       FileXML input;
        const char *data = keyframe->get_data();
-       file.set_shared_input((char *)data, strlen(data));
+       input.set_shared_input((char *)data, strlen(data));
        int result = 0;
        while(!result)
        {
-               result = file.read_tag();
+               result = input.read_tag();
                if(!result)
                {
-                       config.min = file.tag.get_property("MIN", config.min);
-                       config.max = file.tag.get_property("MAX", config.max);
-                       config.plot = file.tag.get_property("PLOT", config.plot);
-                       config.low_color = config.low_color.get_property(file.tag, "LOW_COLOR");
-                       config.mid_color = config.mid_color.get_property(file.tag, "MID_COLOR");
-                       config.high_color = config.high_color.get_property(file.tag, "HIGH_COLOR");
+                       config.min = input.tag.get_property("MIN", config.min);
+                       config.max = input.tag.get_property("MAX", config.max);
+                       config.plot = input.tag.get_property("PLOT", config.plot);
+                       config.low_color = config.low_color.get_property(input.tag, "LOW_COLOR");
+                       config.mid_color = config.mid_color.get_property(input.tag, "MID_COLOR");
+                       config.high_color = config.high_color.get_property(input.tag, "HIGH_COLOR");
                }
        }
        config.boundaries();
index 0178326c468bc80bcd73eb54d815076a390bb5aa..4fb3bb21265e0855ed85ee0f0e2bcbe712cb80a7 100644 (file)
@@ -379,7 +379,7 @@ int ThresholdLowColorThread::handle_new_color(int output, int alpha)
        window->update_low_color();
        window->flush();
        plugin->send_configure_change();
-       return 0;
+       return 1;
 }
 
 
@@ -399,7 +399,7 @@ int ThresholdMidColorThread::handle_new_color(int output, int alpha)
        window->update_mid_color();
        window->flush();
        plugin->send_configure_change();
-       return 0;
+       return 1;
 }
 
 
@@ -419,7 +419,7 @@ int ThresholdHighColorThread::handle_new_color(int output, int alpha)
        window->update_high_color();
        window->flush();
        plugin->send_configure_change();
-       return 0;
+       return 1;
 }
 
 
index 445bbf7f347a2189b3b5d5029c8f8375af397a56..7b7a0921adda0698ae2f2892fc6e617e67121f1d 100644 (file)
@@ -372,7 +372,7 @@ int TimeAvgMain::process_buffer(VFrame *frame,
                        reset_accum(w, h, color_model);
                }
 
-// printf("TimeAvgMain::process_buffer %d prev_frame=" _LD " start_position=" _LD "\n", 
+// printf("TimeAvgMain::process_buffer %d prev_frame=%jd start_position=%jd\n", 
 //   __LINE__, prev_frame, start_position);
                for(int64_t i = prev_frame; i <= start_position; i++)
                {
@@ -382,7 +382,7 @@ int TimeAvgMain::process_buffer(VFrame *frame,
                                frame_rate,
                                0);
                        add_accum(frame);
-printf("TimeAvgMain::process_buffer %d prev_frame=" _LD " start_position=" _LD " i=" _LD "\n", 
+printf("TimeAvgMain::process_buffer %d prev_frame=%jd start_position=%jd i=%jd\n", 
   __LINE__, prev_frame, start_position, i);
                }
 
@@ -1036,6 +1036,9 @@ void TimeAvgMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("THRESHOLD", config.threshold);
        output.tag.set_property("BORDER", config.border);
        output.append_tag();
+       output.tag.set_title("/TIME_AVERAGE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 88dc2987768639b39d1e750a9a29ba6609af3398..ead498d18dd6d1fd62c951e5679bee71c77e2de5 100644 (file)
@@ -432,7 +432,7 @@ int TimeFrontTrackUsage::handle_event()
        plugin->config.track_usage = from_text(get_text());
        gui->update_shape();
        plugin->send_configure_change();
-       return 0;
+       return 1;
 }
 
 
@@ -1117,6 +1117,9 @@ void TimeFrontMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("INVERT", config.invert);
        output.tag.set_property("SHOW_GRAYSCALE", config.show_grayscale);
        output.append_tag();
+       output.tag.set_title("/TIMEFRONT");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 3df979b84b8bf36d607a01cb1fdff8d1a40b3d81..c36d68ee6767ae89dedcf4756b2fa4acb183e9ff 100644 (file)
@@ -242,7 +242,7 @@ int TimeStretchRT::process_buffer(int64_t size,
                engine->update(config.scale, sample_rate, config.size);
                need_reconfigure = 0;
 //printf("TimeStretchRT::process_buffer %d start_position=" _LD
-//      " prev_position=" _LD " scale=%f source_start=" _LD "\n", 
+//      " prev_position=%jd scale=%f source_start=%jd\n", 
 //     __LINE__, start_position, prev_position, config.scale, source_start);
        }
 
@@ -301,6 +301,9 @@ void TimeStretchRT::save_data(KeyFrame *keyframe)
        output.tag.set_property("SCALE", config.scale);
        output.tag.set_property("SIZE", config.size);
        output.append_tag();
+       output.tag.set_title("/TIMESTRETCHRT");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 8ccdb2a3648bfa19b28afd2cfe45454a463bdde5..2379201d7c66cceb2d6d5a0cb3acb0737431741e 100644 (file)
@@ -1384,15 +1384,22 @@ int TitleMain::load_freetype_face(FT_Library &freetype_library,
 BC_FontEntry* TitleMain::get_font()
 {
        int style = 0;
-       int mask;
-
-       style |= (config.style & BC_FONT_ITALIC) ? FL_SLANT_ITALIC : FL_SLANT_ROMAN;
-       style |= (config.style & BC_FONT_BOLD) ? FL_WEIGHT_BOLD : FL_WEIGHT_NORMAL;
+       int mask, pref;
+
+       style |= (config.style & BC_FONT_ITALIC) ?
+               FL_SLANT_ITALIC | FL_SLANT_OBLIQUE : FL_SLANT_ROMAN;
+       style |= (config.style & BC_FONT_BOLD) ?
+               FL_WEIGHT_BOLD | FL_WEIGHT_DEMIBOLD |
+               FL_WEIGHT_EXTRABOLD| FL_WEIGHT_BLACK | FL_WEIGHT_EXTRABLACK :
+               FL_WEIGHT_BOOK | FL_WEIGHT_NORMAL | FL_WEIGHT_MEDIUM |
+               FL_WEIGHT_LIGHT | FL_WEIGHT_EXTRALIGHT | FL_WEIGHT_THIN;
+       pref = style & (FL_SLANT_ITALIC | FL_WEIGHT_BOLD | FL_WEIGHT_NORMAL);
 
        mask = FL_WEIGHT_MASK | FL_SLANT_MASK;
 
        BC_Resources *resources =  BC_WindowBase::get_resources();
-       return resources->find_fontentry(config.font, style, mask);
+       return resources->find_fontentry(config.font, style, mask, pref);
 }
 
 int TitleMain::get_char_height()
index a2ad2cf7c821b74a5a86495941377db23701bc23..17178fc36dd5f271be8a80ec08c4287a14dcd070 100644 (file)
@@ -242,17 +242,23 @@ void TitleWindow::create_objects()
 
        add_tool(style_title = new BC_Title(x, y, _("Style:")));
        add_tool(italic = new TitleItalic(client, this, x, y + 20));
+       int w1 = italic->get_w();
        add_tool(bold = new TitleBold(client, this, x, y + 50));
+       if( bold->get_w() > w1 ) w1 = bold->get_w();  
 #ifdef USE_OUTLINE
-       add_tool(stroke = new TitleStroke(client, this, x, y + 110));
+       add_tool(stroke = new TitleStroke(client, this, x, y + 80));
+       if( stroke->get_w() > w1 ) w1 = stroke->get_w();  
 #endif
-       x += 90;
+       x += w1 + 10;
        add_tool(justify_title = new BC_Title(x, y, _("Justify:")));
        add_tool(left = new TitleLeft(client, this, x, y + 20));
+       w1 = left->get_w();
        add_tool(center = new TitleCenter(client, this, x, y + 50));
+       if( center->get_w() > w1 ) w1 = center->get_w();  
        add_tool(right = new TitleRight(client, this, x, y + 80));
+       if( right->get_w() > w1 ) w1 = right->get_w();  
 
-       x += 80;
+       x += w1 + 10;
        add_tool(top = new TitleTop(client, this, x, y + 20));
        add_tool(mid = new TitleMid(client, this, x, y + 50));
        add_tool(bottom= new TitleBottom(client, this, x, y + 80));
@@ -282,28 +288,36 @@ void TitleWindow::create_objects()
        y += 50;
 
        add_tool(dropshadow_title = new BC_Title(x, y, _("Drop shadow:")));
+       w1 = dropshadow_title->get_w();
        dropshadow = new TitleDropShadow(client, this, x, y + 20);
        dropshadow->create_objects();
-       x += 100;
+       if( dropshadow->get_w() > w1 ) w1 = dropshadow->get_w();
+       x += w1 + 10;
 
        add_tool(fadein_title = new BC_Title(x, y, _("Fade in (sec):")));
+       w1 = fadein_title->get_w();
        add_tool(fade_in = new TitleFade(client, this, &client->config.fade_in, x, y + 20));
-       x += 100;
+       if( fade_in->get_w() > w1 ) w1 = fade_in->get_w();
+       x += w1 + 10;
 
        add_tool(fadeout_title = new BC_Title(x, y, _("Fade out (sec):")));
+       w1 = fadeout_title->get_w();
        add_tool(fade_out = new TitleFade(client, this, &client->config.fade_out, x, y + 20));
-       x += 110;
+       if( fade_out->get_w() > w1 ) w1 = fade_out->get_w();
+       x += w1 + 10;
 
        add_tool(speed_title = new BC_Title(x, y, _("Speed:")));
+       w1 = speed_title->get_w();
        speed = new TitleSpeed(client, this, x, y + 20);
        speed->create_objects();
-       x += 110;
+       if( speed->get_w() > w1 ) w1 = speed->get_w();
+       x += w1 + 10;
 
        color_x = x;
-       color_y = y + 20;
+       color_y = y + 16;
        x += COLOR_W + 5;
-       add_tool(color_button = new TitleColorButton(client, this, x, y + 20, 0));
-       x += color_button->get_w();
+       add_tool(color_button = new TitleColorButton(client, this, x, y + 16, 0));
+       x += color_button->get_w() + 5;
        color_thread = new TitleColorThread(client, this, 0);
 
        x = color_x;
index 72bf5df7c0ce7bbda205ee73edc123870d6f2f2e..13e42388e1d3277e97d63dc6c3c7dbdebb4f0f81 100644 (file)
@@ -137,7 +137,9 @@ void TranslateMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("OUT_W", config.out_w);
        output.tag.set_property("OUT_H", config.out_h);
        output.append_tag();
-
+       output.tag.set_title("/TRANSLATE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 // data is now in *text
 }
@@ -172,25 +174,24 @@ void TranslateMain::read_data(KeyFrame *keyframe)
 }
 
 
-
-
-
-
-
+#define EPSILON 0.001
 
 int TranslateMain::process_realtime(VFrame *input_ptr, VFrame *output_ptr)
 {
-       VFrame *input, *output;
-       
-       
-       input = input_ptr;
-       output = output_ptr;
+       VFrame *input = input_ptr;
+       VFrame *output = output_ptr;
 
        load_configuration();
 
 //printf("TranslateMain::process_realtime 1 %p\n", input);
-       if(input->get_rows()[0] == output->get_rows()[0])
-       {
+       if( input->get_rows()[0] == output->get_rows()[0] ) {
+               if( temp_frame && (
+                   temp_frame->get_w() != input_ptr->get_w() ||
+                   temp_frame->get_h() != input_ptr->get_h() ||
+                   temp_frame->get_color_model() != input_ptr->get_color_model() ) ) {
+                       delete temp_frame;
+                       temp_frame = 0;
+               }
                if(!temp_frame) 
                        temp_frame = new VFrame(0, 
                                -1,
@@ -211,39 +212,87 @@ int TranslateMain::process_realtime(VFrame *input_ptr, VFrame *output_ptr)
 
        output->clear_frame();
 
+       if( config.in_w < EPSILON ) return 1;
+       if( config.in_h < EPSILON ) return 1;
+       if( config.out_w < EPSILON ) return 1;
+       if( config.out_h < EPSILON ) return 1;
 
-// printf("TranslateMain::process_realtime 3 output=%p input=%p config.w=%f config.h=%f"
-//   "%f %f %f %f -> %f %f %f %f\n", output, input, config.w, config.h,
-//   in_x1, in_y1, in_x2, in_y2, out_x1, out_y1, out_x2, out_y2);
-               overlayer->overlay(output, input,
-                       config.in_x, config.in_y, 
-                       config.in_x + config.in_w, config.in_y + config.in_h,
-                       config.out_x, config.out_y, 
-                       config.out_x + config.out_w, config.out_y + config.out_h,
-                       1, TRANSFER_REPLACE, get_interpolation_type());
-       return 0;
-}
+       float ix1 = config.in_x, ox1 = config.out_x;
+       float ix2 = ix1 + config.in_w;
 
+       if( ix1 < 0 ) {
+               ox1 -= ix1;
+               ix2 = config.in_w;
+               ix1 = 0;
+       }
+
+       if(ix2 > output->get_w())
+               ix2 = output->get_w();
 
+       float iy1 = config.in_y, oy1 = config.out_y;
+       float iy2 = iy1 + config.in_h;
+
+       if( iy1 < 0 ) {
+               oy1 -= iy1;
+               iy2 = config.in_h;
+               iy1 = 0;
+       }
+
+       if( iy2 > output->get_h() )
+               iy2 = output->get_h();
+
+       float cx = config.out_w / config.in_w;
+       float cy = config.out_h / config.in_h;
+
+       float ox2 = ox1 + (ix2 - ix1) * cx;
+       float oy2 = oy1 + (iy2 - iy1) * cy;
+
+       if( ox1 < 0 ) {
+               ix1 += -ox1 / cx;
+               ox1 = 0;
+       }
+       if( oy1 < 0 ) {
+               iy1 += -oy1 / cy;
+               oy1 = 0;
+       }
+       if( ox2 > output->get_w() ) {
+               ix2 -= (ox2 - output->get_w()) / cx;
+               ox2 = output->get_w();
+       }
+       if( oy2 > output->get_h() ) {
+               iy2 -= (oy2 - output->get_h()) / cy;
+               oy2 = output->get_h();
+       }
+
+       if( ix1 >= ix2 ) return 1;
+       if( iy1 >= iy2 ) return 1;
+       if( ox1 >= ox2 ) return 1;
+       if( oy1 >= oy2 ) return 1;
+
+       overlayer->overlay(output, input,
+               ix1, iy1, ix2, iy2,
+               ox1, oy1, ox2, oy2,
+               1, TRANSFER_REPLACE,
+               get_interpolation_type());
+       return 0;
+}
 
 NEW_WINDOW_MACRO(TranslateMain, TranslateWin)
 
 void TranslateMain::update_gui()
 {
-       if(thread)
-       {
-               if(load_configuration())
-               {
-                       thread->window->lock_window();
-                       ((TranslateWin*)thread->window)->in_x->update(config.in_x);
-                       ((TranslateWin*)thread->window)->in_y->update(config.in_y);
-                       ((TranslateWin*)thread->window)->in_w->update(config.in_w);
-                       ((TranslateWin*)thread->window)->in_h->update(config.in_h);
-                       ((TranslateWin*)thread->window)->out_x->update(config.out_x);
-                       ((TranslateWin*)thread->window)->out_y->update(config.out_y);
-                       ((TranslateWin*)thread->window)->out_w->update(config.out_w);
-                       ((TranslateWin*)thread->window)->out_h->update(config.out_h);
-                       thread->window->unlock_window();
-               }
-       }
+       if( !thread ) return;
+       if( !load_configuration() ) return;
+
+       TranslateWin *window = (TranslateWin*)thread->window;
+       window->lock_window();
+       window->in_x->update(config.in_x);
+       window->in_y->update(config.in_y);
+       window->in_w->update(config.in_w);
+       window->in_h->update(config.in_h);
+       window->out_x->update(config.out_x);
+       window->out_y->update(config.out_y);
+       window->out_w->update(config.out_w);
+       window->out_h->update(config.out_h);
+       window->unlock_window();
 }
index 186e24a5ecd62a09e0bdaa656d742a60ee6185ec..3e50ac68ca139379b0a4352b475e5eeeda8ac4c7 100644 (file)
@@ -140,6 +140,9 @@ void UnsharpMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("AMOUNT", config.amount);
        output.tag.set_property("THRESHOLD", config.threshold);
        output.append_tag();
+       output.tag.set_title("/UNSHARP");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 586fb3e398943be77e84fd2e4558c86e1aa6c11f..178091cf680d6eb3b21bd08ea4dbef7c1f7b9d09 100644 (file)
@@ -263,6 +263,8 @@ void VideoScopeEffect::save_data(KeyFrame *keyframe)
                output.tag.set_property("USE_WAVE_PARADE", use_wave_parade);
        }
 
+       output.append_tag();
+       output.tag.set_title("/VIDEOSCOPE");
        output.append_tag();
        output.append_newline();
        output.terminate_string();
index 7d3c03c4c647abf1695286fe3e0d69bb19fa0694..8f60d76bf55653ab9fbee0993ae8c5923b5ed674 100644 (file)
@@ -398,8 +398,9 @@ void Vocoder::save_data(KeyFrame *keyframe)
        output.tag.set_property("OUTPUT", config.carrier_track);
        output.tag.set_property("BANDS", config.bands);
        output.append_tag();
+       output.tag.set_title("/VOCODER");
+       output.append_tag();
        output.append_newline();
-
        output.terminate_string();
 }
 
index 412527e343e7d93134cd27596b8cdd49d9bcf5d7..ce37965c2e843efc5f45ad05ab7fdbf16b365b0a 100644 (file)
@@ -486,6 +486,9 @@ void WaveEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("PHASE", config.phase);
        output.tag.set_property("WAVELENGTH", config.wavelength);
        output.append_tag();
+       output.tag.set_title("/WAVE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index d36f776a14da4ce6003bc2c780bc0a4a769154cd..d1a20435b7cf30b49868a106c0f4888db89c1603 100644 (file)
@@ -401,6 +401,9 @@ void WhirlEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("PINCH", config.pinch);
        output.tag.set_property("RADIUS", config.radius);
        output.append_tag();
+       output.tag.set_title("/WHIRL");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 // data is now in *text
 }
index afa5d2acfcf3a7f23e1b726a3fdf5d5e2e7c8939..d516365269c40dd580b8561ee866f18a734df0f9 100644 (file)
@@ -158,6 +158,9 @@ void WipeMain::save_data(KeyFrame *keyframe)
        output.tag.set_title("WIPE");
        output.tag.set_property("DIRECTION", direction);
        output.append_tag();
+       output.tag.set_title("/WIPE");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 99a81dc55a38305331029c2c10babc07f24abe62..4cdad02ab73d2a228df3581d602a633531277d7e 100644 (file)
@@ -235,6 +235,9 @@ void YUVEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("U", config.u);
        output.tag.set_property("V", config.v);
        output.append_tag();
+       output.tag.set_title("/YUV");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 98f0d74352a399935ba59ddf28032241da95508b..b1ab69c315615d80519da05edf99d7117b6e3670 100644 (file)
@@ -244,6 +244,9 @@ void YUVShiftEffect::save_data(KeyFrame *keyframe)
        output.tag.set_property("V_DX", config.v_dx);
        output.tag.set_property("V_DY", config.v_dy);
        output.append_tag();
+       output.tag.set_title("/YUVSHIFT");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }
 
index 246d33f3e96bddcc687069a6f010f7b2d1f0451b..2b38a4daa2b93e85483827ad56ead6ccdc0a35af 100644 (file)
@@ -624,6 +624,9 @@ void ZoomBlurMain::save_data(KeyFrame *keyframe)
        output.tag.set_property("B", config.b);
        output.tag.set_property("A", config.a);
        output.append_tag();
+       output.tag.set_title("/ZOOMBLUR");
+       output.append_tag();
+       output.append_newline();
        output.terminate_string();
 }