/*
* CINELERRA
* Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
- *
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
+ *
*/
#include "clip.h"
#if 0
-static const char *pattern_text[] =
+static const char *pattern_text[] =
{
N_("A B BC CD D"),
N_("AB BC CD DE EF"),
IVTCMain::IVTCMain(PluginServer *server)
: PluginVClient(server)
{
-
+
engine = 0;
previous_min = 0x4000000000000000LL;
previous_strategy = 0;
IVTCMain::~IVTCMain()
{
-
+
if(engine)
{
}
}
-const char* IVTCMain::plugin_title() { return _("Inverse Telecine"); }
+const char* IVTCMain::plugin_title() { return N_("Inverse Telecine"); }
int IVTCMain::is_realtime() { return 1; }
{
temp_frame[0] = 0;
temp_frame[1] = 0;
-
+
engine = new IVTCEngine(this, smp + 1);
}
int pattern_position = (PluginClient::source_position + config.frame_offset) % 5;
//printf("IVTCMain::process_realtime %d %d\n", pattern_position, config.first_field);
- if(!temp_frame[0]) temp_frame[0] = new VFrame(0,
- -1,
- input_ptr->get_w(),
- input_ptr->get_h(),
- input_ptr->get_color_model(),
- -1);
- if(!temp_frame[1]) temp_frame[1] = new VFrame(0,
- -1,
- input_ptr->get_w(),
- input_ptr->get_h(),
- input_ptr->get_color_model(),
- -1);
+ if(!temp_frame[0])
+ temp_frame[0] = new VFrame(input_ptr->get_w(), input_ptr->get_h(),
+ input_ptr->get_color_model(), 0);
+ if(!temp_frame[1])
+ temp_frame[1] = new VFrame(input_ptr->get_w(), input_ptr->get_h(),
+ input_ptr->get_color_model(), 0);
int row_size = VFrame::calculate_bytes_per_pixel(input_ptr->get_color_model()) * input_ptr->get_w();
this->input = input_ptr;
else
if(config.pattern == IVTCConfig::AUTOMATIC)
{
-// Compare averaged rows with original rows and
+// Compare averaged rows with original rows and
// with previous rows.
// Take rows which are most similar to the averaged rows.
// Process frame.
// First strategy.
-// Even lines from previous frame are more similar to
+// Even lines from previous frame are more similar to
// averaged even lines in current frame.
// Take even lines from previous frame
min = even_vs_prev;
IVTC_MACRO(uint16_t, int, 4, 1);
break;
}
-
+
}