From: Good Guy Date: Fri, 27 Mar 2020 01:54:58 +0000 (-0600) Subject: the last of Andrea's new images; some fixes X-Git-Tag: 2021-05~98 X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcin-manual-latex.git;a=commitdiff_plain;h=686c08c43e0947398ad946038cae2018c2a66551 the last of Andrea's new images; some fixes --- diff --git a/images/aeval.png b/images/aeval.png index 544f14f..fb86742 100644 Binary files a/images/aeval.png and b/images/aeval.png differ diff --git a/images/color.png b/images/color.png index 3532db4..b171286 100644 Binary files a/images/color.png and b/images/color.png differ diff --git a/images/cursor01.png b/images/cursor01.png index c3368b2..cf9b7dd 100644 Binary files a/images/cursor01.png and b/images/cursor01.png differ diff --git a/images/cursor02.png b/images/cursor02.png index b889a79..5be3437 100644 Binary files a/images/cursor02.png and b/images/cursor02.png differ diff --git a/images/ff_probe.png b/images/ff_probe.png index a3d2781..256a362 100644 Binary files a/images/ff_probe.png and b/images/ff_probe.png differ diff --git a/images/index.png b/images/index.png index 91b958b..5dff752 100644 Binary files a/images/index.png and b/images/index.png differ diff --git a/images/proxy-01.png b/images/proxy-01.png index 01098d4..62d314c 100644 Binary files a/images/proxy-01.png and b/images/proxy-01.png differ diff --git a/images/proxy-02.png b/images/proxy-02.png index 8a36d1a..95ee938 100644 Binary files a/images/proxy-02.png and b/images/proxy-02.png differ diff --git a/images/render-vaapi.png b/images/render-vaapi.png index 2d57d18..3e697e7 100644 Binary files a/images/render-vaapi.png and b/images/render-vaapi.png differ diff --git a/images/ringtone.png b/images/ringtone.png index 45f5a0d..3f95d7e 100644 Binary files a/images/ringtone.png and b/images/ringtone.png differ diff --git a/images/settings.png b/images/settings.png index 0bc78d3..e042422 100644 Binary files a/images/settings.png and b/images/settings.png differ diff --git a/images/trouble-img001.png b/images/trouble-img001.png index cffae27..63c186d 100644 Binary files a/images/trouble-img001.png and b/images/trouble-img001.png differ diff --git a/images/ydiff_change.png b/images/ydiff_change.png index bb2cb43..676b03b 100644 Binary files a/images/ydiff_change.png and b/images/ydiff_change.png differ diff --git a/images/ydiff_same.png b/images/ydiff_same.png index c8ada8d..2f456a3 100644 Binary files a/images/ydiff_same.png and b/images/ydiff_same.png differ diff --git a/parts/Configuration.tex b/parts/Configuration.tex index 1526e7d..14f80bf 100644 --- a/parts/Configuration.tex +++ b/parts/Configuration.tex @@ -207,7 +207,7 @@ In the Render Farm Section are many options that are explained in detail in the Screencast below shows part of the Preferences menu where you can change the index files setup (figure~\ref{fig:index}). \begin{figure}[htpb] \centering - \includegraphics[width=0.8\linewidth]{images/index.png} + \includegraphics[width=1.0\linewidth]{images/index.png} \caption{Index file setup for your preferred configuration for Render Farm sharing or anything} \label{fig:index} \end{figure} @@ -332,7 +332,7 @@ This section contains many useful options to cater to the various preferences of \item[Autocolor assets] to make it visually easier to see your clips on the timeline that are from the same media file, you can have them automatically colored. Use of this feature requires additional memory and cpu on every timeline redraw, therefore smaller computers may not want this checked on. \item[ffmpeg probe warns rebuild indexes] this warning is very important for switching from using ffmpeg to using native formats, such as in the case of MPEG, so that you are reminded to \textit{rebuild indexes}. If you do not rebuild the indexes, seeking on the timeline back and forth could very well be problematic, meaning it might not go to the right place. Notification about rebuilding the indexes will appear by default as shown in the figure~\ref{fig:ff_probe} when you click on the FF icon in the main timeline in the upper right hand corner. Once you click on \textit{Don’t show this warning again} you will no longer be warned and this flag will no longer be enabled. \begin{figure}[htpb] - \centering \includegraphics[width=0.7\linewidth]{ff_probe.png} + \centering \includegraphics[width=0.9\linewidth]{ff_probe.png} \caption{Default warning when you click on FF icon in main window} \label{fig:ff_probe} \end{figure} diff --git a/parts/Developer.tex b/parts/Developer.tex index a9c18bf..c61067f 100644 --- a/parts/Developer.tex +++ b/parts/Developer.tex @@ -321,14 +321,15 @@ The rule targets create the set of thirdparty packages which are built from loca 24 cpus & = & 2 mins\\ \end{tabular} - \section{Using the very latest Libraries} \label{sec:latest_libraries} Using the most current libraries can be a challenge for some of the Operating System distros that use stable compilers, assemblers, and their own libraries. Because they are stable, they frequently do not keep up with the very latest of thirdparty libraries. Consequently, some program constructs may -not yet be implemented. +not yet be implemented. \CGG{} tries to maintain stability since it is better to have less features +and no crashes. The goal is to make \CGG{} widely available on many platforms rather than +dependent on advanced tools that are not supported on some distros. \CGG{} attempts to upgrade to the latest releases of many thirdparty libraries about every 3-4 months. But it is often difficult to keep some of these thirdparty libraries up to date as their @@ -339,22 +340,71 @@ updates. In a lot of cases, the updated releases provide little new capabilitie are bug fixes that may not even be relevant to \CGG{}'s use. So as a computer savvy user or a developer, if you would like to build \CGG{} with the latest -thirdparty releases for some of the packages here are a few suggestions based on experimentation. +thirdparty releases for some of the packages here are a few suggestions based on other +developer's feedback and experimentation. \textbf{dav1d} -\begin{description} - \item Status - currently \CGG{} is staying at 0.5. This is disappointing because there are speed -up gains in version 0.6 that would be beneficial. - \item Problem - 0.6 dav1d requires NASM 2.14. It also uses meson which is not widely available on all +\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 +whereas libaom is just too slow. Unfortunately, it has no effective encoder. + \item Problem - 0.6 dav1d requires NASM 2.14 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 most widely used Ubuntu. The 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 -many systems which are still in wide use. A request to dav1d developers to consider changes to -ensure their library is more widely usable did not appear to be in their future. It works for -them. +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. +\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 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 +\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 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 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. +\end{description} + +\textbf{webp} +\begin{description}[noitemsep] + \item Status - currently at version 1.1.0 + \item Problem - requires cmake 3.5 + \item Workaround already in use by \CGG{} - leaving out of Ubuntu14, Ubuntu, Centos7 + \item Your workaround - upgrade on those systems to cmake 3.5 +\end{description} + +\textbf{libaom} +\begin{description}[noitemsep] + \item Status - currently at version 1.0.0 + \item Problem - requires cmake 3.5 + \item Workaround already in use by \CGG{} - leaving out of Ubuntu14, Ubuntu, Centos7 + \item Your workaround - upgrade on those systems to cmake 3.5 +\end{description} + +\textbf{libvpx} +\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 \end{description} \section{Find Lock Problems with Booby Trap} diff --git a/parts/Plugins.tex b/parts/Plugins.tex index a52a8ef..d2e0207 100644 --- a/parts/Plugins.tex +++ b/parts/Plugins.tex @@ -3032,8 +3032,8 @@ time is significant. For these reasons, \textit{findobject} and the other 5 plug included in System build packages. We recommend using the static library build which has the OpenCV plugins included for consistency and to avoid problems. -\subsection{Using OpenCV Plugins from the Automatic Builds}% -\label{sub:using_opencv_automatic_builds} +\subsection{Adding OpenCV Plugins to the System Package Builds}% +\label{sub:adding_opencv_to_system_builds} The OpenCV plugins are built only in the 64-bit tarball builds, both static and dynamic, but due to size these plugins are not included with pkgs, i.e. the System builds. However it is relatively @@ -3051,7 +3051,7 @@ cin/plugins/opencv/stylizeobj.plugin \begin{enumerate} \item do your package install of the current build for your distro as usual - \item look in {\small \url{https://cinelerra-gg.org/download/tars}} to see your distro name's static tar; + \item look in {\small \url{https://cinelerra-gg.org/download/tars}} to see your distro name's static tar \item download the corresponding distro static tarball; for example for arch: \end{enumerate} @@ -3059,25 +3059,24 @@ cin/plugins/opencv/stylizeobj.plugin {\small \url{https://cinelerra-gg.org/download/tars/cinelerra-5.1-arch-{date}-x86_64-static.txz}} \begin{enumerate}[resume] - \item create a temporary directory on your computer; - \item \texttt{cd} that-directory; - \item \texttt{tar -xf} location-of-the-tarball-you-downloaded; - \item \texttt{cp plugins/*obj.plugin /.} (note the period on the end!) - \item Start \CGG{} and look for the six plugins in Video Effects; + \item create a temporary directory on your computer + \item \texttt{cd} that-directory + \item \texttt{tar -xf} location-of-the-tarball-you-downloaded + \item \texttt{cp plugins/*obj.plugin /.} (note the period on the end) + \item Start \CGG{} and look for the six plugins in Video Effects \item To reverse this, simply delete the six plugin files (for example: \texttt{rm /usr/lib*/cin*/*obj.plugin}). \end{enumerate} -location for most User installs, this is: +The location for most User installs is: -\texttt{/plugins/} +\hspace{4em}\texttt{/plugins/} -Location for some System installs, this is: +Location for some System installs is: -\texttt{/usr/lib/cin/plugins/} (most ubuntu distros) - -\texttt{/usr/lib64/cin/plugins/} (Leap distro) +\hspace{4em}\texttt{/usr/lib/cin/plugins/} (most ubuntu distros)\newline +\hspace{4em}\texttt{/usr/lib64/cin/plugins/} (Leap distro) \subsection{How to Build OpenCV Plugins}% \label{sub:how_build_opencv_plugins} @@ -3088,6 +3087,32 @@ and build OpenCV into the thirdparty library build area if needed (it does not r previously). Network access is required to obtain the OpenCV source, at least once. You will need a minimum of $4\, GB$ in the thirdparty build directory and more time to compile. +\subsubsection*{Build using stable tarballs}% +\label{ssub:stable_tars} + +Instead of using the latest git version, there is a custom archive source tarball on the +website already created to build and test OpenCV versions. The reason for this is that OpenCV +is quite volatile, and may or may not work on any given day so this is an already tested version +that is considered to be more stable. A build using the tarball requires that your +system have \textit{wget} already installed to initially download the prepared source tar. +There are currently 2 tarballs of stable versions on the website used for user builds. +The 20180401 version:\newline +{\small \url{ https://cinelerra-gg.org/download/opencv/opencv-20180401.tgz}}\newline +works with older version of cmake, and 20200308 is the current 4.2 release:\newline +{\small \url{https://cinelerra-gg.org/download/opencv/opencv-20200306.tgz}} + +To build using the tarballs on the website, use this bld.sh procedure (you may want to run "make +clean" first): +\begin{lstlisting}[style=sh] +#!/bin/bash +( ./autogen.sh + ./configure --with-single-user --with-booby \ + --with-opencv=sta,tar=http://cinelerra-gg.org/download/opencv/opencv-20200306.tgz + make && make install ) 2>&1 | tee log +mv Makefile Makefile.cfg +cp Makefile.devel Makefile +\end{lstlisting} + \subsubsection*{Build using current git version}% \label{ssub:current_git} @@ -3161,32 +3186,6 @@ running locally on the build system. for example:\newline \item systemctl start httpd \end{enumerate} -\subsubsection*{Build using stable tarballs}% -\label{ssub:stable_tars} - -Instead of using the latest git version, there is a custom archive source tarball on the -website already created to build and test OpenCV versions. The reason for this is that OpenCV -is quite volatile, and may or may not work on any given day so this is an already tested version -that is considered to be more stable. A build using the tarball requires that your -system have \textit{wget} already installed to initially download the prepared source tar. -There are currently 2 tarballs of stable versions on the website used for user builds. -The 20180401 version:\newline -{\small \url{ https://cinelerra-gg.org/download/opencv/opencv-20180401.tgz}}\newline -works with older version of cmake, and 20200308 is the current 4.2 release:\newline -{\small \url{https://cinelerra-gg.org/download/opencv/opencv-20200306.tgz}} - -To build using the tarballs on the website, use this bld.sh procedure (you may want to run "make -clean" first): -\begin{lstlisting}[style=sh] -#!/bin/bash -( ./autogen.sh - ./configure --with-single-user --with-booby \ - --with-opencv=sta,tar=http://cinelerra-gg.org/download/opencv/opencv-20200306.tgz - make && make install ) 2>&1 | tee log -mv Makefile Makefile.cfg -cp Makefile.devel Makefile -\end{lstlisting} - \subsection{Description of Find Object Plugin}% \label{sub:description_findobj_plugin} diff --git a/parts/Stuff.tex b/parts/Stuff.tex index e15b166..250284e 100644 --- a/parts/Stuff.tex +++ b/parts/Stuff.tex @@ -94,33 +94,33 @@ To recap, position is usually set in the program as a location that is between a Since some users prefer the insertion pointer to reflect the same as the Compositor a choice is available. For playing forward, there is a preference option which results in what looks like 1 was added to the frame displayed in the Compositor window. To enable this mode, check the box \texttt{Always show next frame}, and this will be saved to \texttt{.bcast5}. The option checkbox is in the \texttt{Settings $\rightarrow$ Preferences $\rightarrow$ Appearance} tab and when checked, any forward \textit{plays} in the Compositor window show the same frame as you would with a seek. Reverse plays and plays using a selection or In/Out pointers (with Ctrl) work the same as without this preference set. But you will no longer see the odd behavior where if you frame advance forward and then frame advance backward, the displayed frame does not change -- instead it will change and look more natural. A color indicator that shows in the main track canvas timeline and the compositor timeline reminds the user which mode is currently active. The cursor in the compositor turns \textit{red} for default mode and \textit{white} for \textit{Always show next frame} mode. The top portion of the insertion cursor in the track canvas mirrors this, with red for default and white otherwise. -Figure~\ref{fig:cursor01} using the default \textit{playing} method where the frame in the compositor is the one that was just played; in this case play was in the forward direction. Note that the insertion pointer in the main track canvas shows 01:20 but the compositor show 01:19 so you know what you last saw. Also, the cursor/cursor tops in both windows is red. +Figure~\ref{fig:cursor01} using the default \textit{playing} method where the frame in the compositor is the one that was just played; in this case play was in the forward direction. Note that the insertion pointer in the main track canvas shows 03:16 but the compositor show 03:15 so you know what you last saw. Also, the cursor/cursor tops in both windows is red. \begin{figure}[htpb] \centering %\includegraphics[width=0.8\linewidth]{name.ext} \begin{tikzpicture}[scale=1, transform shape] \node (img1) [yshift=0cm, xshift=0cm, rotate=0] {\includegraphics[width=0.6\linewidth]{cursor01.png}}; - \node [yshift=-21mm, xshift=-1cm,anchor=east] at (img1.north west) (Compositor) {Red cursor in Compositor}; - \node [yshift=-26mm, xshift=-1cm,anchor=east] at (img1.north west) (Timeline) {red cursor in Timeline}; - \draw [->, line width=1mm] (Compositor) edge ([yshift=-21mm] img1.north west); - \draw [->, line width=1mm] (Timeline) edge ([yshift=-26mm] img1.north west); + \node [yshift=-29mm, xshift=-1cm,anchor=east] at (img1.north west) (Compositor) {Red cursor in Compositor}; + \node [yshift=-40mm, xshift=-1cm,anchor=east] at (img1.north west) (Timeline) {red cursor in Timeline}; + \draw [->, line width=1mm] (Compositor) edge ([yshift=-29mm] img1.north west); + \draw [->, line width=1mm] (Timeline) edge ([yshift=-40mm] img1.north west); \end{tikzpicture} \caption{"Default" mode with red cursors} \label{fig:cursor01} \end{figure} -Figure~\ref{fig:cursor02} using the \textit{Always show next frame} method where the frame in the compositor is the same one that would have shown with a seek; in this case play was in the forward direction. Note that the insertion pointer in the main track canvas shows 01:20 and the compositor shows 01:20. Also, the cursor/cursor tops in both windows is white. +Figure~\ref{fig:cursor02} using the \textit{Always show next frame} method where the frame in the compositor is the same one that would have shown with a seek; in this case play was in the forward direction. Note that the insertion pointer in the main track canvas shows 03:16 and the compositor shows 03:16. Also, the cursor/cursor tops in both windows is white. \begin{figure}[htpb] \centering %\includegraphics[width=0.8\linewidth]{name.ext} \begin{tikzpicture}[scale=1, transform shape] \node (img1) [yshift=0cm, xshift=0cm, rotate=0] {\includegraphics[width=0.6\linewidth]{cursor02.png}}; - \node [yshift=-23mm, xshift=-1cm,anchor=east] at (img1.north west) (Compositor) {White cursor in Compositor}; - \node [yshift=-28mm, xshift=-1cm,anchor=east] at (img1.north west) (Timeline) {White cursor in Timeline}; - \draw [->, line width=1mm] (Compositor) edge ([yshift=-23mm] img1.north west); - \draw [->, line width=1mm] (Timeline) edge ([yshift=-28mm] img1.north west); + \node [yshift=-29mm, xshift=-1cm,anchor=east] at (img1.north west) (Compositor) {White cursor in Compositor}; + \node [yshift=-40mm, xshift=-1cm,anchor=east] at (img1.north west) (Timeline) {White cursor in Timeline}; + \draw [->, line width=1mm] (Compositor) edge ([yshift=-29mm] img1.north west); + \draw [->, line width=1mm] (Timeline) edge ([yshift=-40mm] img1.north west); \end{tikzpicture} \caption{"Always show next frame" mode with white cursors} \label{fig:cursor02} @@ -140,7 +140,7 @@ This can create a visible effect of a switch in color in the Compositor, usually The cause of the issue is that X11 is RGB only and it is used to draw the \textit{refresh frame}. So single step is always drawn in RGB. To make a YUV frame into RGB, a color model transfer function is used. The math equations are based on color\_space and color\_range. In this case, color\_range is the cause of the \textit{gray} offset. The \textit{YUV mpeg} color range is $[16..235]$ for Y, $[16..240]$ for UV, and the color range used by \textit{YUV jpeg} is $[0..255]$ for YUV. \begin{wrapfigure}[11]{O}{0.5\textwidth} - \vspace{-5ex} + \vspace{-2ex} \centering \includegraphics[width=0.5\textwidth,keepaspectratio]{color.png} \caption{Color space and Color range} diff --git a/parts/Tips.tex b/parts/Tips.tex index 8bf579f..d2bbc86 100644 --- a/parts/Tips.tex +++ b/parts/Tips.tex @@ -312,7 +312,7 @@ profile=high \begin{figure}[htpb] \centering - \includegraphics[width=0.7\linewidth]{render-vaapi.png} + \includegraphics[width=1.0\linewidth]{render-vaapi.png} \caption{Render menu setup to encode using GPU with vaapi} \label{fig:render-vaapi} \end{figure} @@ -389,7 +389,7 @@ something like: \begin{lstlisting}[numbers=none] env CUDA_PATH=/opt/cuda -#OR if using the bash shell: +OR if using the bash shell: export CUDA_PATH=/opt/cuda \end{lstlisting} For all distros you will need to add to the ./configure line in your build script, the following: @@ -397,7 +397,7 @@ For all distros you will need to add to the ./configure line in your build scrip \begin{lstlisting}[numbers=none] --with-cuda -#so your configure line will look something like this: +so your configure line will look something like this: ./configure --with-single-user --with-booby --with-cuda \end{lstlisting} diff --git a/parts/Trouble.tex b/parts/Trouble.tex index 8963d87..db2c6a6 100644 --- a/parts/Trouble.tex +++ b/parts/Trouble.tex @@ -296,7 +296,6 @@ There are some Help features currently included in the Shell Cmds menu. Those av \item \textit{Shortcuts} html file for easily looking up a particular shortcut. \item \textit{RenderMux} shell script to use ffmpeg concatenate to copy files such as \textit{look.mp4001}, \textit{look.mp4002}, \textit{look.mp4005}{\dots} that were rendered using \textit{Create new file at each label} or with the Render Farm. \end{enumerate} -\clearpage \begin{figure}[h!] \centering