projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bug fix for In/Out pointer Attach Effect on empty track/location - Andrew+Anon
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
pluginfclient.C
diff --git
a/cinelerra-5.1/cinelerra/pluginfclient.C
b/cinelerra-5.1/cinelerra/pluginfclient.C
index fb0329dfcb593c70598ec8f52835927c12702b7e..f4d9ba3a48fe30a9cc874d1d6923d8d6230536b3 100644
(file)
--- a/
cinelerra-5.1/cinelerra/pluginfclient.C
+++ b/
cinelerra-5.1/cinelerra/pluginfclient.C
@@
-8,6
+8,7
@@
#include "bcwindowbase.h"
#include "bctitle.h"
#include "cstrdup.h"
#include "bcwindowbase.h"
#include "bctitle.h"
#include "cstrdup.h"
+#include "keys.h"
#include "language.h"
#include "mwindow.h"
#include "pluginfclient.h"
#include "language.h"
#include "mwindow.h"
#include "pluginfclient.h"
@@
-186,6
+187,10
@@
PluginFClientText::
int PluginFClientText::handle_event()
{
int PluginFClientText::handle_event()
{
+ if( get_keypress() == RETURN ) {
+ fwin->update();
+ activate();
+ }
return 0;
}
return 0;
}
@@
-285,7
+290,7
@@
int PluginFClientPot::handle_event()
}
PluginFClientSlider::PluginFClientSlider(PluginFClientWindow *fwin, int x, int y)
}
PluginFClientSlider::PluginFClientSlider(PluginFClientWindow *fwin, int x, int y)
- : BC_FSlider(x, y, 0, fwin->get_w()-x-
20, fwin->get_w()-x-20
, 0.f, 0.f, 0.f)
+ : BC_FSlider(x, y, 0, fwin->get_w()-x-
xS(20), fwin->get_w()-x-xS(20)
, 0.f, 0.f, 0.f)
{
this->fwin = fwin;
}
{
this->fwin = fwin;
}
@@
-522,7
+527,7
@@
const char *PluginFClient_Opt::tip()
int PluginFClient_OptPanel::update()
{
const char *cols[] = { "option", "value", };
int PluginFClient_OptPanel::update()
{
const char *cols[] = { "option", "value", };
- const int col1_w =
150
;
+ const int col1_w =
xS(150)
;
int wids[] = { col1_w, get_w()-col1_w };
BC_ListBox::update(&items[0], &cols[0], &wids[0], sizeof(items)/sizeof(items[0]),
get_xposition(), get_yposition(), get_highlighted_item());
int wids[] = { col1_w, get_w()-col1_w };
BC_ListBox::update(&items[0], &cols[0], &wids[0], sizeof(items)/sizeof(items[0]),
get_xposition(), get_yposition(), get_highlighted_item());
@@
-531,7
+536,7
@@
int PluginFClient_OptPanel::update()
PluginFClientWindow::PluginFClientWindow(PluginFClient *ffmpeg)
PluginFClientWindow::PluginFClientWindow(PluginFClient *ffmpeg)
- : PluginClientWindow(ffmpeg->plugin,
600, 300, 600, 300
, 1)
+ : PluginClientWindow(ffmpeg->plugin,
xS(600), yS(300), xS(600), yS(300)
, 1)
{
this->ffmpeg = ffmpeg;
this->selected = 0;
{
this->ffmpeg = ffmpeg;
this->selected = 0;
@@
-543,41
+548,42
@@
PluginFClientWindow::~PluginFClientWindow()
void PluginFClientWindow::create_objects()
{
void PluginFClientWindow::create_objects()
{
+ int xs8 = xS(8), xs10 = xS(10), ys10 = yS(10);
char string[BCTEXTLEN];
BC_Title *title;
char string[BCTEXTLEN];
BC_Title *title;
- int x =
10, y =
10;
+ int x =
xs10, y = ys
10;
const char *descr = ffmpeg->config.ffilt->description();
if( !descr ) descr = ffmpeg->config.ffilt->filter_name();
add_subwindow(title = new BC_Title(x, y, descr));
const char *descr = ffmpeg->config.ffilt->description();
if( !descr ) descr = ffmpeg->config.ffilt->filter_name();
add_subwindow(title = new BC_Title(x, y, descr));
- y += title->get_h() + 10;
+ y += title->get_h() +
ys
10;
int x0 = x;
sprintf(string, _("Type: "));
add_subwindow(title = new BC_Title(x0, y, string));
int x0 = x;
sprintf(string, _("Type: "));
add_subwindow(title = new BC_Title(x0, y, string));
- x0 += title->get_w() + 8;
+ x0 += title->get_w() +
xs
8;
add_subwindow(type = new BC_Title(x0, y, (char *)""));
add_subwindow(type = new BC_Title(x0, y, (char *)""));
- x0 = x +
150
;
+ x0 = x +
xS(150)
;
sprintf(string, _("Range: "));
add_subwindow(title = new BC_Title(x0, y, string));
sprintf(string, _("Range: "));
add_subwindow(title = new BC_Title(x0, y, string));
- x0 += title->get_w() + 8;
+ x0 += title->get_w() +
xs
8;
add_subwindow(range = new BC_Title(x0, y, (char *)""));
add_subwindow(range = new BC_Title(x0, y, (char *)""));
- int x1 = get_w() - BC_GenericButton::calculate_w(this, _("Reset")) - 8;
+ int x1 = get_w() - BC_GenericButton::calculate_w(this, _("Reset")) -
xs
8;
add_subwindow(reset = new PluginFClientReset(this, x1, y));
add_subwindow(reset = new PluginFClientReset(this, x1, y));
- y += title->get_h() + 10;
+ y += title->get_h() +
ys
10;
x0 = x;
x0 = x;
- add_subwindow(units = new PluginFClientUnits(this, x0, y,
120
));
- x0 += units->get_w() + 8;
- x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) - 8;
+ add_subwindow(units = new PluginFClientUnits(this, x0, y,
xS(120)
));
+ x0 += units->get_w() +
xs
8;
+ x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) -
xs
8;
add_subwindow(apply = new PluginFClientApply(this, x1, y));
add_subwindow(apply = new PluginFClientApply(this, x1, y));
- add_subwindow(text = new PluginFClientText(this, x0, y, x1-x0 - 8));
- y += title->get_h() + 10;
+ add_subwindow(text = new PluginFClientText(this, x0, y, x1-x0 -
xs
8));
+ y += title->get_h() +
ys
10;
add_subwindow(pot = new PluginFClientPot(this, x, y));
add_subwindow(pot = new PluginFClientPot(this, x, y));
- x1 = x + pot->get_w() + 10;
- add_subwindow(slider = new PluginFClientSlider(this, x1, y+10));
- y += pot->get_h() + 10;
+ x1 = x + pot->get_w() +
xs
10;
+ add_subwindow(slider = new PluginFClientSlider(this, x1, y+
ys
10));
+ y += pot->get_h() +
ys
10;
panel_x = x; panel_y = y;
panel_x = x; panel_y = y;
- panel_w = get_w()-10 - panel_x;
- panel_h = get_h()-10 - panel_y;
+ panel_w = get_w()-
xs
10 - panel_x;
+ panel_h = get_h()-
ys
10 - panel_y;
panel = new PluginFClient_OptPanel(this, panel_x, panel_y, panel_w, panel_h);
add_subwindow(panel);
panel->create_objects();
panel = new PluginFClient_OptPanel(this, panel_x, panel_y, panel_w, panel_h);
add_subwindow(panel);
panel->create_objects();
@@
-593,21
+599,22
@@
void PluginFClientWindow::draw()
int PluginFClientWindow::resize_event(int w, int h)
{
int PluginFClientWindow::resize_event(int w, int h)
{
- int x = get_w() - BC_GenericButton::calculate_w(this, _("Reset")) - 8;
+ int xs8 = xS(8), xs10 = xS(10), ys10 = yS(10);
+ int x = get_w() - BC_GenericButton::calculate_w(this, _("Reset")) - xs8;
int y = reset->get_y();
reset->reposition_window(x, y);
int y = reset->get_y();
reset->reposition_window(x, y);
- int x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) - 8;
+ int x1 = get_w() - BC_GenericButton::calculate_w(this, _("Apply")) -
xs
8;
int y1 = units->get_y();
apply->reposition_window(x1, y1);
int y1 = units->get_y();
apply->reposition_window(x1, y1);
- int x0 = units->get_x() + units->get_w() + 8;
+ int x0 = units->get_x() + units->get_w() +
xs
8;
int y0 = units->get_y();
int y0 = units->get_y();
- text->reposition_window(x0,y0, x1-x0-8);
- x1 = pot->get_x() + pot->get_w() + 10;
- int w1 = w - slider->get_x() -
20
;
+ text->reposition_window(x0,y0, x1-x0-
xs
8);
+ x1 = pot->get_x() + pot->get_w() +
xs
10;
+ int w1 = w - slider->get_x() -
xS(20)
;
slider->set_pointer_motion_range(w1);
slider->reposition_window(x1, slider->get_y(), w1, slider->get_h());
slider->set_pointer_motion_range(w1);
slider->reposition_window(x1, slider->get_y(), w1, slider->get_h());
- panel_w = get_w()-10 - panel_x;
- panel_h = get_h()-10 - panel_y;
+ panel_w = get_w()-
xs
10 - panel_x;
+ panel_h = get_h()-
ys
10 - panel_y;
panel->reposition_window(panel_x,panel_y, panel_w, panel_h);
return 1;
}
panel->reposition_window(panel_x,panel_y, panel_w, panel_h);
return 1;
}
@@
-838,7
+845,8
@@
static AVRational best_frame_rate(double frame_rate)
static const int m1 = 1001*12, m2 = 1000*12;
static const int freqs[] = {
40*m1, 48*m1, 50*m1, 60*m1, 80*m1,120*m1, 240*m1,
static const int m1 = 1001*12, m2 = 1000*12;
static const int freqs[] = {
40*m1, 48*m1, 50*m1, 60*m1, 80*m1,120*m1, 240*m1,
- 24*m2, 30*m2, 60*m2, 12*m2, 15*m2, 48*m2, 0,
+ 24*m2, 30*m2, 60*m2, 12*m2, 15*m2, 48*m2, 90*m2,
+ 100*m2, 120*m2, 144*m2, 72*m2, 0,
};
double max_err = 1.;
int freq, best_freq = 0;
};
double max_err = 1.;
int freq, best_freq = 0;
@@
-882,7
+890,7
@@
int PluginFVClient::activate(int width, int height, int color_model)
char args[BCTEXTLEN];
snprintf(args, sizeof(args),
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d",
char args[BCTEXTLEN];
snprintf(args, sizeof(args),
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d",
- width, height, pix_fmt, best_rate.
num, best_rate.den
, aspect_w, aspect_h);
+ width, height, pix_fmt, best_rate.
den, best_rate.num
, aspect_w, aspect_h);
ret = avfilter_graph_create_filter(&fsrc, avfilter_get_by_name("buffer"),
"in", args, NULL, graph);
}
ret = avfilter_graph_create_filter(&fsrc, avfilter_get_by_name("buffer"),
"in", args, NULL, graph);
}
@@
-940,7
+948,7
@@
int PluginFAClient::process_buffer(int64_t size, Samples **buffer, int64_t start
frame->format = AV_SAMPLE_FMT_FLTP;
frame->channel_layout = (1<<in_channels)-1;
frame->sample_rate = sample_rate;
frame->format = AV_SAMPLE_FMT_FLTP;
frame->channel_layout = (1<<in_channels)-1;
frame->sample_rate = sample_rate;
- frame->pts =
local_to_edl(filter_position)
;
+ frame->pts =
filter_position
;
}
int retry = 10;
}
int retry = 10;
@@
-1000,7
+1008,9
@@
int PluginFAClient::process_buffer(int64_t size, Samples **buffer, int64_t start
PluginFVClient::PluginFVClient(PluginServer *server, const char *name)
PluginFVClient::PluginFVClient(PluginServer *server, const char *name)
- : PluginVClient(server), PluginFClient(this, name)
+ : PluginVClient(server),
+ PluginFClient(this, name),
+ FFVideoConvert(server->preferences)
{
}
{
}
@@
-1039,11
+1049,11
@@
int PluginFVClient::process_buffer(VFrame **frames, int64_t position, double fra
ret = av_buffersink_get_frame(fsink, frame);
if( ret >= 0 || ret != AVERROR(EAGAIN) ) break;
if( !fsrc ) { ret = AVERROR(EIO); break; }
ret = av_buffersink_get_frame(fsink, frame);
if( ret >= 0 || ret != AVERROR(EAGAIN) ) break;
if( !fsrc ) { ret = AVERROR(EIO); break; }
- read_frame(vframe, 0, filter_position
++
, frame_rate, 0);
+ read_frame(vframe, 0, filter_position, frame_rate, 0);
frame->format = pix_fmt;
frame->width = width;
frame->height = height;
frame->format = pix_fmt;
frame->width = width;
frame->height = height;
- frame->pts =
local_to_edl(position)
;
+ frame->pts =
filter_position++
;
ret = av_frame_get_buffer(frame, 32);
if( ret < 0 ) break;
ret = transfer_pixfmt(vframe, frame);
ret = av_frame_get_buffer(frame, 32);
if( ret < 0 ) break;
ret = transfer_pixfmt(vframe, frame);