Hi Andrew,

I did manage to get a version that would read mpeg media, but I was
surprised by the number of problems.
The big one is that the compiler (on my devel sys, fc30) fails when the
code is optimized and there are
warning: no return statement in function returning non-void [-Wreturn-type]
errors... the hv code has a very high number of these warns, and they
generate bad code when optimized.

The build procedure I used:

mkdir /tmp/hv7
cd /tmp/hv7
tar -xf /root/Downloads/cinelerra-7.1-src.tar.xz
cd cinelerra-7.1/
patch -p1 < /tmp/hv7.patch
./configure
make -j12

gg

On Tue, Sep 3, 2019 at 9:53 AM Andrew Randrianasulu <[email protected]>
wrote:

> В сообщении от Sunday 27 January 2019 21:38:23 Phyllis Smith написал(а):
> > With some review by GG yesterday in hopes of finding something usable,
> here
> > is some disappointing feedback.
> >
> > *1/22/19 - Cinelerra 7.1 Exporting of H.265 video in Quicktime. ...*
> >
> > > I don't think CinGG has anything more to do with quicktime,
> >
> > The developers at ffmpeg take care of quicktime which Cin-gg takes
> > advantage of -- codecs is what they do and they are truly experts.
> > *...Seeking for MKV/WEBM files*
> >
> > > Who can explain to me what it is: "Seeking for MKV/WEBM files"?
> > >
> > Seeking is just non-sequential read, i.e. changing the position of the
> > insertion pointer on the timeline*. * BTW, as far as I was able to see,
> hv
> > has not been able to do any seeks going backwards for a long time.
> >
> > *...More bugs fixed.*
> > - After spending at least 2 hours getting 7.1 to compile in Fedora, gg
> was
> > able to actually run it but only in debug mode and then still got a SEGV
> > quite quickly.
>
>
> I wanted to see 4k and 5k themes and possibly titler changes... but ...
> I was not so lucky. It still segfaults for me at very start (32-bit build)
> and waits for something forever if started from root
>
> -------------------
> guest@slax:/dev/shm/cinelerra-7.1/bin$ ./cinelerra
> Cinelerra 7.1 (C)2019 Adam Williams
>
> Cinelerra is free software, covered by the GNU General Public License,
> and you are welcome to change it and/or distribute copies of it under
> certain conditions. There is absolutely no warranty for Cinelerra.
> *** Error in `./cinelerra': free(): invalid next size (fast): 0x0b87fe80
> ***
> ======= Backtrace: =========
> /lib/libc.so.6(+0x71220)[0xf77e1220]
> /lib/libc.so.6(+0x7ba03)[0xf77eba03]
> /lib/libc.so.6(cfree+0x58)[0xf77f0568]
> ./cinelerra(_ZN10FileSystem12parse_tildasEPSs+0x60)[0x94b75d0]
> ./cinelerra(_ZN10FileSystem13complete_pathEPSs+0x29)[0x94b7719]
> ./cinelerra(_ZN11PreferencesC1Ev+0x163)[0x8335ca3]
> ./cinelerra(_ZN7MWindow16init_preferencesEv+0x1f)[0x82e133f]
> ./cinelerra(_ZN7MWindow14create_objectsEiiPc+0x44)[0x82e6064]
> ./cinelerra(main+0x632)[0x8215052]
> /lib/libc.so.6(__libc_start_main+0x107)[0xf77886a7]
> ./cinelerra[0x8215de5]
> ======= Memory map: ========
> [skip]
>
> -----------------------------
>
> Chnages to make it compile included adding
>
> #include <cstring>
>
> in cinelerra-7.1/cinelerra/file.h and cinelerra-7.1/cinelerra/videodevice.h
>
> and also small change disabling vaapi and vdpau for embedded copy of
> ffmpeg:
>
>
> # 052906
> cd thirdparty/ffmpeg* && ./configure --enable-pthreads --enable-gpl
> --disable-ffplay --extra-cflags=-I$TOPDIR/$LIBFAAD_PATH/include
> --extra-libs=-L$TOPDIR/$LIBFAAD_PATH/libfaad/.libs/ --disable-ffserver
>  --disable-vaapi --disable-vdpau --disable-ffplay
>
> in
>
> cinelerra-7.1/quicktime/configure
> --------------
>
> plus modification of "install" target
>
> install:
> <------>$(MAKE) -C plugins install
> <------>cp libmpeg3/$(OBJDIR)/mpeg3dump libmpeg3/$(OBJDIR)/mpeg3peek
> libmpeg3/$(OBJDIR)/mpeg3toc  libmpeg3/$(OBJDIR)/mpeg3cat bin
> <------>cp quicktime/$(OBJDIR)/make_streamable bin
> <------>$(MAKE) -C po install
> <------>$(MAKE) -C doc install
> <------>cp COPYING README bin
> <------>cp thirdparty/festival/src/main/festival bin
> <------>cp -a thirdparty/festival/lib bin/
> <------>cp -a models bin
> <------>cd bin && find -name '.svn' -exec rm -r {} \; -prune
> <------>cp cinelerra/Cinelerra_factory bin
>
> in
>
> cinelerra-7.1/build/Makefile.cinelerra (OBJDIR was hardcoded to x86_64)
>
>
> > Finally got mpeg/ts  media loaded and it would play
> > sequentially. After another 3 hours of looking for potential usable bug
> > fixes there was nothing that made any sense to port.
> > - There is 1 new plugin, spheretranslate, which is surprising because it
> > seems like it should have been put into the spherecam plugin.
> > - It seems most of the differences are modification of window_h and
> > window_w from 100 to DP(100), i.e. a hard-coded number to a potential
> > variable scaled size.  According to gg, this was not a very good way to
> do
> > that and is much better done another way.  Eventually a true scaling
> > operation, along with "strings" will be put into cin-gg.
> >
> > so maybe it's a useless update for us.
> >
> > And for everyone else.  In my opinion, the smart thing to do would be for
> > both hv and cv to adopt gg as a good starting point so there is cinelerra
> > software that all users can use and the confusion is ended once and for
> > all.  But I guess we all know by now that that is never going to happen.
> > (Phyllis ONLY)
> >
>
>
> --
> Cin mailing list
> [email protected]
> https://lists.cinelerra-gg.org/mailman/listinfo/cin
>
# makefile tweaks for headers and libraries
--- a/cinelerra/Makefile	2018-12-30 13:42:19.000000000 -0700
+++ b/cinelerra/Makefile	2019-01-26 10:20:26.200003453 -0700
@@ -409,6 +409,8 @@
 	-ldl \
 	-lbz2 \
 	-llzma \
+	-lnuma \
+	-lvdpau \
 	-lrt
 
 #	-lfontconfig \
@@ -422,6 +424,7 @@
 
 CFLAGS += \
 	-c \
+	-include /usr/include/string.h \
 	-I../guicast \
 	-I../quicktime \
 	-I$(JPEG_DIR) \
--- a/guicast/Makefile	2018-04-20 13:23:58.000000000 -0600
+++ b/guicast/Makefile	2019-01-26 10:20:26.200003453 -0700
@@ -1,5 +1,7 @@
 include ../global_config
 
+CFLAGS += -I../quicktime
+
 # must only define here so applications using libpng don't see any of the XFT
 # includes at all.  They use a conflicting setjmp.
 ifeq ($(HAVE_XFT), y)
@@ -96,6 +98,7 @@
 
 TESTLIBS := \
 		$(STATICOUTPUT) \
+		../quicktime/$(OBJDIR)/libquicktime.a \
 		$(LFLAGS) \
 		$(GLLIBS) \
 		-lX11 \
# quicktime libs per your email
--- a/quicktime/Makefile	2019-01-22 21:16:51.000000000 -0700
+++ b/quicktime/Makefile	2019-01-26 10:20:26.201003453 -0700
@@ -260,7 +260,9 @@
 	$(OBJDIR)/$(ENCORE_DIR)/mbtransquant/intel_mmx
 
 
-LIBS := $(OUTPUT) $(MPEG3_DIR)/$(OBJDIR)/libmpeg3.a -lpng -lz -lpthread -ldl -lm -llzma -lrt
+LIBS := $(OUTPUT) $(MPEG3_DIR)/$(OBJDIR)/libmpeg3.a
+LIBS += -lpng -lz -lpthread -ldl -lm -llzma -lrt
+LIBS += -lX11 -lnuma -lvdpau
 
 
 $(shell mkdir -p $(DIRS) )
# libva libs per your email
--- a/quicktime/configure	2019-09-10 15:06:01.431635724 -0600
+++ b/quicktime/configure	2019-09-10 15:06:58.325199448 -0600
@@ -88,7 +88,7 @@
 # 030209
 #cd thirdparty/ffmpeg* && ./configure --enable-pthreads --enable-libfaad --enable-gpl --disable-ffplay --extra-cflags=-I$TOPDIR/$LIBFAAD_PATH/include --extra-libs=-L$TOPDIR/$LIBFAAD_PATH/libfaad/.libs/ --disable-ffmpeg --disable-ffserver --disable-ffplay  && cd ../..
 # 052906
-cd thirdparty/ffmpeg* && ./configure --enable-pthreads --enable-gpl --disable-ffplay --extra-cflags=-I$TOPDIR/$LIBFAAD_PATH/include --extra-libs=-L$TOPDIR/$LIBFAAD_PATH/libfaad/.libs/ --disable-ffserver --disable-ffplay  && cd ../..
+cd thirdparty/ffmpeg* && ./configure --enable-pthreads --enable-gpl --disable-ffplay --extra-cflags=-I$TOPDIR/$LIBFAAD_PATH/include --extra-libs=-L$TOPDIR/$LIBFAAD_PATH/libfaad/.libs/ --disable-ffserver --disable-vaapi --disable-vdpau --disable-ffplay  && cd ../..
 
 if [ $? -ne 0 ]; then echo "Giving up and going to a movie."; exit 1; fi
 
--- a/build/Makefile.cinelerra	2019-09-10 15:10:37.400412484 -0600
+++ b/build/Makefile.cinelerra	2019-09-10 15:10:40.830024313 -0600
@@ -105,8 +105,8 @@
 
 install:
 	$(MAKE) -C plugins install
-	cp libmpeg3/x86_64/mpeg3dump libmpeg3/x86_64/mpeg3peek libmpeg3/x86_64/mpeg3toc  libmpeg3/x86_64/mpeg3cat bin
-	cp quicktime/x86_64/make_streamable bin
+	cp libmpeg3/$(OBJDIR)/mpeg3dump libmpeg3/$(OBJDIR)/mpeg3peek libmpeg3/$(OBJDIR)/mpeg3toc  libmpeg3/$(OBJDIR)/mpeg3cat bin
+	cp quicktime/$(OBJDIR)/make_streamable bin
 	$(MAKE) -C po install
 	$(MAKE) -C doc install
 	cp COPYING README bin
# these avoid friend declartion errors when implicit values are used
--- a/thirdparty/speech_tools/include/EST_String.h	2019-09-10 15:24:03.452181729 -0600
+++ b/thirdparty/speech_tools/include/EST_String.h	2019-09-10 15:24:39.434109211 -0600
@@ -569,15 +569,15 @@
     /** Case folded comparison.
       *
       * The table argument can defined how upper and lower
-      * case characters correspond. The default works for
-      * ASCII.
+      * case characters correspond. The default table=NULL
+      * works for ASCII.
       */
     //@{
     friend int fcompare(const EST_String &a, const EST_String &b, 
-			const unsigned char *table=NULL);
+			const unsigned char *table);
 
     friend int fcompare(const EST_String &a, const char *b, 
-				const unsigned char *table=NULL);
+				const unsigned char *table);
     ///
     friend inline int fcompare(const EST_String &a, const EST_String &b, 
 			       const EST_String &table) 
# these avoid bad data type in assignment
--- a/thirdparty/speech_tools/siod/siod.cc	2019-09-10 15:26:44.228984653 -0600
+++ b/thirdparty/speech_tools/siod/siod.cc	2019-09-10 15:27:34.914245639 -0600
@@ -459,7 +459,7 @@
     matches = walloc(char *,siod_llength(lmatches)+1);
     for (l=lmatches,i=0; l; l=cdr(l),i++)
 	matches[i] = wstrdup(PNAME(car(l)));
-    matches[i] = '\0';
+    matches[i] = 0;
 
     return matches;
 }
@@ -498,7 +498,7 @@
     matches = walloc(char *,siod_llength(lmatches)+1);
     for (l=lmatches,i=0; l; l=cdr(l),i++)
 	matches[i] = wstrdup(PNAME(car(l)));
-    matches[i] = '\0';
+    matches[i] = 0;
 
     return matches;
 }
# more avoid friend declartion errors when implicit values are used
--- a/thirdparty/speech_tools/include/EST_Ngrammar.h	2019-09-10 15:31:10.198869014 -0600
+++ b/thirdparty/speech_tools/include/EST_Ngrammar.h	2019-09-10 15:32:21.956743888 -0600
@@ -538,18 +538,18 @@
 						     double floor);
     friend EST_write_status save_ngram_htk_ascii(const EST_String filename, 
 						 EST_Ngrammar &n,
-						 double floor=0.0);
+						 double floor);
 
     //friend EST_write_status save_ngram_htk_binary(const EST_String filename, 
     //					  EST_Ngrammar &n);
     friend EST_write_status save_ngram_cstr_ascii(const EST_String filename, 
 						  EST_Ngrammar &n,
-						  const bool trace=false,
-						  double floor=0.0);
+						  const bool trace,
+						  double floor);
     friend EST_write_status save_ngram_cstr_bin(const EST_String filename, 
 						EST_Ngrammar &n, 
-						const bool trace=false,
-						double floor=0.0);
+						const bool trace,
+						double floor);
     friend EST_write_status save_ngram_arpa(const EST_String filename, 
 					    EST_Ngrammar &n);
     friend EST_write_status save_ngram_arpa_sub(ostream *ost, 
@@ -561,11 +561,11 @@
     // Auxiliary functions
     
     // smoothing
-friend void frequency_of_frequencies(EST_DVector &ff, EST_Ngrammar &n,int this_order=0);
-friend void map_frequencies(EST_Ngrammar &n, const EST_DVector &map, const int this_order=0);
-friend bool Good_Turing_smooth(EST_Ngrammar &n, int maxcount, int mincount=0);
+friend void frequency_of_frequencies(EST_DVector &ff, EST_Ngrammar &n,int this_order);
+friend void map_frequencies(EST_Ngrammar &n, const EST_DVector &map, const int this_order);
+friend bool Good_Turing_smooth(EST_Ngrammar &n, int maxcount, int mincount);
 friend void Good_Turing_discount(EST_Ngrammar &ngrammar, const int maxcount,
-				 const double default_discount=0.5);
+				 const double default_discount);
 
 friend void fs_build_backoff_ngrams(EST_Ngrammar *backoff_ngrams,
 				    EST_Ngrammar &ngram);
# add missing implicit values inplace of friend implicit declarations
--- a/thirdparty/speech_tools/grammar/ngram/EST_Ngrammar.cc	2019-09-10 15:34:18.751519238 -0600
+++ b/thirdparty/speech_tools/grammar/ngram/EST_Ngrammar.cc	2019-09-10 15:34:54.101516566 -0600
@@ -1503,7 +1503,7 @@
     
     backoff_restore_unigram_states();
     
-    Good_Turing_discount(*this,maxcount);
+    Good_Turing_discount(*this,maxcount,0.5);
     
     // and since some frequencies will have been set to zero
     // we have to prune away those branches of the tree
--- a/thirdparty/speech_tools/grammar/ngram/ngrammar_aux.cc	2019-09-10 15:36:22.599495958 -0600
+++ b/thirdparty/speech_tools/grammar/ngram/ngrammar_aux.cc	2019-09-10 15:37:20.878896998 -0600
@@ -431,13 +431,13 @@
 	EST_DVector freqs,mapped_freqs;
 	// grammar is of a single order - simple
 	// Find frequency distribution
-	frequency_of_frequencies(freqs,ngrammar);
+	frequency_of_frequencies(freqs,ngrammar,0);
 	// smoothing should be optional - to do
 	smoothed_frequency_distribution_ExponentialFit(freqs,maxcount-1);
 	// Build map of frequencies
 	adjusted_frequencies_BasicGoodTuring(mapped_freqs,freqs,maxcount);
 	// Map all frequencies in grammar to Good Turing Smoothed values
-	map_frequencies(ngrammar,mapped_freqs);
+	map_frequencies(ngrammar,mapped_freqs,0);
 	
     }
     break;
--- a/thirdparty/speech_tools/grammar/ngram/freqsmooth.cc	2019-09-10 15:39:27.328579124 -0600
+++ b/thirdparty/speech_tools/grammar/ngram/freqsmooth.cc	2019-09-10 15:39:50.806920681 -0600
@@ -60,7 +60,7 @@
     EST_Ngrammar *backoff_ngrams;
     backoff_ngrams = new EST_Ngrammar[ngram.order()-1];
 
-    Good_Turing_smooth(ngram,smooth_thresh1);
+    Good_Turing_smooth(ngram,smooth_thresh1,0);
 
     fs_build_backoff_ngrams(backoff_ngrams,ngram);
 
--- a/thirdparty/speech_tools/main/ngram_build_main.ccg	2019-09-10 15:41:12.976616618 -0600
+++ b/thirdparty/speech_tools/main/ngram_build_main.cc	2019-09-10 15:41:24.296334892 -0600
@@ -429,7 +429,7 @@
     else if (al.present("-smooth") && !al.present("-backoff"))
     {
 	int smoothcount = atoi(al.val("-smooth"));
-	if(!Good_Turing_smooth(ngrammar,smoothcount))
+	if(!Good_Turing_smooth(ngrammar,smoothcount,0))
 	{
 	    cerr << "build_ngram: Failed to smooth " << order << "-gram" << endl;
 	    exit(1);
--- a/thirdparty/festival/src/modules/Lexicon/complex.cc	2019-09-10 15:44:09.473631907 -0600
+++ b/thirdparty/festival/src/modules/Lexicon/complex.cc	2019-09-10 15:44:25.295840389 -0600
@@ -64,7 +64,7 @@
     LIST_ent le2 = *((LIST_ent *)e2);
     int rcode;
 
-    if ((rcode = fcompare(le1->word,le2->word)) != 0)
+    if ((rcode = fcompare(le1->word,le2->word,0)) != 0)
 	return rcode;
     else if ((rcode = strcmp(le1->pos,le2->pos)) != 0)
 	return rcode;
--- a/cinelerra/asset.C	2019-09-10 15:58:43.805632793 -0600
+++ b/cinelerra/asset.C	2019-09-10 15:58:49.923940027 -0600
@@ -171,8 +171,6 @@
 
 	use_header = 1;
 
-
-	reset_index();
 	id = EDL::next_id();
 	return 0;
 }
# this avoids memory munges
--- a/guicast/filesystem.C	2019-09-10 18:09:26.575883142 -0600
+++ b/guicast/filesystem.C	2019-09-10 18:45:13.390009090 -0600
@@ -752,41 +752,15 @@
 	return 0;
 }
 
-
-int FileSystem::parse_tildas(string *new_dir_)
-{
-    char *new_dir = strdup(new_dir_->c_str());
-    int result = parse_tildas(new_dir);
-    new_dir_->assign(new_dir);
-    free(new_dir);
-    return result;
-}
-
-int FileSystem::parse_directories(string *new_dir_)
-{
-    char *new_dir = strdup(new_dir_->c_str());
-    int result = parse_directories(new_dir);
-    new_dir_->assign(new_dir);
-    free(new_dir);
-    return result;
-}
-
-int FileSystem::parse_dots(string *new_dir_)
-{
-    char *new_dir = strdup(new_dir_->c_str());
-    int result = parse_dots(new_dir);
-    new_dir_->assign(new_dir);
-    free(new_dir);
-    return result;
-}
-
-
 int FileSystem::complete_path(string *filename)
 {
 	if(!filename->length()) return 1;
-	parse_tildas(filename);
-	parse_directories(filename);
-	parse_dots(filename);
+	char string[BCTEXTLEN];
+	strcpy(string, filename->c_str());
+	parse_tildas(string);
+	parse_directories(string);
+	parse_dots(string);
+	filename->assign(string);
 // don't add end slash since this requires checking if dir
 	return 0;
 }
--- a/guicast/filesystem.h	2019-09-10 18:45:23.240894186 -0600
+++ b/guicast/filesystem.h	2019-09-10 18:45:32.663827713 -0600
@@ -112,10 +112,6 @@
 	int parse_directories(char *new_dir);  // add directories
 	int parse_dots(char *new_dir);         // move up directory tree after expanding tildas
 
-	int parse_tildas(string *new_dir);     // expand tildas
-	int parse_directories(string *new_dir);  // add directories
-	int parse_dots(string *new_dir);         // move up directory tree after expanding tildas
-
 // Alphabetize all the directories and files.  By default
 // directories come first.
 	void alphabetize();
# this avoids a compiler bug which generates bad code when optimized and
# warning: no return statement in function returning non-void [-Wreturn-type]
--- a/global_config	2015-08-12 11:47:55.000000000 -0600
+++ b/global_config	2019-09-10 20:54:41.287992119 -0600
@@ -57,7 +57,7 @@
 
 
 ifneq ($(HAVE_CFLAGS), y)
-CFLAGS = -O2 
+CFLAGS = -g
 endif
 
 ifeq ($(HAVE_GL), y)
-- 
Cin mailing list
[email protected]
https://lists.cinelerra-gg.org/mailman/listinfo/cin

Reply via email to