projects
/
goodguy
/
cinelerra.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d72d54c
)
build tweaks for fc30, glFinish fix
author
Good Guy
<good1.2guy@gmail.com>
Fri, 3 May 2019 01:50:29 +0000
(19:50 -0600)
committer
Good Guy
<good1.2guy@gmail.com>
Fri, 3 May 2019 01:50:29 +0000
(19:50 -0600)
cinelerra-5.1/blds/bld_prepare.sh
patch
|
blob
|
history
cinelerra-5.1/cinelerra/canvas.C
patch
|
blob
|
history
cinelerra-5.1/cinelerra/cwindowgui.C
patch
|
blob
|
history
cinelerra-5.1/cinelerra/mwindow.C
patch
|
blob
|
history
cinelerra-5.1/cinelerra/mwindowedit.C
patch
|
blob
|
history
cinelerra-5.1/cinelerra/playback3d.C
patch
|
blob
|
history
cinelerra-5.1/cinelerra/playback3d.h
patch
|
blob
|
history
cinelerra-5.1/cinelerra/trackcanvas.C
patch
|
blob
|
history
cinelerra-5.1/cinelerra/vdevicex11.C
patch
|
blob
|
history
cinelerra-5.1/configure.ac
patch
|
blob
|
history
diff --git
a/cinelerra-5.1/blds/bld_prepare.sh
b/cinelerra-5.1/blds/bld_prepare.sh
index 7c1eec8179b472adfafc9d70f6ebc473979543b7..b82c51692babc83f2519928bf6b3847f512f3db2 100755
(executable)
--- a/
cinelerra-5.1/blds/bld_prepare.sh
+++ b/
cinelerra-5.1/blds/bld_prepare.sh
@@
-35,6
+35,9
@@
case "$dir" in
yum -y install /tmp/$yasm
rm -f /tmp/$yasm
;;
yum -y install /tmp/$yasm
rm -f /tmp/$yasm
;;
+#"fedora30")
+# dnf group install "Development Tools"
+# ... lzma-sdk-devel ...
"fedora")
dnf install groups "Development Tools"
dnf -y --best --allowerasing \
"fedora")
dnf install groups "Development Tools"
dnf -y --best --allowerasing \
@@
-51,7
+54,7
@@
case "$dir" in
ivtv-firmware libvorbis-devel texinfo xz-devel lzma-devel cmake git \
ctags patch gcc-c++ perl-XML-XPath libtiff-devel python dvdauthor \
gettext-devel inkscape udftools autoconf automake numactl-devel \
ivtv-firmware libvorbis-devel texinfo xz-devel lzma-devel cmake git \
ctags patch gcc-c++ perl-XML-XPath libtiff-devel python dvdauthor \
gettext-devel inkscape udftools autoconf automake numactl-devel \
- jbigkit-devel libvdpau-devel libva-devel gtk2-devel
+ jbigkit-devel libvdpau-devel libva-devel gtk2-devel
mesa-vdpau-drivers
;;
"suse" | "leap")
zypper -n install nasm gcc gcc-c++ zlib-devel texinfo libpng16-devel \
;;
"suse" | "leap")
zypper -n install nasm gcc gcc-c++ zlib-devel texinfo libpng16-devel \
diff --git
a/cinelerra-5.1/cinelerra/canvas.C
b/cinelerra-5.1/cinelerra/canvas.C
index d536cb1f21a3f5afbce4d32154225f1b39e989d6..707c95c0412c8e95cf72ea85111b16d7099baba2 100644
(file)
--- a/
cinelerra-5.1/cinelerra/canvas.C
+++ b/
cinelerra-5.1/cinelerra/canvas.C
@@
-731,7
+731,6
@@
void Canvas::create_canvas()
int video_on = 0;
lock_canvas("Canvas::create_canvas");
int video_on = 0;
lock_canvas("Canvas::create_canvas");
-
if(!get_fullscreen())
// Enter windowed
{
if(!get_fullscreen())
// Enter windowed
{
@@
-891,7
+890,6
@@
void Canvas::update_refresh(VideoDevice *device, VFrame *output_frame)
if( use_opengl ) {
get_canvas()->unlock_window();
unlock_canvas();
if( use_opengl ) {
get_canvas()->unlock_window();
unlock_canvas();
-
mwindow->playback_3d->copy_from(this, refresh_frame, output_frame, 0);
lock_canvas(" Canvas::output_refresh");
get_canvas()->lock_window(" Canvas::output_refresh");
mwindow->playback_3d->copy_from(this, refresh_frame, output_frame, 0);
lock_canvas(" Canvas::output_refresh");
get_canvas()->lock_window(" Canvas::output_refresh");
diff --git
a/cinelerra-5.1/cinelerra/cwindowgui.C
b/cinelerra-5.1/cinelerra/cwindowgui.C
index b62bd09bba03219887937855380c35394a8ed27d..7b3e919829b2edc1edc41c0d697ccd7745ccbc3c 100644
(file)
--- a/
cinelerra-5.1/cinelerra/cwindowgui.C
+++ b/
cinelerra-5.1/cinelerra/cwindowgui.C
@@
-1128,20
+1128,11
@@
void CWindowCanvas::draw_refresh(int flush)
if( get_canvas() && !get_canvas()->get_video_on() ) {
clear(0);
if( mwindow->uses_opengl() ) {
if( get_canvas() && !get_canvas()->get_video_on() ) {
clear(0);
if( mwindow->uses_opengl() ) {
- get_canvas()->unlock_window();
- get_canvas()->flush();
- get_canvas()->sync_display();
// this code is to idle rendering before drawing overlays on refresh frame
// if this is not done, occationally opengl finishs late, and overwrites
// the x11 refresh frame and the overlay is not visible. Rarely happens.
// this code is to idle rendering before drawing overlays on refresh frame
// if this is not done, occationally opengl finishs late, and overwrites
// the x11 refresh frame and the overlay is not visible. Rarely happens.
-// bug in gl libs may segv if glfinish is called, workaround is no finish
- static int cin_finish = -1;
- if( cin_finish < 0 ) {
- const char *cp = getenv("CIN_FINISH");
- cin_finish = !cp ? 1 : atoi(cp);
- }
- if( cin_finish )
- mwindow->playback_3d->finish_output();
+ get_canvas()->unlock_window();
+ mwindow->playback_3d->finish_output(this);
get_canvas()->lock_window("CWindowCanvas::draw_refresh");
}
if( refresh_frame && refresh_frame->get_w()>0 && refresh_frame->get_h()>0 ) {
get_canvas()->lock_window("CWindowCanvas::draw_refresh");
}
if( refresh_frame && refresh_frame->get_w()>0 && refresh_frame->get_h()>0 ) {
diff --git
a/cinelerra-5.1/cinelerra/mwindow.C
b/cinelerra-5.1/cinelerra/mwindow.C
index e86eb4b8dfadeb9a9c1e23b3aec4659a1857470b..d563ca69d803faf141387cfd11323fb18c06343c 100644
(file)
--- a/
cinelerra-5.1/cinelerra/mwindow.C
+++ b/
cinelerra-5.1/cinelerra/mwindow.C
@@
-3629,9
+3629,7
@@
void MWindow::update_project(int load_mode)
gui->unlock_window();
init_brender();
gui->unlock_window();
init_brender();
- cwindow->gui->lock_window("MWindow::update_project 1");
cwindow->update(0, 0, 1, 1, 1);
cwindow->update(0, 0, 1, 1, 1);
- cwindow->gui->unlock_window();
if(debug) PRINT_TRACE
if(debug) PRINT_TRACE
diff --git
a/cinelerra-5.1/cinelerra/mwindowedit.C
b/cinelerra-5.1/cinelerra/mwindowedit.C
index ebcaeb5109457310f75620c2ed57fe1406a90195..fc0ee88ed681c098b8eb70965ddc277f306f4a02 100644
(file)
--- a/
cinelerra-5.1/cinelerra/mwindowedit.C
+++ b/
cinelerra-5.1/cinelerra/mwindowedit.C
@@
-1982,8
+1982,8
@@
void MWindow::redo_entry(BC_WindowBase *calling_window_gui)
gui->update(1, FORCE_REDRAW, 1, 1, 1, 1, 1);
gui->update_proxy_toggle();
gui->unlock_window();
gui->update(1, FORCE_REDRAW, 1, 1, 1, 1, 1);
gui->update_proxy_toggle();
gui->unlock_window();
- cwindow->update(1, 1, 1, 1, 1);
cwindow->gui->unlock_window();
cwindow->gui->unlock_window();
+ cwindow->update(1, 1, 1, 1, 1);
for( int i=0; i < vwindows.size(); ++i ) {
if( vwindows.get(i)->is_running() ) {
for( int i=0; i < vwindows.size(); ++i ) {
if( vwindows.get(i)->is_running() ) {
@@
-2257,8
+2257,8
@@
void MWindow::undo_entry(BC_WindowBase *calling_window_gui)
gui->update(1, FORCE_REDRAW, 1, 1, 1, 1, 1);
gui->update_proxy_toggle();
gui->unlock_window();
gui->update(1, FORCE_REDRAW, 1, 1, 1, 1, 1);
gui->update_proxy_toggle();
gui->unlock_window();
- cwindow->update(1, 1, 1, 1, 1);
cwindow->gui->unlock_window();
cwindow->gui->unlock_window();
+ cwindow->update(1, 1, 1, 1, 1);
for( int i=0; i<vwindows.size(); ++i ) {
if( vwindows.get(i)->is_running() ) {
for( int i=0; i<vwindows.size(); ++i ) {
if( vwindows.get(i)->is_running() ) {
diff --git
a/cinelerra-5.1/cinelerra/playback3d.C
b/cinelerra-5.1/cinelerra/playback3d.C
index 24f8cf7032fc6dc93a8a5c9fc24b5e40b646d8b5..0f5e84fe559000f7db3d9d938b349ce4ea1112d6 100644
(file)
--- a/
cinelerra-5.1/cinelerra/playback3d.C
+++ b/
cinelerra-5.1/cinelerra/playback3d.C
@@
-769,16
+769,24
@@
void Playback3D::init_frame(Playback3DCommand *command, int is_yuv)
}
}
-void Playback3D::finish_output()
+void Playback3D::finish_output(
Canvas *canvas
)
{
Playback3DCommand command;
{
Playback3DCommand command;
+ command.canvas = canvas;
command.command = Playback3DCommand::FINISH_OUTPUT;
send_command(&command);
}
void Playback3D::finish_output_sync(Playback3DCommand *command)
{
command.command = Playback3DCommand::FINISH_OUTPUT;
send_command(&command);
}
void Playback3D::finish_output_sync(Playback3DCommand *command)
{
- glFinish();
+#ifdef HAVE_GL
+ command->canvas->lock_canvas("Playback3D::clear_output_sync");
+ if( command->canvas->get_canvas() ) {
+ command->canvas->get_canvas()->enable_opengl();
+ glFinish();
+ }
+ command->canvas->unlock_canvas();
+#endif
}
}
diff --git
a/cinelerra-5.1/cinelerra/playback3d.h
b/cinelerra-5.1/cinelerra/playback3d.h
index 1f3dd59a4ef2f91c282e6cd119df76549af4e6c3..6a38d7aa57b93dc3c9f5e9cf75cba70df2e41dfa 100644
(file)
--- a/
cinelerra-5.1/cinelerra/playback3d.h
+++ b/
cinelerra-5.1/cinelerra/playback3d.h
@@
-280,7
+280,7
@@
public:
void clear_output(Canvas *canvas, VFrame *output);
// Finish all active opengl requests
void clear_output(Canvas *canvas, VFrame *output);
// Finish all active opengl requests
- void finish_output();
+ void finish_output(
Canvas *canvas
);
void do_fade(Canvas *canvas, VFrame *frame, float fade);
void convert_cmodel(Canvas *canvas, VFrame *output, int dst_cmodel);
void do_fade(Canvas *canvas, VFrame *frame, float fade);
void convert_cmodel(Canvas *canvas, VFrame *output, int dst_cmodel);
diff --git
a/cinelerra-5.1/cinelerra/trackcanvas.C
b/cinelerra-5.1/cinelerra/trackcanvas.C
index 52eab8b9e410068235ed347052389d289887e575..97fe7a27883eb136660f2466c32ac99180e9f6c7 100644
(file)
--- a/
cinelerra-5.1/cinelerra/trackcanvas.C
+++ b/
cinelerra-5.1/cinelerra/trackcanvas.C
@@
-3880,7
+3880,6
@@
int TrackCanvas::render_handle_frame(EDL *edl, int64_t pos, int mode)
delete video_cache;
mwindow->cwindow->gui->lock_window("TrackCanvas::render_handle_frame 0");
Canvas *canvas = mwindow->cwindow->gui->canvas;
delete video_cache;
mwindow->cwindow->gui->lock_window("TrackCanvas::render_handle_frame 0");
Canvas *canvas = mwindow->cwindow->gui->canvas;
- canvas->lock_canvas("TrackCanvas::render_handle_frame 1");
int w = canvas->w, h = canvas->h, w2 = w/2, h2 = h/2;
int lx = 0, ly = h2/2, rx = w2, ry = h2/2;
BC_WindowBase *window = canvas->get_canvas();
int w = canvas->w, h = canvas->h, w2 = w/2, h2 = h/2;
int lx = 0, ly = h2/2, rx = w2, ry = h2/2;
BC_WindowBase *window = canvas->get_canvas();
@@
-3889,7
+3888,6
@@
int TrackCanvas::render_handle_frame(EDL *edl, int64_t pos, int mode)
window->draw_vframe(&vlt, lx,ly, w2,h2, 0,0,vlt.get_w(),vlt.get_h());
window->draw_vframe(&vrt, rx,ry, w2,h2, 0,0,vrt.get_w(),vrt.get_h());
window->flash(1);
window->draw_vframe(&vlt, lx,ly, w2,h2, 0,0,vlt.get_w(),vlt.get_h());
window->draw_vframe(&vrt, rx,ry, w2,h2, 0,0,vrt.get_w(),vrt.get_h());
window->flash(1);
- canvas->unlock_canvas();
mwindow->cwindow->gui->unlock_window();
break; }
case 1:
mwindow->cwindow->gui->unlock_window();
break; }
case 1:
diff --git
a/cinelerra-5.1/cinelerra/vdevicex11.C
b/cinelerra-5.1/cinelerra/vdevicex11.C
index c43f1c04de0374e81f8445278d4a6b1062fd8c4c..8cd64fe67f9ce485e7fe6b704c5c593daac2c5da 100644
(file)
--- a/
cinelerra-5.1/cinelerra/vdevicex11.C
+++ b/
cinelerra-5.1/cinelerra/vdevicex11.C
@@
-144,8
+144,11
@@
int VDeviceX11::close_all()
if( output_frame ) {
output->update_refresh(device, output_frame);
// if the last frame is good, don't draw over it
if( output_frame ) {
output->update_refresh(device, output_frame);
// if the last frame is good, don't draw over it
- if( !video_on || output->need_overlays() )
+ if( !video_on || output->need_overlays() ) {
+ output->unlock_canvas();
output->draw_refresh(1);
output->draw_refresh(1);
+ output->lock_canvas("VDeviceX11::close_all 2");
+ }
}
}
}
}
diff --git
a/cinelerra-5.1/configure.ac
b/cinelerra-5.1/configure.ac
index bb41ed93689666eba9182f6fe5d7cc2b329e9fba..408ed8e73c702c6cb5d078dd701c436030f612be 100644
(file)
--- a/
cinelerra-5.1/configure.ac
+++ b/
cinelerra-5.1/configure.ac
@@
-11,7
+11,9
@@
AC_PROG_CXX
CFG_CFLAGS+=" -fno-omit-frame-pointer -fno-math-errno -fno-signed-zeros"
CFG_CFLAGS+=" -pthread -Wall"
# misguided pedantic warnings
CFG_CFLAGS+=" -fno-omit-frame-pointer -fno-math-errno -fno-signed-zeros"
CFG_CFLAGS+=" -pthread -Wall"
# misguided pedantic warnings
+# this is extra work, not a gain...
CFG_CFLAGS+=" -Wno-unknown-warning"
CFG_CFLAGS+=" -Wno-unknown-warning"
+CFG_CFLAGS+=" -Wno-attributes"
CFG_CFLAGS+=" -Wno-unused-result"
CFG_CFLAGS+=" -Wno-stringop-overflow"
CFG_CFLAGS+=" -Wno-format-truncation"
CFG_CFLAGS+=" -Wno-unused-result"
CFG_CFLAGS+=" -Wno-stringop-overflow"
CFG_CFLAGS+=" -Wno-format-truncation"