diff --git a/cinelerra-5.1/cinelerra/Makefile b/cinelerra-5.1/cinelerra/Makefile index 81d1acee..b3d519ad 100644 --- a/cinelerra-5.1/cinelerra/Makefile +++ b/cinelerra-5.1/cinelerra/Makefile @@ -396,7 +396,7 @@ OBJS += \ endif ifneq ($(WANT_CIN_3RDPARTY),no) OBJS += \ - $(OBJDIR)/fileac3.o \ +# $(OBJDIR)/fileac3.o \ endif diff --git a/cinelerra-5.1/cinelerra/ffmpeg.C b/cinelerra-5.1/cinelerra/ffmpeg.C index df39763c..c32ae50e 100644 --- a/cinelerra-5.1/cinelerra/ffmpeg.C +++ b/cinelerra-5.1/cinelerra/ffmpeg.C @@ -29,7 +29,7 @@ #include "ffmpeg.h" #include "indexfile.h" #include "interlacemodes.h" -#include "libdv.h" +//#include "libdv.h" #include "libmjpeg.h" #include "mainerror.h" #include "mwindow.h" diff --git a/cinelerra-5.1/cinelerra/fileffmpeg.C b/cinelerra-5.1/cinelerra/fileffmpeg.C index a71d692a..853e5839 100644 --- a/cinelerra-5.1/cinelerra/fileffmpeg.C +++ b/cinelerra-5.1/cinelerra/fileffmpeg.C @@ -159,7 +159,7 @@ void FFMpegPixelFormat::update_formats() pixfmts.remove_all_objects(); char video_codec[BCSTRLEN]; video_codec[0] = 0; const char *vcodec = vid_config->asset->vcodec; - AVCodec *av_codec = !FFMPEG::get_codec(video_codec, "video", vcodec) ? + const AVCodec *av_codec = !FFMPEG::get_codec(video_codec, "video", vcodec) ? avcodec_find_encoder_by_name(video_codec) : 0; const AVPixelFormat *pix_fmts = av_codec ? av_codec->pix_fmts : 0; if( pix_fmts ) { @@ -190,7 +190,7 @@ void FFMpegSampleFormat::update_formats() samplefmts.remove_all_objects(); char audio_codec[BCSTRLEN]; audio_codec[0] = 0; const char *acodec = aud_config->asset->acodec; - AVCodec *av_codec = !FFMPEG::get_codec(audio_codec, "audio", acodec) ? + const AVCodec *av_codec = !FFMPEG::get_codec(audio_codec, "audio", acodec) ? avcodec_find_encoder_by_name(audio_codec) : 0; const AVSampleFormat *sample_fmts = av_codec ? av_codec->sample_fmts : 0; if( sample_fmts ) { @@ -345,7 +345,7 @@ int FileFFMPEG::open_file(int rd, int wr) asset->aspect_ratio = ff->ff_aspect_ratio(0); if (!asset->interlace_mode) asset->interlace_mode = ff->ff_interlace(0); if ( ff->ff_video_frames(0) > 1 ) { -// ff->video_probe(1); + ff->video_probe(1); if (!asset->interlace_mode && (ff->interlace_from_codec) ) asset->interlace_mode = ff->video_probe(1); } if( !asset->layers ) asset->layers = video_layers; @@ -1844,7 +1844,7 @@ int FFOptionsViewAudio::handle_event() const char *name = asset->acodec; char audio_format[BCSTRLEN]; audio_format[0] = 0; char audio_codec[BCSTRLEN]; audio_codec[0] = 0; - AVCodec *codec = !ret && + const AVCodec *codec = !ret && !FFMPEG::get_format(audio_format, "audio", name) && !FFMPEG::get_codec(audio_codec, "audio", name) ? avcodec_find_encoder_by_name(audio_codec) : 0; @@ -1882,7 +1882,7 @@ int FFOptionsViewVideo::handle_event() const char *name = asset->vcodec; char video_format[BCSTRLEN]; video_format[0] = 0; char video_codec[BCSTRLEN]; video_codec[0] = 0; - AVCodec *codec = !ret && + const AVCodec *codec = !ret && !FFMPEG::get_format(video_format, "video", name) && !FFMPEG::get_codec(video_codec, "video", name) ? avcodec_find_encoder_by_name(video_codec) : 0; diff --git a/cinelerra-5.1/cinelerra/record.C b/cinelerra-5.1/cinelerra/record.C index ad293f7b..17a75302 100644 --- a/cinelerra-5.1/cinelerra/record.C +++ b/cinelerra-5.1/cinelerra/record.C @@ -46,7 +46,7 @@ #include "keys.h" #include "language.h" #include "localsession.h" -#include "libdv.h" +//#include "libdv.h" #include "libmjpeg.h" #include "libzmpeg3.h" #include "mainmenu.h" @@ -217,7 +217,7 @@ int Record::load_defaults() break; case CAPTURE_FIREWIRE: case CAPTURE_IEC61883: - vcodec = CODEC_TAG_DVSD; + //vcodec = CODEC_TAG_DVSD; break; } if( vcodec ) diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac index ceddac2a..f28120c1 100644 --- a/cinelerra-5.1/configure.ac +++ b/cinelerra-5.1/configure.ac @@ -1,11 +1,11 @@ -AC_PREREQ([2.69]) -AC_INIT([cinelerra], [5.1], [mail@lists.cinelerra-gg.org]) +AC_PREREQ([2.71]) +AC_INIT([cinelerra],[5.1],[mail@lists.cinelerra-gg.org]) AM_INIT_AUTOMAKE([foreign]) AM_PROG_AS -AC_LANG_CPLUSPLUS -AC_LANG_C +AC_LANG([C++]) +AC_LANG([C]) AC_PROG_CXX CFG_CFLAGS+=" -fno-omit-frame-pointer -fno-math-errno -fno-signed-zeros" @@ -24,14 +24,15 @@ CFG_CFLAGS+=" -D__STDC_CONSTANT_MACROS" CFG_CFLAGS+=" -D__STDC_LIMIT_MACROS" CFG_CFLAGS+=" -DPNG_SKIP_SETJMP_CHECK=1" CFG_CFLAGS+=" -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" -CFG_CFLAGS+=" -I/usr/include -I/usr/local/include" +# CFG_CFLAGS+=" -I/usr/include -I/usr/local/include" +CFG_CFLAGS+=" -I/data/data/com.termux/files/usr/include/freetype2" CFG_CFLAGS+=" -I/usr/include/freetype2 -I/usr/local/include/freetype2" -CFG_CFLAGS+=" -I/usr/include/uuid -I/usr/local/include/uuid" +CFG_CFLAGS+=" -I/data/data/com.termux/files/usr/include/uuid -I/usr/local/include/uuid" CFG_CFLAGS+=" -I/usr/include/mjpegtools -I/usr/local/include/mjpegtools" AC_DEFUN([CHECK_WITH], [ AC_ARG_WITH([$1], - AC_HELP_STRING([--with-[$1]], [$2 ($4)]), + AS_HELP_STRING([--with-[$1]],[$2 ($4)]), [WANT_$3=$withval], [WANT_$3='$4']) AC_SUBST([WANT_$3]) ]) @@ -64,6 +65,45 @@ CHECK_WITH([nv],[nvenc/nvdec ffnvcodec api],[NV],[yes]) CHECK_WITH([cuda],[nv cuda plugins],[CUDA],[auto]) CHECK_WITH([clang],[use clang instead of gcc/g++],[CLANG],[no]) +# Checks for header files. +AC_PATH_X +AC_CHECK_HEADERS([arpa/inet.h fcntl.h fenv.h inttypes.h libintl.h malloc.h mntent.h netdb.h netinet/in.h stdint.h strings.h sys/file.h sys/ioctl.h sys/socket.h sys/statfs.h sys/time.h unistd.h utime.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_CHECK_HEADER_STDBOOL +AC_C_INLINE +AC_TYPE_INT16_T +AC_TYPE_INT32_T +AC_TYPE_INT64_T +AC_TYPE_INT8_T +AC_TYPE_OFF_T +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T +AC_CHECK_MEMBERS([struct stat.st_blksize]) +AC_STRUCT_ST_BLOCKS +AC_CHECK_MEMBERS([struct stat.st_rdev]) +AC_TYPE_UINT16_T +AC_TYPE_UINT32_T +AC_TYPE_UINT64_T +AC_TYPE_UINT8_T + +# Checks for library functions. +AC_FUNC_ALLOCA +AC_FUNC_ERROR_AT_LINE +AC_FUNC_FORK +AC_FUNC_FSEEKO +AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK +AC_FUNC_MALLOC +AC_FUNC_MKTIME +AC_FUNC_MMAP +AC_FUNC_REALLOC +AC_FUNC_STRERROR_R +AC_FUNC_STRNLEN +AC_FUNC_STRTOD +AC_CHECK_FUNCS([atexit bzero dup2 endpwent floor ftruncate getcwd gethostbyname gettimeofday inet_ntoa localtime_r memmove memset mkdir mkfifo modf munmap nl_langinfo pow putenv realpath rint rmdir select setenv setlocale socket sqrt strcasecmp strchr strdup strerror strncasecmp strrchr strstr strtol strtoul tzset uname utime]) + + if test "x$WANT_LV2" != "xno"; then GTK2_LIBS=`pkg-config --libs gtk+-2.0` AC_CHECK_LIB([m], [gtk_init], [HAVE_gtk=yes], [HAVE_gtk=no], [$GTK2_LIBS]) @@ -153,7 +193,7 @@ inc_$1="$4" AC_DEFUN([PKG_3RD],[ AC_ARG_ENABLE([$1], - AC_HELP_STRING([--enable-$1],[build $1 ($2)]), + AS_HELP_STRING([--enable-$1],[build $1 ($2)]), [PKG_$1=$enableval], [PKG_$1=$2]) PKG_DEF([$1],[$3],[$4],[$5]) ]) @@ -432,7 +472,7 @@ AC_SUBST(STATIC_PKGS) AC_DEFUN([CHECK_ENABLE], [ AC_ARG_ENABLE([$1], - AC_HELP_STRING([--enable-[$1]], [$3 ([$4])]), + AS_HELP_STRING([--enable-[$1]],[$3 ([$4])]), [WANT_$2=$enableval], [WANT_$2=[$4]]) ]) @@ -615,7 +655,7 @@ AC_DEFUN([CHECK_WANT], [ RESULT=yes # WANT_$1 AC_ARG_WITH(m4_tolower([$1]), - AC_HELP_STRING([m4_join([-],[--with],m4_tolower([$1]))], [$3] (auto)), + AS_HELP_STRING([m4_join([-],[--with],m4_tolower([$1]))],[$3 (auto)]), [WANT_$1=$withval],[WANT_$1=$2]) m4_quote($4) if test "x$WANT_$1" = "xauto" ; then @@ -821,14 +861,14 @@ HAVE_ilmbase=no \ OBJDIR=`uname -m` AC_SUBST(OBJDIR) -echo "AC_HELP_STRING([Reason],[Package])" -echo "AC_HELP_STRING([------],[-------])" +echo "AS_HELP_STRING([Reason],[Package])" +echo "AS_HELP_STRING([------],[-------])" AC_DEFUN([PKG_DISABLED],[ PKG_$1="no" BUILD_$1=0 AC_SUBST(BUILD_$1) - echo "AC_HELP_STRING([disabled],[$1])" + echo "AS_HELP_STRING([disabled],[$1])" ]) AC_DEFUN([PKG_SHARED],[ PKG_$1="shared" @@ -843,7 +883,7 @@ AC_DEFUN([PKG_STATIC],[ BUILD_$1=1 AC_SUBST(BUILD_$1) STATIC_BLDS+=" [$1]" - echo "AC_HELP_STRING([$2],[$1])" + echo "AS_HELP_STRING([$2],[$1])" fi ]) @@ -937,11 +977,11 @@ fi AC_SUBST(STATIC_BLDS) for f in $SHARED_LIBS; do - echo "AC_HELP_STRING([shared],[$f])" + echo "AS_HELP_STRING([shared],[$f])" done AC_SUBST(SHARED_LIBS) for f in $SYSTEM_LIBS; do - echo "AC_HELP_STRING([system],[$f])" + echo "AS_HELP_STRING([system],[$f])" done AC_SUBST(SYSTEM_LIBS) diff --git a/cinelerra-5.1/db/tdb.h b/cinelerra-5.1/db/tdb.h index 8ee88002..d3f0a51a 100644 --- a/cinelerra-5.1/db/tdb.h +++ b/cinelerra-5.1/db/tdb.h @@ -223,32 +223,32 @@ public: pageId id; int offset; }; - +#if 1 static void zincr(volatile int &v) { /* atomic(++v) */ - asm ( " lock incl %1\n" : "+m" (v) :: ); + //asm ( " lock incl %1\n" : "+m" (v) :: ); } static void zdecr(volatile int &v) { /* atomic(--v) */ - asm ( " lock decl %1\n" : "+m" (v) :: ); + //asm ( " lock decl %1\n" : "+m" (v) :: ); } static char tdecr(volatile int &v) { char ret; /* ret = atomic(--loc >= 0 ? 1 : 0) */ - asm ( " lock decl %1\n setge %0\n" : "=r" (ret), "+m" (v) :: ); + //asm ( " lock decl %1\n setge %0\n" : "=r" (ret), "+m" (v) :: ); return ret; } static char tincr(volatile int &v) { char ret; /* ret = atomic(++loc > 0 ? 1 : 0) */ - asm ( " lock incl %1\n setg %0\n" : "=r" (ret), "+m" (v) :: ); + //asm ( " lock incl %1\n setg %0\n" : "=r" (ret), "+m" (v) :: ); return ret; } static int zcmpxchg(int old, int val, volatile int &v) { int ret = old; - asm volatile( " lock\n cmpxchgl %2,%1\n" - : "+a" (ret), "+m" (v) : "r" (val) : "memory" ); + // asm volatile( " lock\n cmpxchgl %2,%1\n" + // : "+a" (ret), "+m" (v) : "r" (val) : "memory" ); return ret; } static int zxchg(int val, volatile int &v) { - asm volatile( " xchgl %0,%1\n" - : "+r" (val), "+m" (v) :: "memory" ); + //asm volatile( " xchgl %0,%1\n" + // : "+r" (val), "+m" (v) :: "memory" ); return val; } static int zadd(int n, volatile int &v) { @@ -258,8 +258,9 @@ public: return val; } static void zmfence() { - asm volatile ( " mfence\n" ::: "memory" ); + //asm volatile ( " mfence\n" ::: "memory" ); } +#endif // asm class zlock_t; class zblock_t; diff --git a/cinelerra-5.1/guicast/Makefile b/cinelerra-5.1/guicast/Makefile index cf189dea..762e7ea8 100644 --- a/cinelerra-5.1/guicast/Makefile +++ b/cinelerra-5.1/guicast/Makefile @@ -12,6 +12,16 @@ ifeq ($(OBJDIR), amd64) BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B i386 -I binary -O elf64-x86-64\"" endif +ifeq ($(OBJDIR), armv8l) +BOOTSTRAPFLAGS := -DBOOTSTRAP="\"objcopy -B arm -I binary -O elf32-littlearm\"" +endif + + + + + + + $(shell mkdir -p $(OBJDIR) ) OBJS = \ diff --git a/cinelerra-5.1/guicast/filesystem.C b/cinelerra-5.1/guicast/filesystem.C index 6017f6ea..f45b562e 100644 --- a/cinelerra-5.1/guicast/filesystem.C +++ b/cinelerra-5.1/guicast/filesystem.C @@ -536,7 +536,7 @@ int FileSystem::parse_tildas(char *new_dir) new_user[j] = new_dir[i]; } new_user[j] = 0; - +#if 0 setpwent(); while( (pw = getpwent()) != 0 ) { @@ -550,6 +550,7 @@ int FileSystem::parse_tildas(char *new_dir) } } endpwent(); +#endif return 0; } } diff --git a/cinelerra-5.1/guicast/thread.C b/cinelerra-5.1/guicast/thread.C index 50b52a47..e5874c7f 100644 --- a/cinelerra-5.1/guicast/thread.C +++ b/cinelerra-5.1/guicast/thread.C @@ -28,6 +28,7 @@ #include #include #include "thread.h" +#include "bthread.h" Thread::Thread(int synchronous, int realtime, int autodelete) @@ -102,7 +103,7 @@ void Thread::start() perror("Thread::start pthread_attr_setschedparam"); } else { - if(pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED) < 0) + //if(pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED) < 0) perror("Thread::start pthread_attr_setinheritsched"); } diff --git a/cinelerra-5.1/guicast/thread.h b/cinelerra-5.1/guicast/thread.h index 79f3e713..bec2509d 100644 --- a/cinelerra-5.1/guicast/thread.h +++ b/cinelerra-5.1/guicast/thread.h @@ -29,13 +29,15 @@ #ifndef NO_TID #include +#if defined(__GLIBC__) // 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 #else -static inline long gettid() { return (long)pthread_self(); } +//static inline long gettid() { return (long)pthread_self(); } #endif +#endif // GLIBC // The thread does not autodelete by default. // If autodelete is 1 the thread autodeletes. diff --git a/cinelerra-5.1/guicast/vframe.C b/cinelerra-5.1/guicast/vframe.C index af0e52a8..44d7f97e 100644 --- a/cinelerra-5.1/guicast/vframe.C +++ b/cinelerra-5.1/guicast/vframe.C @@ -334,7 +334,7 @@ if( memory_type != VFrame::SHARED ) shmid = -1; break; - case VFrame::SHMGET: + case VFrame::SHM_GET: if(data) shmdt(data); data = 0; @@ -510,7 +510,7 @@ int VFrame::allocate_data(unsigned char *data, int shmid, this->v_offset = v_offset; } else if( shmid >= 0 ) { - memory_type = VFrame::SHMGET; + memory_type = VFrame::SHM_GET; this->data = (unsigned char*)shmat(shmid, NULL, 0); if( this->data == (unsigned char*)-1 ) { printf("VFrame::allocate_data %d could not attach" @@ -593,7 +593,7 @@ void VFrame::set_memory(unsigned char *data, else if(shmid >= 0) { - memory_type = VFrame::SHMGET; + memory_type = VFrame::SHM_GET; this->data = (unsigned char*)shmat(shmid, NULL, 0); this->shmid = shmid; } @@ -635,7 +635,7 @@ void VFrame::set_compressed_memory(unsigned char *data, else if(shmid >= 0) { - memory_type = VFrame::SHMGET; + memory_type = VFrame::SHM_GET; this->data = (unsigned char*)shmat(shmid, NULL, 0); this->shmid = shmid; } @@ -713,7 +713,7 @@ UNBUFFER(data); else free(data); } - else if( memory_type == VFrame::SHMGET ) { + else if( memory_type == VFrame::SHM_GET ) { if( data ) shmdt(data); } diff --git a/cinelerra-5.1/guicast/vframe.h b/cinelerra-5.1/guicast/vframe.h index 589fce1c..dbaf9fba 100644 --- a/cinelerra-5.1/guicast/vframe.h +++ b/cinelerra-5.1/guicast/vframe.h @@ -31,6 +31,8 @@ #include "bccmodels.h" #include "vframe.inc" +#include + // Maximum number of prev or next effects to be pushed onto the stacks. #define MAX_STACK_ELEMENTS 255 #define SHM_MIN_SIZE 2048 @@ -417,7 +419,7 @@ private: { PRIVATE, SHARED, - SHMGET + SHM_GET }; // Data pointer is pointing to someone else's buffer.