projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Credit Andrew minor configure fixes
[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 2cc12d62737625feec8a15602b2ffbea57fe6d95..32c3f4aae9846aa4ac76b8759fd6c4eb536260e7 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;
}
@@
-840,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;
@@
-884,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);
}
@@
-907,14
+913,22
@@
int PluginFAClient::get_inchannels()
{
AVFilterContext *fctx = ffilt->fctx;
AVFilterLink **links = !fctx->nb_inputs ? 0 : fctx->inputs;
{
AVFilterContext *fctx = ffilt->fctx;
AVFilterLink **links = !fctx->nb_inputs ? 0 : fctx->inputs;
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59,24,100)
+ return !links ? 0 : links[0]->ch_layout.nb_channels;
+#else
return !links ? 0 : links[0]->channels;
return !links ? 0 : links[0]->channels;
+#endif
}
int PluginFAClient::get_outchannels()
{
AVFilterContext *fctx = ffilt->fctx;
AVFilterLink **links = !fctx->nb_outputs ? 0 : fctx->outputs;
}
int PluginFAClient::get_outchannels()
{
AVFilterContext *fctx = ffilt->fctx;
AVFilterLink **links = !fctx->nb_outputs ? 0 : fctx->outputs;
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59,24,100)
+ return !links ? 0 : links[0]->ch_layout.nb_channels;
+#else
return !links ? 0 : links[0]->channels;
return !links ? 0 : links[0]->channels;
+#endif
}
int PluginFAClient::process_buffer(int64_t size, Samples **buffer, int64_t start_position, int sample_rate)
}
int PluginFAClient::process_buffer(int64_t size, Samples **buffer, int64_t start_position, int sample_rate)
@@
-942,7
+956,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;
@@
-1043,11
+1057,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);