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 7e69a50..792fe6e 100644
--- a/cinelerra-5.1/cinelerra/Makefile
+++ b/cinelerra-5.1/cinelerra/Makefile
-@@ -395,6 +395,7 @@ LIBS += -lfontconfig -lfreetype
+@@ -424,16 +424,16 @@ endif
+
+ LIBS := $(LIBRARIES)
+
+-ifneq ($(WANT_CIN_3RDPARTY),no)
+-LIBS += $(libraries)
+-else
++ifeq ($(WANT_CIN_3RDPARTY),no)
++LIBS += $(shared_libs)
++LIBS += $(system_libs)
+
+-LIBS += -lpthread -lm -lbz2 -llzma -lz -lpng -luuid
+-LIBS += -lX11 -lXau -lXdmcp -lXext -lXfixes -lXv -lXinerama
++LIBS += -lintl -liconv
+ LIBS += -lfontconfig -lfreetype
LIBS += -lavcodec -lavdevice -lavfilter -lavformat -lavresample -lavutil
LIBS += -lswresample -lswscale
LIBS += -lvpx -lwebp -lwebpmux
-+LIBS += -lintl -liconv -lexecinfo
++LIBS += -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)
+@@ -452,8 +452,12 @@ LIBS += $(if $(filter x264,$(static_pkgs)), -lx264)
+ LIBS += $(if $(filter x265,$(static_pkgs)), -lx265)
LIBS += $(if $(filter libvpx,$(static_pkgs)), -lvpx)
++else
++LIBS += $(libraries)
++#endif
++
ifneq ($(WANT_GL),no)
-LIBS += -lGL -lGLU -lGLX
+LIBS += -lGL -lGLU
endif
ifneq ($(WANT_XFT),no)
LIBS += -lXft
-@@ -476,6 +477,7 @@ LV2OBJS = \
+@@ -470,9 +474,6 @@ endif
+ ifneq ($(WANT_FIREWIRE),no)
+ LIBS += -lavc1394 -lraw1394 -liec61883 -lrom1394
+ endif
+-ifneq ($(WANT_DVB),no)
+-LIBS += -ldv
+-endif
+ ifneq ($(WANT_DL),no)
+ LIBS += -ldl
+ endif
+@@ -515,6 +516,7 @@ LV2OBJS = \
endif
CFLAGS := \
-I$(GUICAST) \
-I$(LIBZMPEG3) \
$(static_incs) \
-@@ -523,15 +525,15 @@ all: $(OUTPUT) $(CUTADS) $(BDWRITE) $(LV2UI)
+@@ -562,15 +564,15 @@ 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))
install-cutads:
cp -av $(OBJDIR)/cutads $(BINDIR)/.
-@@ -540,18 +542,18 @@ install: install-cutads
+@@ -579,18 +581,18 @@ install: install-cutads
endif
$(BDWRITE): $(BDWOBJS) $(LIBRARIES)
+ @echo $(CXX) -o $@ ydiff.C
+ @$(CXX) $(CFLAGS) ydiff.C -o $@ $(LIBS)
- clean:
- rm -rf $(OBJDIR)
-@@ -585,7 +587,7 @@ $(OBJDIR)/lv2ui: $(LV2OBJS)
+ shdmp: shdmp.C
+ @g++ $(CFLAGS) shdmp.C -o $@
+@@ -625,7 +627,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)
.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 1fec188..c9180a0 100644
--- a/cinelerra-5.1/cinelerra/file.C
+++ b/cinelerra-5.1/cinelerra/file.C
-@@ -1594,7 +1594,10 @@ int File::record_fd()
+@@ -1545,7 +1545,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 3c6fd97..61abc67 100644
--- a/cinelerra-5.1/cinelerra/indexfile.C
+++ b/cinelerra-5.1/cinelerra/indexfile.C
@@ -70,7 +70,7 @@
// check for isofs volume_id for dvd/cdrom
+diff --git a/cinelerra-5.1/cinelerra/mwindow.C b/cinelerra-5.1/cinelerra/mwindow.C
+index bd75cbb..b2bcc2f 100644
+--- a/cinelerra-5.1/cinelerra/mwindow.C
++++ b/cinelerra-5.1/cinelerra/mwindow.C
+@@ -268,7 +268,9 @@ MWindow::~MWindow()
+ delete beeper;
+ delete create_bd; create_bd = 0;
+ delete create_dvd; create_dvd = 0;
++#ifdef HAVE_SHUTTLE
+ delete shuttle; shuttle = 0;
++#endif
+ #ifdef HAVE_WINTV
+ delete wintv; wintv = 0;
+ #endif
+diff --git a/cinelerra-5.1/cinelerra/shuttle.h b/cinelerra-5.1/cinelerra/shuttle.h
+index 6793a03..06406d5 100644
+--- a/cinelerra-5.1/cinelerra/shuttle.h
++++ b/cinelerra-5.1/cinelerra/shuttle.h
+@@ -1,5 +1,6 @@
+ #ifndef __SHUTTLE_H__
+ #define __SHUTTLE_H__
++#ifdef HAVE_SHUTTLE
+
+ #include "arraylist.h"
+ #include "bcwindowbase.inc"
+@@ -20,8 +21,7 @@
+ // delay in ms before processing each XTest event
+ // CurrentTime means no delay
+ #define DELAY CurrentTime
+-// playback max speed -64x .. 64x
+-#define SHUTTLE_MAX_SPEED 64.
++
+ #define SHUTTLE_INTERFACE 0
+
+ // protocol for events from the shuttlepro HUD device
+@@ -257,3 +257,4 @@ public:
+ };
+
+ #endif
++#endif
+diff --git a/cinelerra-5.1/cinelerra/shuttle.inc b/cinelerra-5.1/cinelerra/shuttle.inc
+index 5919e9d..db6b37f 100644
+--- a/cinelerra-5.1/cinelerra/shuttle.inc
++++ b/cinelerra-5.1/cinelerra/shuttle.inc
+@@ -9,4 +9,7 @@ class Translation;
+ class Translations;
+ class Shuttle;
+
++// playback max speed -64x .. 64x
++#define SHUTTLE_MAX_SPEED 64.
++
+ #endif
diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac
-index 1157b0a3..8c5ba61a 100644
+index 9268807..a22c944 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)
+@@ -141,7 +151,7 @@ AC_SUBST(MAK_INSTALLS)
AC_SUBST(MAK_UNINSTALLS)
if test "x$WANT_JOBS" = "xauto"; then
fi
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 c68e39a..457254a 100644
--- a/cinelerra-5.1/guicast/bcsignals.C
+++ b/cinelerra-5.1/guicast/bcsignals.C
@@ -37,9 +37,11 @@
}
BC_Signals::BC_Signals()
-@@ -383,11 +373,13 @@ const char* BC_Signals::sig_to_str(int number)
+@@ -383,70 +373,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)
- #endif
- #ifndef IP
- #error gotta have IP
-@@ -473,26 +465,5 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
++#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");
+ }
+
+@@ -476,7 +468,7 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
+ // if( uid != 0 ) return;
+ ucontext_t *uc = (ucontext_t *)sc;
+ int pid = getpid(), tid = gettid();
+- struct sigregs_t *c = (struct sigregs_t *)&uc->uc_mcontext;
++ sigregs_t *c = (sigregs_t *)&uc->uc_mcontext;
+ uint8_t *ip = (uint8_t *)c->IP;
+ fprintf(stderr,"** %s at %p in pid %d, tid %d\n",
+ n==SIGSEGV? "segv" : n==SIGINT? "intr" : "trap",
+@@ -545,26 +537,5 @@ static void handle_dump(int n, siginfo_t * info, void *sc)
+ reg_dump(fp, c);
fprintf(fp,"\n\n");
if( fp != stdout ) fclose(fp);
- char cmd[1024], *cp = cmd;
- execvp(argv[0], &argv[0]);
}
+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)
+ }
+ }
+
+-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.C b/cinelerra-5.1/guicast/filesystem.C
-index ebc2007d..9d6452cb 100644
+index ebc2007..9d6452c 100644
--- a/cinelerra-5.1/guicast/filesystem.C
+++ b/cinelerra-5.1/guicast/filesystem.C
@@ -33,6 +33,8 @@
#include "filesystem.h"
diff --git a/cinelerra-5.1/guicast/thread.C b/cinelerra-5.1/guicast/thread.C
-index dff53e61..321ab4fc 100644
+index dff53e6..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->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
+index 7ad81b2..8ebec23 100644
--- a/cinelerra-5.1/guicast/thread.h
+++ b/cinelerra-5.1/guicast/thread.h
-@@ -27,7 +27,7 @@
+@@ -27,10 +27,7 @@
#include <unistd.h>
#include <sys/syscall.h>
+-// glibc >= 2.30 provides gettid() in unistd
+-#if !defined(__GLIBC_PREREQ) || !__GLIBC_PREREQ(2, 30)
-static inline int gettid() { return syscall(SYS_gettid, 0, 0, 0); }
+-#endif
+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 22bc7dd..3459bd0 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) \
+@@ -176,6 +175,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 88d6501..fe4a652 100644
--- a/cinelerra-5.1/plugins/titler/titler.C
+++ b/cinelerra-5.1/plugins/titler/titler.C
@@ -57,8 +57,7 @@