diff --git a/cinelerra-5.1/Makefile.devel b/cinelerra-5.1/Makefile.devel
-index a12d8f2b..9aac014a 100644
+index 5531330..ad671f5 100644
--- a/cinelerra-5.1/Makefile.devel
+++ b/cinelerra-5.1/Makefile.devel
@@ -4,7 +4,7 @@ TOPDIR := $(CURDIR)
MAKEJ := $(MAKE) $(jobs)
diff --git a/cinelerra-5.1/cinelerra/Makefile b/cinelerra-5.1/cinelerra/Makefile
-index 18590e3a..5eead290 100644
+index f4e536b..9b76136 100644
--- a/cinelerra-5.1/cinelerra/Makefile
+++ b/cinelerra-5.1/cinelerra/Makefile
-@@ -395,6 +395,7 @@ LIBS += -lfontconfig -lfreetype
- LIBS += -lavcodec -lavdevice -lavfilter -lavformat -lavresample -lavutil
- LIBS += -lswresample -lswscale
- LIBS += -lvpx -lwebp -lwebpmux
-+LIBS += -lintl -liconv -lexecinfo
-
- LIBS += $(if $(filter fftw,$(static_pkgs)), -lfftw3)
- LIBS += $(if $(filter flac,$(static_pkgs)), -lFLAC)
-@@ -414,7 +415,7 @@ LIBS += $(if $(filter x265,$(static_pkgs)), -lx265)
- LIBS += $(if $(filter libvpx,$(static_pkgs)), -lvpx)
-
- ifneq ($(WANT_GL),no)
--LIBS += -lGL -lGLU -lGLX
-+LIBS += -lGL -lGLU
- endif
- ifneq ($(WANT_XFT),no)
- LIBS += -lXft
-@@ -476,6 +477,7 @@ LV2OBJS = \
- endif
-
- CFLAGS := \
-+ -I/usr/local/include \
- -I$(GUICAST) \
- -I$(LIBZMPEG3) \
- $(static_incs) \
-@@ -523,15 +525,15 @@ all: $(OUTPUT) $(CUTADS) $(BDWRITE) $(LV2UI)
+@@ -512,7 +512,7 @@ all: $(OUTPUT) $(CUTADS) $(BDWRITE) $(LV2UI)
$(OUTPUT): $(OBJS) $(THEME_DATA) $(DCRAW) $(LIBRARIES)
$(LINKER) `cat $(OBJDIR)/objs`
$(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(OUTPUT) $(OUTPUT_G))
ln -f -s ../bin/$(WANT_CIN) ci
ifneq ($(WANT_COMMERCIAL),no)
- $(CUTADS): $(CUTOBJS) $(CUTLIBS) $(LIBRARIES)
-- @echo g++ -o $@ $(CUTOBJS)
-- @g++ $(CFLAGS) -pthread -o $@ $(CUTOBJS) $(CUTLIBS) $(LIBS)
-+ @echo $(CXX) -o $@ $(CUTOBJS)
-+ @$(CXX) $(CFLAGS) -pthread -o $@ $(CUTOBJS) $(CUTLIBS) $(LIBS)
- $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(CUTADS) $(CUTADS).debuginfo)
-- $(if $(findstring -ggdb,$(CFLAGS)),,strip $(CUTADS))
-+ #$(if $(findstring -ggdb,$(CFLAGS)),,strip $(CUTADS))
-
- install-cutads:
- cp -av $(OBJDIR)/cutads $(BINDIR)/.
-@@ -540,18 +542,18 @@ install: install-cutads
- endif
-
- $(BDWRITE): $(BDWOBJS) $(LIBRARIES)
-- @echo g++ -o $@ $(BDWOBJS)
-- @g++ $(CFLAGS) -pthread -o $@ $(BDWOBJS) $(LIBS)
-+ @echo $(CXX) -o $@ $(BDWOBJS)
-+ @$(CXX) $(CFLAGS) -pthread -o $@ $(BDWOBJS) $(LIBS)
- $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(BDWRITE) $(BDWRITE).debuginfo)
-- $(if $(findstring -ggdb,$(CFLAGS)),,strip $(BDWRITE))
-+ #$(if $(findstring -ggdb,$(CFLAGS)),,strip $(BDWRITE))
-
- install-bdwrite:
- cp -av $(OBJDIR)/bdwrite $(BINDIR)/.
- install: install-bdwrite
-
- ydiff: ydiff.C $(LIBRARIES)
-- @echo g++ -o $@ ydiff.C
-- @g++ $(CFLAGS) ydiff.C -o $@ $(LIBS)
-+ @echo $(CXX) -o $@ ydiff.C
-+ @$(CXX) $(CFLAGS) ydiff.C -o $@ $(LIBS)
-
- clean:
- rm -rf $(OBJDIR)
-@@ -585,7 +587,7 @@ $(OBJDIR)/lv2ui: $(LV2OBJS)
- @echo $(CXX) \`cat $(OBJDIR)/c_flags\` $^ -o $@
- @$(CXX) `cat $(OBJDIR)/c_flags` $^ -o $@ $(LIBS) $(GTK2_LIBS)
- $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(LV2UI) $(LV2UI).debuginfo)
-- $(if $(findstring -ggdb,$(CFLAGS)),,strip $(LV2UI))
-+ #$(if $(findstring -ggdb,$(CFLAGS)),,strip $(LV2UI))
-
- .PHONY: lv2ui
- lv2ui: $(LV2UI)
diff --git a/cinelerra-5.1/cinelerra/bdcreate.C b/cinelerra-5.1/cinelerra/bdcreate.C
-index 27f728ad..9215090d 100644
+index e18ebee..eade28a 100644
--- a/cinelerra-5.1/cinelerra/bdcreate.C
+++ b/cinelerra-5.1/cinelerra/bdcreate.C
-@@ -25,8 +25,8 @@
+@@ -24,8 +24,8 @@
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
// BD Creation
diff --git a/cinelerra-5.1/cinelerra/bdwrite.C b/cinelerra-5.1/cinelerra/bdwrite.C
-index 6a2b4ca3..78cf9bef 100644
+index 6a2b4ca..78cf9be 100644
--- a/cinelerra-5.1/cinelerra/bdwrite.C
+++ b/cinelerra-5.1/cinelerra/bdwrite.C
@@ -38,7 +38,7 @@
#include <sys/stat.h>
// work arounds (centos)
diff --git a/cinelerra-5.1/cinelerra/cutads.C b/cinelerra-5.1/cinelerra/cutads.C
-index ac58d56a..f6690cf2 100644
+index ac58d56..f6690cf 100644
--- a/cinelerra-5.1/cinelerra/cutads.C
+++ b/cinelerra-5.1/cinelerra/cutads.C
@@ -23,14 +23,6 @@
class low_priority { public:
low_priority() { set_priority(19, IOPRIO_CLASS_IDLE); }
diff --git a/cinelerra-5.1/cinelerra/dvdcreate.C b/cinelerra-5.1/cinelerra/dvdcreate.C
-index 1014baf5..f38094e9 100644
+index f4587fc..dd0c883 100644
--- a/cinelerra-5.1/cinelerra/dvdcreate.C
+++ b/cinelerra-5.1/cinelerra/dvdcreate.C
@@ -24,8 +24,8 @@
#define DVD_PAL_4x3 0
diff --git a/cinelerra-5.1/cinelerra/file.C b/cinelerra-5.1/cinelerra/file.C
-index 13e1b457..9cc2f116 100644
+index f9571c9..d1197c3 100644
--- a/cinelerra-5.1/cinelerra/file.C
+++ b/cinelerra-5.1/cinelerra/file.C
-@@ -1594,7 +1594,10 @@ int File::record_fd()
+@@ -1589,7 +1589,10 @@ int File::record_fd()
void File::get_exe_path(char *result, char *bnp)
{
// Get executable path, basename
result[len] = 0;
char *ptr = strrchr(result, '/');
diff --git a/cinelerra-5.1/cinelerra/indexfile.C b/cinelerra-5.1/cinelerra/indexfile.C
-index 3d21d2af..f3064199 100644
+index 87b8853..ad75d24 100644
--- a/cinelerra-5.1/cinelerra/indexfile.C
+++ b/cinelerra-5.1/cinelerra/indexfile.C
-@@ -70,7 +70,7 @@
+@@ -70,9 +70,7 @@
#include <sys/types.h>
#include <sys/stat.h>
+-#ifdef HAVE_ISOFS
-#include <linux/iso_fs.h>
+-#endif
+#include <isofs/cd9660/iso.h>
// check for isofs volume_id for dvd/cdrom
diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac
-index 1157b0a3..8c5ba61a 100644
+index ee75006..071d8e7 100644
--- a/cinelerra-5.1/configure.ac
+++ b/cinelerra-5.1/configure.ac
-@@ -16,8 +16,18 @@ CFG_CFLAGS+=" -Wno-unused-result"
+@@ -18,8 +18,18 @@ CFG_CFLAGS+=" -Wno-unused-result"
CFG_CFLAGS+=" -Wno-stringop-overflow"
CFG_CFLAGS+=" -Wno-format-truncation"
CFG_CFLAGS+=" -Wno-format-overflow"
CFG_CFLAGS+=" -D__STDC_CONSTANT_MACROS"
CFG_CFLAGS+=" -D__STDC_LIMIT_MACROS"
CFG_CFLAGS+=" -DPNG_SKIP_SETJMP_CHECK=1"
-@@ -127,7 +137,7 @@ AC_SUBST(MAK_INSTALLS)
+@@ -140,7 +150,7 @@ AC_SUBST(MAK_INSTALLS)
AC_SUBST(MAK_UNINSTALLS)
if test "x$WANT_JOBS" = "xauto"; then
WANT_JOBS=`expr $CPUS + $CPUS / 2 + 2`
fi
+@@ -1132,6 +1142,11 @@ if test "x$CFG_LDFLAGS" != "x" ; then
+ echo ""
+ fi
+
++if test "x$BSD" != "x" ; then
++ echo "CFLAGS += -DNO_PRCTL"
++ echo "CFLAGS += -DNO_TID"
++ echo "CFLAGS += -DNO_GDB"
++fi
+ if test "x$CYGWIN" != "x" ; then
+ echo 'FF_PATH ?= /usr/local'
+ echo 'LDFLAGS += -L$(FF_PATH)/lib'
+@@ -1147,11 +1162,6 @@ if test "x$CYGWIN" != "x" ; then
+ else
+ LDFLAGS+=" -z noexecstack"
+ fi
+-if test "x$BSD" != "x" ; then
+- echo "CFLAGS += -DNO_PRCTL"
+- echo "CFLAGS += -DNO_TID"
+- echo "CFLAGS += -DNO_GDB"
+-fi
+
+ if test "x$WANT_X264_HIDEPTH" = "xyes" ; then
+ X264_CFG_PARAMS="$X264_CFG_PARAMS --bit-depth=10"
diff --git a/cinelerra-5.1/db/tdb.h b/cinelerra-5.1/db/tdb.h
-index 8ee88002..9a17091e 100644
+index 8ee8800..9a17091 100644
--- a/cinelerra-5.1/db/tdb.h
+++ b/cinelerra-5.1/db/tdb.h
@@ -32,7 +32,7 @@ inline void operator delete[](void *t,size_t n) { free(t); }
#ifdef ZFUTEX
#include <unistd.h>
#include <endian.h>
+diff --git a/cinelerra-5.1/guicast/Makefile b/cinelerra-5.1/guicast/Makefile
+index 201c5a4..1c3822f 100644
+--- a/cinelerra-5.1/guicast/Makefile
++++ b/cinelerra-5.1/guicast/Makefile
+@@ -95,7 +95,7 @@ $(shell echo $(OBJS) > $(OBJDIR)/objs)
+ all: $(OUTPUT) $(UTILS)
+
+ $(BCXFER): bccmdl.py bcxfer.C bcxfer.h
+- python < ./bccmdl.py
++ python2.7 < ./bccmdl.py
+ +$(MAKE) -C xfer
+
+ $(OUTPUT): $(OBJS) $(BCXFER)
diff --git a/cinelerra-5.1/guicast/bclistbox.h b/cinelerra-5.1/guicast/bclistbox.h
-index f5994d53..c73169bb 100644
+index ce34ffc..0e38913 100644
--- a/cinelerra-5.1/guicast/bclistbox.h
+++ b/cinelerra-5.1/guicast/bclistbox.h
-@@ -185,7 +185,9 @@ public:
+@@ -187,7 +187,9 @@ public:
// take_focus - used by the suggestion box to keep it from taking focus from the
// textbox
int deactivate();
int is_active();
diff --git a/cinelerra-5.1/guicast/bcpan.h b/cinelerra-5.1/guicast/bcpan.h
-index 40f5971f..73d47586 100644
+index 40f5971..73d4758 100644
--- a/cinelerra-5.1/guicast/bcpan.h
+++ b/cinelerra-5.1/guicast/bcpan.h
@@ -93,7 +93,8 @@ public:
float* get_values();
diff --git a/cinelerra-5.1/guicast/bcresources.C b/cinelerra-5.1/guicast/bcresources.C
-index 1e927303..165883de 100644
+index 1d52855..c8d93bd 100644
--- a/cinelerra-5.1/guicast/bcresources.C
+++ b/cinelerra-5.1/guicast/bcresources.C
-@@ -38,6 +38,7 @@
+@@ -39,6 +39,7 @@
#include <iconv.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <X11/extensions/XShm.h>
#include <fontconfig/fontconfig.h>
#include <fontconfig/fcfreetype.h>
-@@ -297,23 +298,12 @@ int BC_Resources::machine_cpus = 1;
+@@ -298,23 +299,12 @@ int BC_Resources::machine_cpus = 1;
int BC_Resources::get_machine_cpus()
{
}
void BC_Resources::new_vframes(int n, VFrame *vframes[], ...)
-@@ -695,7 +685,7 @@ new_vframes(20,default_medium_7segment,
- generic_button_margin = 15;
- draw_clock_background=1;
-
+@@ -367,8 +357,8 @@ BC_Resources::BC_Resources(float x_scale, float y_scale)
+ BC_WindowBase::resources = this;
+ synchronous = 0;
+ vframe_shm = 0;
- use_shm = -1;
+- shm_reply = 1;
+ use_shm = 0;
- shm_reply = 1;
++ shm_reply = 0;
- // Initialize
+ if( x_scale <= 0 ) x_scale = 1;
+ if( y_scale <= 0 ) y_scale = x_scale;
diff --git a/cinelerra-5.1/guicast/bcsignals.C b/cinelerra-5.1/guicast/bcsignals.C
-index ed50cfb1..f1b894ba 100644
+index ffc8a1c..b83b328 100644
--- a/cinelerra-5.1/guicast/bcsignals.C
+++ b/cinelerra-5.1/guicast/bcsignals.C
-@@ -37,9 +37,11 @@
- #include <sys/stat.h>
- #include <unistd.h>
- #include <sys/ioctl.h>
--#include <sys/prctl.h>
- #include <sys/types.h>
-
-+#define dirent64 dirent
-+#define readdir64 readdir
-+
- BC_Signals* BC_Signals::global_signals = 0;
- static int signal_done = 0;
-
-@@ -279,18 +281,6 @@ static void handle_exit(int signum)
-
- void BC_Signals::set_sighup_exit(int enable)
- {
-- if( enable ) {
--// causes SIGHUP to be generated when parent dies
-- signal(SIGHUP, handle_exit);
-- prctl(PR_SET_PDEATHSIG, SIGHUP, 0,0,0);
--// prevents ^C from signalling child when attached to gdb
-- setpgid(0, 0);
-- if( isatty(0) ) ioctl(0, TIOCNOTTY, 0);
-- }
-- else {
-- signal(SIGHUP, signal_entry);
-- prctl(PR_SET_PDEATHSIG, 0,0,0,0);
-- }
- }
-
- BC_Signals::BC_Signals()
-@@ -383,11 +373,13 @@ const char* BC_Signals::sig_to_str(int number)
+@@ -395,70 +395,72 @@ const char* BC_Signals::sig_to_str(int number)
#include <sys/wait.h>
#include "thread.h"
-+#define SC_(r)sc_##r
++#define SC_(r)mc_##r
+
#if __i386__
-#define IP eip
+-#define sigregs_t sigcontext
+#define IP SC_(eip)
++#define sigregs_t mcontext_t
+
+ static void reg_dump(FILE *fp,sigregs_t *rp)
+ {
+ fprintf(fp,"REGS:\n");
+- fprintf(fp," gs: %04x:%04x\n", rp->gs,rp->__gsh);
+- fprintf(fp," fs: %04x:%04x\n", rp->fs,rp->__fsh);
+- fprintf(fp," es: %04x:%04x\n", rp->es,rp->__esh);
+- fprintf(fp," ds: %04x:%04x\n", rp->ds,rp->__dsh);
+- fprintf(fp," edi: %14p %d\n", (void*)rp->edi,rp->edi);
+- fprintf(fp," esi: %14p %d\n", (void*)rp->esi,rp->esi);
+- fprintf(fp," ebp: %14p %d\n", (void*)rp->ebp,rp->ebp);
+- fprintf(fp," esp: %14p %d\n", (void*)rp->esp,rp->esp);
+- fprintf(fp," ebx: %14p %d\n", (void*)rp->ebx,rp->ebx);
+- fprintf(fp," edx: %14p %d\n", (void*)rp->edx,rp->edx);
+- fprintf(fp," ecx: %14p %d\n", (void*)rp->ecx,rp->ecx);
+- fprintf(fp," eax: %14p %d\n", (void*)rp->eax,rp->eax);
+- fprintf(fp," trapno: %14p %d\n", (void*)rp->trapno,rp->trapno);
+- fprintf(fp," err: %14p %d\n", (void*)rp->err,rp->err);
+- fprintf(fp," eip: %14p %d\n", (void*)rp->eip,rp->eip);
+- fprintf(fp," cs: %04xd : %04x\n", rp->cs,rp->__csh);
+- fprintf(fp," eflags: %14p %d\n", (void*)rp->eflags,rp->eflags);
+- fprintf(fp," esp_at_signal: %p %d\n", (void*)rp->esp_at_signal,rp->esp_at_signal);
+- fprintf(fp," ss: %04xd : %04x\n", rp->ss,rp->__ssh);
+- fprintf(fp," oldmask: %14p %d\n", (void*)rp->oldmask,rp->oldmask);
+- fprintf(fp," cr2: %14p %d\n", (void*)rp->cr2,rp->cr2);
++ fprintf(fp," gs: %04x:%04x\n", rp->mc_gs,rp->mc_gs);
++ fprintf(fp," fs: %04x:%04x\n", rp->mc_fs,rp->mc_fs);
++ fprintf(fp," es: %04x:%04x\n", rp->mc_es,rp->mc_es);
++ fprintf(fp," ds: %04x:%04x\n", rp->mc_ds,rp->mc_ds);
++ fprintf(fp," edi: %14p %d\n", (void*)rp->mc_edi,rp->mc_edi);
++ fprintf(fp," esi: %14p %d\n", (void*)rp->mc_esi,rp->mc_esi);
++ fprintf(fp," ebp: %14p %d\n", (void*)rp->mc_ebp,rp->mc_ebp);
++ fprintf(fp," esp: %14p %d\n", (void*)rp->mc_esp,rp->mc_esp);
++ fprintf(fp," ebx: %14p %d\n", (void*)rp->mc_ebx,rp->mc_ebx);
++ fprintf(fp," edx: %14p %d\n", (void*)rp->mc_edx,rp->mc_edx);
++ fprintf(fp," ecx: %14p %d\n", (void*)rp->mc_ecx,rp->mc_ecx);
++ fprintf(fp," eax: %14p %d\n", (void*)rp->mc_eax,rp->mc_eax);
++ fprintf(fp," trapno: %14p %d\n", (void*)rp->mc_trapno,rp->mc_trapno);
++ fprintf(fp," err: %14p %d\n", (void*)rp->mc_err,rp->mc_err);
++ fprintf(fp," eip: %14p %d\n", (void*)rp->mc_eip,rp->mc_eip);
++ fprintf(fp," cs: %04x\n", (unsigned)rp->mc_cs);
++ fprintf(fp," eflags: %14p %d\n", (void*)rp->mc_eflags,rp->mc_eflags);
++ fprintf(fp," esp_at_signal: %p %d\n", (void*)rp->mc_esp_at_signal,rp->mc_esp_at_signal);
++ fprintf(fp," ss: %04xd : %04x\n", rp->mc_ss,rp->mc_ss);
++// fprintf(fp," oldmask: %14p %d\n", (void*)rp->mc_oldmask,rp->mc_oldmask);
++// fprintf(fp," cr2: %14p %d\n", (void*)rp->mc_cr2,rp->mc_cr2);
+ fprintf(fp,"\n");
+ }
#endif
+
#if __x86_64__
-#define IP rip
+-#define sigregs_t sigcontext
+#define IP SC_(rip)
++#define sigregs_t mcontext_t
+
+ static void reg_dump(FILE *fp,sigregs_t *rp)
+ {
+ fprintf(fp,"REGS:\n");
+- fprintf(fp," r8: %20p %jd\n", (void*)rp->r8,rp->r8);
+- fprintf(fp," r9: %20p %jd\n", (void*)rp->r9,rp->r9);
+- fprintf(fp," r10: %20p %jd\n", (void*)rp->r10,rp->r10);
+- fprintf(fp," r11: %20p %jd\n", (void*)rp->r11,rp->r11);
+- fprintf(fp," r12: %20p %jd\n", (void*)rp->r12,rp->r12);
+- fprintf(fp," r13: %20p %jd\n", (void*)rp->r13,rp->r13);
+- fprintf(fp," r14: %20p %jd\n", (void*)rp->r14,rp->r14);
+- fprintf(fp," r15: %20p %jd\n", (void*)rp->r15,rp->r15);
+- fprintf(fp," rdi: %20p %jd\n", (void*)rp->rdi,rp->rdi);
+- fprintf(fp," rsi: %20p %jd\n", (void*)rp->rsi,rp->rsi);
+- fprintf(fp," rbp: %20p %jd\n", (void*)rp->rbp,rp->rbp);
+- fprintf(fp," rbx: %20p %jd\n", (void*)rp->rbx,rp->rbx);
+- fprintf(fp," rdx: %20p %jd\n", (void*)rp->rdx,rp->rdx);
+- fprintf(fp," rax: %20p %jd\n", (void*)rp->rax,rp->rax);
+- fprintf(fp," rcx: %20p %jd\n", (void*)rp->rcx,rp->rcx);
+- fprintf(fp," rsp: %20p %jd\n", (void*)rp->rsp,rp->rsp);
+- fprintf(fp," rip: %20p %jd\n", (void*)rp->rip,rp->rip);
+- fprintf(fp," eflags: %14p %jd\n", (void*)rp->eflags,rp->eflags);
+- fprintf(fp," cs: %04x\n", rp->cs);
+- fprintf(fp," gs: %04x\n", rp->gs);
+- fprintf(fp," fs: %04x\n", rp->fs);
+- fprintf(fp," err: %20p %jd\n", (void*)rp->err,rp->err);
+- fprintf(fp," trapno: %20p %jd\n", (void*)rp->trapno,rp->trapno);
+- fprintf(fp," oldmask: %20p %jd\n", (void*)rp->oldmask,rp->oldmask);
+- fprintf(fp," cr2: %20p %jd\n", (void*)rp->cr2,rp->cr2);
++ fprintf(fp," r8: %20p %jd\n", (void*)rp->mc_r8,rp->mc_r8);
++ fprintf(fp," r9: %20p %jd\n", (void*)rp->mc_r9,rp->mc_r9);
++ fprintf(fp," r10: %20p %jd\n", (void*)rp->mc_r10,rp->mc_r10);
++ fprintf(fp," r11: %20p %jd\n", (void*)rp->mc_r11,rp->mc_r11);
++ fprintf(fp," r12: %20p %jd\n", (void*)rp->mc_r12,rp->mc_r12);
++ fprintf(fp," r13: %20p %jd\n", (void*)rp->mc_r13,rp->mc_r13);
++ fprintf(fp," r14: %20p %jd\n", (void*)rp->mc_r14,rp->mc_r14);
++ fprintf(fp," r15: %20p %jd\n", (void*)rp->mc_r15,rp->mc_r15);
++ fprintf(fp," rdi: %20p %jd\n", (void*)rp->mc_rdi,rp->mc_rdi);
++ fprintf(fp," rsi: %20p %jd\n", (void*)rp->mc_rsi,rp->mc_rsi);
++ fprintf(fp," rbp: %20p %jd\n", (void*)rp->mc_rbp,rp->mc_rbp);
++ fprintf(fp," rbx: %20p %jd\n", (void*)rp->mc_rbx,rp->mc_rbx);
++ fprintf(fp," rdx: %20p %jd\n", (void*)rp->mc_rdx,rp->mc_rdx);
++ fprintf(fp," rax: %20p %jd\n", (void*)rp->mc_rax,rp->mc_rax);
++ fprintf(fp," rcx: %20p %jd\n", (void*)rp->mc_rcx,rp->mc_rcx);
++ fprintf(fp," rsp: %20p %jd\n", (void*)rp->mc_rsp,rp->mc_rsp);
++ fprintf(fp," rip: %20p %jd\n", (void*)rp->mc_rip,rp->mc_rip);
++ fprintf(fp," eflags: %14p %u\n", (void*)((unsigned long)rp->mc_flags),rp->mc_flags);
++ fprintf(fp," cs: %04x\n", (unsigned)rp->mc_cs);
++ fprintf(fp," gs: %04x\n", (unsigned)rp->mc_gs);
++ fprintf(fp," fs: %04x\n", (unsigned)rp->mc_fs);
++ fprintf(fp," err: %20p %jd\n", (void*)rp->mc_err,rp->mc_err);
++ fprintf(fp," trapno: %20p %d\n", (void*)((unsigned long)rp->mc_trapno),rp->mc_trapno);
++// fprintf(fp," oldmask: %20p %jd\n", (void*)rp->mc_oldmask,rp->mc_oldmask);
++// fprintf(fp," cr2: %20p %jd\n", (void*)rp->mc_cr2,rp->mc_cr2);
+ fprintf(fp,"\n");
+ }
+
+@@ -492,7 +494,7 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
+ void *ip = 0;
+ #ifndef NO_CTX
+ ucontext_t *uc = (ucontext_t *)sc;
+- struct sigregs_t *c = (struct sigregs_t *)&uc->uc_mcontext;
++ sigregs_t *c = (sigregs_t *)&uc->uc_mcontext;
+ ip = (void *)c->IP;
#endif
- #ifndef IP
- #error gotta have IP
-@@ -473,26 +465,5 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
-
- fprintf(fp,"\n\n");
- if( fp != stdout ) fclose(fp);
-- char cmd[1024], *cp = cmd;
-- cp += sprintf(cp, "exec gdb /proc/%d/exe -p %d --batch --quiet "
-- "-ex \"thread apply all info registers\" "
-- "-ex \"thread apply all bt full\" "
-- "-ex \"quit\"", pid, pid);
-- if( fp != stdout )
-- cp += sprintf(cp," >> \"%s\"", fn);
-- cp += sprintf(cp," 2>&1");
--//printf("handle_dump:: pid=%d, cmd='%s' fn='%s'\n",pid,cmd,fn);
-- pid = vfork();
-- if( pid < 0 ) {
-- fprintf(stderr,"** can't start gdb, dump abondoned\n");
-- return;
-- }
-- if( pid > 0 ) {
-- waitpid(pid,0,0);
-- fprintf(stderr,"** dump complete\n");
-- return;
-- }
-- char *const argv[4] = { (char*) "/bin/sh", (char*) "-c", cmd, 0 };
-- execvp(argv[0], &argv[0]);
+ fprintf(stderr,"** %s at %p in pid %d, tid %d\n",
+diff --git a/cinelerra-5.1/guicast/bctrace.C b/cinelerra-5.1/guicast/bctrace.C
+index 7e45392..2d08b46 100644
+--- a/cinelerra-5.1/guicast/bctrace.C
++++ b/cinelerra-5.1/guicast/bctrace.C
+@@ -309,7 +309,7 @@ void BC_Trace::dump_traces(FILE *fp)
+ }
}
-diff --git a/cinelerra-5.1/guicast/filesystem.C b/cinelerra-5.1/guicast/filesystem.C
-index ebc2007d..9d6452cb 100644
---- a/cinelerra-5.1/guicast/filesystem.C
-+++ b/cinelerra-5.1/guicast/filesystem.C
-@@ -33,6 +33,8 @@
- #include <unistd.h>
- #include <utime.h>
+-void trace_info::set_owner() { owner = pthread_self(); }
++void trace_info::set_owner() { owner = (unsigned long)pthread_self(); }
+ void trace_info::unset_owner() { owner = 0; }
+
+ void BC_Trace::dump_locks(FILE *fp)
+@@ -322,7 +322,7 @@ void BC_Trace::dump_locks(FILE *fp)
+ fprintf(fp," %p %s, %s %p%s",
+ p->info, p->title, p->loc,
+ (void*)p->tid, p->is_owner ? " *" : "");
+- if( p->info->owner && p->info->owner != p->tid )
++ if( p->info->owner && p->info->owner != (unsigned long)p->tid )
+ fprintf(fp," %p", (void*)p->info->owner);
+ fprintf(fp,"\n");
+ }
+diff --git a/cinelerra-5.1/guicast/filesystem.h b/cinelerra-5.1/guicast/filesystem.h
+index c976135..5613702 100644
+--- a/cinelerra-5.1/guicast/filesystem.h
++++ b/cinelerra-5.1/guicast/filesystem.h
+@@ -26,6 +26,9 @@
+ #include "bcwindowbase.inc"
+ #include "sizes.h"
+#define dirent64 dirent
+#define readdir64 readdir
-
- #include "filesystem.h"
-
++
+ class FileItem
+ {
+ public:
diff --git a/cinelerra-5.1/guicast/thread.C b/cinelerra-5.1/guicast/thread.C
-index dff53e61..321ab4fc 100644
+index 50b52a4..321ab4f 100644
--- a/cinelerra-5.1/guicast/thread.C
+++ b/cinelerra-5.1/guicast/thread.C
@@ -55,13 +55,6 @@ void* Thread::entrypoint(void *parameters)
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
thread->cancel_enabled = false;
--// Set realtime here seince it doesn't work in start
+-// Set realtime here since it doesn't work in start
- if( thread->realtime && getuid() == 0 ) {
- struct sched_param param = { sched_priority : 1 };
- if(pthread_setschedparam(thread->tid, SCHED_RR, ¶m) < 0)
thread->run();
thread->finished = true;
if( !thread->synchronous ) {
-diff --git a/cinelerra-5.1/guicast/thread.h b/cinelerra-5.1/guicast/thread.h
-index 216ecd2b..8ebec237 100644
---- a/cinelerra-5.1/guicast/thread.h
-+++ b/cinelerra-5.1/guicast/thread.h
-@@ -27,7 +27,7 @@
- #include <unistd.h>
- #include <sys/syscall.h>
-
--static inline int gettid() { return syscall(SYS_gettid, 0, 0, 0); }
-+static inline long gettid() { return (long)pthread_self(); }
-
- // The thread does not autodelete by default.
- // If autodelete is 1 the thread autodeletes.
diff --git a/cinelerra-5.1/plugins/Makefile b/cinelerra-5.1/plugins/Makefile
-index 6ed357c7..56081181 100644
+index e63682d..072653b 100644
--- a/cinelerra-5.1/plugins/Makefile
+++ b/cinelerra-5.1/plugins/Makefile
-@@ -31,7 +31,6 @@ DIRS = $(OPENCV_OBJS) \
+@@ -36,7 +36,6 @@ DIRS = $(OPENCV_OBJS) \
brightness \
burn \
C41 \
- cdripper \
+ chorus \
chromakey \
chromakeyhsv \
- color3way \
-@@ -161,6 +160,8 @@ DIRS = $(OPENCV_OBJS) \
+@@ -177,6 +176,8 @@ DIRS = $(OPENCV_OBJS) \
# denoisemjpeg \
# duplicate
# vocoder \
PLUGIN_DIR = $(BINDIR)/plugins
DATA = $(PLUGIN_DIR)/fonts $(PLUGIN_DIR)/shapes
diff --git a/cinelerra-5.1/plugins/titler/titler.C b/cinelerra-5.1/plugins/titler/titler.C
-index fefbbdb1..045e96d4 100644
+index 0fc6669..68197ab 100644
--- a/cinelerra-5.1/plugins/titler/titler.C
+++ b/cinelerra-5.1/plugins/titler/titler.C
@@ -57,8 +57,7 @@