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