Credit Andrew - typo fix in YUVshift plugin
[goodguy/cin-manual-latex.git] / parts / Developer.tex
index 84b9796ac30af82118914e152ac4001e0a160124..0b1096781c86938abe7009a8db53b06d8de2f8ba 100644 (file)
@@ -227,6 +227,7 @@ Optional Features:
   --enable-openjpeg       build openjpeg (auto)
   --enable-libogg         build libogg (auto)
   --enable-libsndfile     build libsndfile (auto)
+  --enable-libsvtav1      build libsvtav1 (no)
   --enable-libtheora      build libtheora (auto)
   --enable-libuuid        build libuuid (yes)
   --enable-libvorbis      build libvorbis (auto)
@@ -334,12 +335,13 @@ Individual package libraries can be rebuilt, via:
 
 The rule targets create the set of thirdparty packages which are built from local source archive copies of thirdparty source code and patches, if needed.  The build rule set of dependencies allows for compiling multiple thirdparty programs simultaneously using maximum computer resources.  This parallel build speeds up the process considerably.  For example, these are full static build timings on the production build machine (full build includes building all thirdparty programs as well as all of \CGG{}):
 
-\hspace{2em}
-\begin{tabular}{@{}rcr}
-       1 cpu & = & 61 mins\\
-       12 cpus & = & 7.5 mins\\
-       24 cpus & = & 2 mins\\
-\end{tabular}
+\begin{center}
+       \begin{tabular}{@{}lcr}
+               1 cpu & = & 61 mins\\
+               12 cpus & = & 7.5 mins\\
+               24 cpus & = & 2 mins\\
+       \end{tabular}
+\end{center}
 
 \section{Using the very latest Libraries}
 \label{sec:latest_libraries}
@@ -366,67 +368,65 @@ developer's feedback and experimentation.
 
 \textbf{dav1d} 
 \begin{description}[noitemsep]
-     \item Status - currently \CGG{} is staying at 0.5.  This is disappointing because there
-may be speed gains in version 0.6 that would be beneficial. However, it is usable for decoding
+     \item Status - currently \CGG{} is staying at 0.5.1.  This is disappointing because there
+may be speed gains in later versions that would be beneficial. However, it is usable for decoding
 whereas libaom is a lot slower.  Unfortunately, it has no effective encoder.
-     \item Problem - 0.6 dav1d requires NASM 2.14 and uses instructions like vgf2p8affineqb,
+     \item Problem - 0.6 dav1d requires NASM 2.14 (and later versions of dav1d use even later versions of NASM) and uses instructions like vgf2p8affineqb,
 not exactly an "add" instruction. It also uses meson which is not widely available on all
-distros.  The only distros that are built for \CGG{} that are at 2.14 are the latest version
-of Arch, Debian(10), Gentoo, Tumbleweed, and Fedora(31). The rest are at 2.12 and 2.13 including
-the most widely used Ubuntu. The NASM requirement apparently provides for using AVX-512 
+distros.  The more recent NASM requirement apparently provides for using AVX-512 
 instructions (like vgf2p8affineqb, which is more like a whole routine than a simple instruction).
      \item Workaround already in use by \CGG{} - a Makefile was generated to replace Meson usage
-but has to be continuously updated for new releases. Dav1d 0.5 requires NASM 2.13 so at this level
-the newer distros mostly work.  The availability of meson and nasm are a significant problem on
+but has to be continuously updated for new releases. Dav1d 0.5.1 requires NASM 2.13 so at this level
+the newer distros will work.  The availability of meson and nasm are a significant problem on
 many systems which are still in wide use.
      \item Your workaround - Because a request to dav1d developers to consider changes to
 ensure their library is more widely usable does not appear to be in their future, since it works
-for them, you can upgrade NASM to 2.14 to stay up to date.  Of course, install meson also.
+for them, you can upgrade NASM to 2.14 to stay up to date.  Even then, you will have to build using meson and incorporate it into \CGG{}.
 \end{description}
 
 \textbf{OpenExr} 
 \begin{description}[noitemsep]
-     \item Status - currently at latest version 
-     \item Problem - the OpenExr tarball is not a single package but is 2 packages instead
+     \item Status - stable at 2.4.1 from February 2020.
+     \item Problem - the OpenExr tarball is not a single package but is 2 packages instead.
      \item Workaround already in use by \CGG{} - reworked the packages so that it looks like
-one package with 2 stubs
-     \item Your workaround - perhaps use the same workaround
+one package with 2 stubs.
+     \item Your workaround - perhaps use the same workaround.
 \end{description}
 
 \textbf{OpenCV}
 \begin{description}[noitemsep]
-     \item Status - 2 different versions specific for O/S but none for Ubuntu 14, 32 or 64 bit
+     \item Status - 2 different versions specific for O/S but none for Ubuntu 14, 32 or 64 bit.
      \item Problem - There are really 2 problems here.  The first is OpenCV is not really
 "Open" in that Surf is patented/non-free and there is no actual source available for certain
 capabilities. The second is that cmake 3.5.1 is required for OpenCV 4.2.
-     \item Workaround already in use by \CGG{} - using 3.4.1 for older distros and 4.2 for newer
+     \item Workaround already in use by \CGG{} - using 3.4.1 for older distros and 4.2 for newer.
      \item Your workaround - upgrade cmake to 3.5.1 for upgrade to 4.2; add non-free to the
 compile; and use binaries that you do not know what they contain since no source code to compile.
-Look into opencv4/opencv2/core/types.hpp:711;27
+Look into opencv4/opencv2/core/types.hpp:711;27.
 \end{description}
 
 \textbf{libaom}
 \begin{description}[noitemsep]
-     \item Status - currently at version 3.0.0 for older O/S and 3.1.1 for newer O/S
-     \item Problem - requires cmake 3.5 at 3.0.0 and 3.6 for 3.1.1
-     \item Workaround already in use by \CGG{} - leaving out of Ubuntu14, Ubuntu, Centos7
-     \item Your workaround - upgrade on those systems to cmake 3.6
+     \item Status - currently at version 3.6.0 for older O/S and 3.8.0 for newer O/S.
+     \item Problem - requires cmake 3.5 at v3.6.0 and 3.7.2 for v3.8.0.
+     \item Workaround already in use by \CGG{} - modify configure.ac to switch from 3.8.0 to 3.6.0 for Ubuntu 16 and delete thirdparty/src/libaom-v3.8.0*.*.
+     \item Your workaround - upgrade on some systems to cmake 3.7.2, switch to using 3.6.0 as in last sentence, or add --libaom-enable=no to configure line when building.
 \end{description}
 
 \textbf{x10tv}
 \begin{description}[noitemsep]
-     \item Status - this is the x10 TV remote control
-     \item Problem - INPUT\_PROP\_POINTING\_STICK not defined error on older distros
-     \item Workaround already in use by \CGG{} - leaving out of Ubuntu14, Ubuntu, Centos7
-     \item Your workaround - look into /usr/include/linux/input-event-codes.h
+     \item Status - this is the x10 TV remote control.
+     \item Problem - INPUT\_PROP\_POINTING\_STICK not defined error on older distros.
+     \item Workaround already in use by \CGG{} - leaving out of Ubuntu14, Ubuntu, Centos7.
+     \item Your workaround - look into /usr/include/linux/input-event-codes.h.
 \end{description}
 
-\textbf{libvpx}
+\textbf{lv2 plugins, consisting of 6 routines}
 \begin{description}[noitemsep]
-     \item Status - currently at version 1.8.1
-     \item Problem - when decoding a test file, it failed to correctly load to the timeline
-     \item Workaround already in use by \CGG{} - not upgrading to 1.8.2
-     \item Your workaround - no analysis for a solution has been performed yet
+     \item Status - currently at version 1.18.0 for lv2 and different for other 5.
+     \item Problem - the current versions use cmake but the updated versions now all use meson and \CGG{} is not set up to handle that.
+     \item Workaround already in use by \CGG{} - not upgrading at this time.
+     \item Your workaround - if you are familiar with meson, you can independently upgrade the 6 routines.
 \end{description}
 
 \section{Find Lock Problems with Booby Trap}
@@ -752,7 +752,7 @@ This follows four steps:
 Start by downloading the \CGG{} source from Cinelerra's git. The last parameter is a directory name of your choice, the directory must not exist. As example, the name \textit{cinelerra5} is used.
 
 \begin{lstlisting}[numbers=none]
-       git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5
+       git clone --depth 1 git://git.cinelerra-gg.org/goodguy/cinelerra.git cinelerra5
 \end{lstlisting}
 
 The source will be in a subdirectory \texttt{cinelerra-5.1} of the directory created by the \textit{git clone} operation.
@@ -760,7 +760,7 @@ The source will be in a subdirectory \texttt{cinelerra-5.1} of the directory cre
 If context-sensitive help is needed, download the manual sources too, with a different destination directory.
 
 \begin{lstlisting}[numbers=none]
-       git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cin-manual-latex.git" cin-manual-latex
+       git clone --depth 1 git://git.cinelerra-gg.org/goodguy/cin-manual-latex.git cin-manual-latex
 \end{lstlisting}
 
 Then move to the \texttt{/\{path to cinelerra-5.1}/\} directory.