From a0d43979126b586d50b2de48056ae48fa8d0bb1d Mon Sep 17 00:00:00 2001 From: Good Guy Date: Sat, 16 Mar 2019 18:37:56 -0600 Subject: [PATCH] layout shortcut fix, preview popup w, no shuttle ev_grab, ffmpeg af_aformat leak, ffmpeg kind op popup w --- cinelerra-5.1/cinelerra/awindowgui.C | 2 +- cinelerra-5.1/cinelerra/fileffmpeg.C | 2 +- cinelerra-5.1/cinelerra/mainmenu.C | 2 ++ cinelerra-5.1/cinelerra/shuttle.C | 2 +- cinelerra-5.1/plugins/theme_suv/suv.C | 2 +- .../thirdparty/src/ffmpeg-4.1.patch4 | 27 +++++++++++++++++++ 6 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 cinelerra-5.1/thirdparty/src/ffmpeg-4.1.patch4 diff --git a/cinelerra-5.1/cinelerra/awindowgui.C b/cinelerra-5.1/cinelerra/awindowgui.C index 33a69aee..8b1fda8c 100644 --- a/cinelerra-5.1/cinelerra/awindowgui.C +++ b/cinelerra-5.1/cinelerra/awindowgui.C @@ -1491,7 +1491,7 @@ void AWindowGUI::create_objects() int nw = get_text_width(MEDIUMFONT, _(av_names[i])); if( tw < nw ) tw = nw; } - int pw = BC_PopupMenu::calculate_w(4, tw, 1) + 16; + int pw = BC_PopupMenu::calculate_w(16, tw, 1); const char *text = _(AVIconDrawing::avicon_names[vicon_drawing]); add_subwindow(avicon_drawing = new AVIconDrawing(this, fw, fy, pw, text)); avicon_drawing->create_objects(); diff --git a/cinelerra-5.1/cinelerra/fileffmpeg.C b/cinelerra-5.1/cinelerra/fileffmpeg.C index 5910dd20..f7ad9439 100644 --- a/cinelerra-5.1/cinelerra/fileffmpeg.C +++ b/cinelerra-5.1/cinelerra/fileffmpeg.C @@ -1016,7 +1016,7 @@ const char *FFOptionsKind::kinds[] = { FFOptionsKind:: FFOptionsKind(FFOptionsWindow *fwin, int x, int y, int w) - : BC_PopupMenu(x, y, w-calculate_w(0), "") + : BC_PopupMenu(x, y, w, "") { this->fwin = fwin; } diff --git a/cinelerra-5.1/cinelerra/mainmenu.C b/cinelerra-5.1/cinelerra/mainmenu.C index 2fb2fcf9..01bc15a3 100644 --- a/cinelerra-5.1/cinelerra/mainmenu.C +++ b/cinelerra-5.1/cinelerra/mainmenu.C @@ -1633,6 +1633,8 @@ LoadLayoutItem::LoadLayoutItem(LoadLayout *load_layout, const char *text, int id int LoadLayoutItem::handle_event() { +// key_press hotkey skips over activate_submenu + load_layout->update(); MWindow *mwindow = load_layout->mwindow; switch( load_layout->action ) { case LAYOUT_LOAD: diff --git a/cinelerra-5.1/cinelerra/shuttle.C b/cinelerra-5.1/cinelerra/shuttle.C index df2850dc..4c780f1a 100644 --- a/cinelerra-5.1/cinelerra/shuttle.C +++ b/cinelerra-5.1/cinelerra/shuttle.C @@ -893,7 +893,7 @@ void Shuttle::run() if( first_time ) break; continue; } - if( !ioctl(fd, EVIOCGRAB, 1) ) { // exclusive access + if( 1 || !ioctl(fd, EVIOCGRAB, 1) ) { // exclusive access first_time = 0; while( !done ) { int ret = read(fd, &ev, sizeof(ev)); diff --git a/cinelerra-5.1/plugins/theme_suv/suv.C b/cinelerra-5.1/plugins/theme_suv/suv.C index f8487b2b..c2a072a1 100644 --- a/cinelerra-5.1/plugins/theme_suv/suv.C +++ b/cinelerra-5.1/plugins/theme_suv/suv.C @@ -132,7 +132,7 @@ void SUV::initialize() resources->menu_up = 0x4b4b4b; resources->menu_shadow = 0x202020; resources->popupmenu_margin = 15; - resources->popupmenu_triangle_margin = 15; + resources->popupmenu_triangle_margin = 20; resources->listbox_title_color = 0xbfbfbf; diff --git a/cinelerra-5.1/thirdparty/src/ffmpeg-4.1.patch4 b/cinelerra-5.1/thirdparty/src/ffmpeg-4.1.patch4 new file mode 100644 index 00000000..23e3e7f0 --- /dev/null +++ b/cinelerra-5.1/thirdparty/src/ffmpeg-4.1.patch4 @@ -0,0 +1,27 @@ +--- a/libavfilter/af_aformat.c 2018-07-17 03:27:41.000000000 -0600 ++++ b/libavfilter/af_aformat.c 2019-03-16 17:55:28.449442750 -0600 +@@ -109,6 +109,16 @@ + return 0; + } + ++#define DEL_FIELD(p,mem,fld) if( p->mem ) { av_freep(&p->mem->fld); av_freep(&p->mem); } ++ ++static av_cold void uninit(AVFilterContext *ctx) ++{ ++ AFormatContext *s = ctx->priv; ++ DEL_FIELD(s, formats, formats); ++ DEL_FIELD(s, sample_rates, formats); ++ DEL_FIELD(s, channel_layouts, channel_layouts); ++} ++ + static int query_formats(AVFilterContext *ctx) + { + AFormatContext *s = ctx->priv; +@@ -146,6 +156,7 @@ + .name = "aformat", + .description = NULL_IF_CONFIG_SMALL("Convert the input audio to one of the specified formats."), + .init = init, ++ .uninit = uninit, + .query_formats = query_formats, + .priv_size = sizeof(AFormatContext), + .priv_class = &aformat_class, -- 2.26.2