From 5f5b63e65da55705f676e894cd48ddcaf9af98f1 Mon Sep 17 00:00:00 2001 From: Good Guy Date: Fri, 23 Jul 2021 14:48:04 -0600 Subject: [PATCH] update with Andrea more Context Help + minor --- parts/AuxilaryPrograms.tex | 2 +- parts/Developer.tex | 10 +++++----- parts/FFmpeg.tex | 8 ++++---- parts/Installation.tex | 41 ++++++++++++++++++++++++++++++++++++++ parts/Tips.tex | 4 ++-- 5 files changed, 53 insertions(+), 12 deletions(-) diff --git a/parts/AuxilaryPrograms.tex b/parts/AuxilaryPrograms.tex index 033a003..85af88e 100644 --- a/parts/AuxilaryPrograms.tex +++ b/parts/AuxilaryPrograms.tex @@ -109,7 +109,7 @@ The following extensions of files in \CGG{}'s \texttt{.bcast5} directory are exp \item [.rc] rc stands for \textit{run commands} so basically represents a script \item [.toc] toc is \textit{table of contents} file for MPEG video files (a type of index) \item [Cinelerra\_plugins] a list of the currently loaded plugins available in your \CGG{} session - \item [Cinelerra{}\_rc] the user's preferences and settings are saved in this file to be used on startup + \item [Cinelerra{}\_rc] the user's preferences and settings are saved in this file to be used on startup. This file can be carefully edited to change startup values for certain parameters, but if you inadvertently set up something incorrectly, you may end up crashing the program. \item [ladspa\_plugins{\dots}] list of currently loaded ladspa plugins for each version of \CGG{} being used \item [layout\#...\_rc] user-defined window layout setup with the layout name as part of the file name \item [.xml] used for various backups or for the current settings of plugins that you have used diff --git a/parts/Developer.tex b/parts/Developer.tex index 783d64b..82f1317 100644 --- a/parts/Developer.tex +++ b/parts/Developer.tex @@ -351,7 +351,7 @@ developer's feedback and experimentation. \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. +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, 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 @@ -398,10 +398,10 @@ Look into opencv4/opencv2/core/types.hpp:711;27 \textbf{libaom} \begin{description}[noitemsep] - \item Status - currently at version 1.0.0 - \item Problem - requires cmake 3.5 + \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.5 + \item Your workaround - upgrade on those systems to cmake 3.6 \end{description} \textbf{x10tv} @@ -889,7 +889,7 @@ Why the local copy of \CGG{} manual should be used? \item For context help keyphrases matching, the local copy of \textit{Contents.html} and \textit{Index.html} is necessary anyway. \item Grepping \textit{CinelerraGG\_Manual/*.html} files of the remote manual from the website cannot work per definition. \item The local copy usage ensures exact matching of the version of the manual to the version of \CGG{}. Otherwise, if one uses for some reason an older version of \CGG{} with the help fetched from the newer version of the website manual, various incompatibilities can be expected. - \item Packing the manual into AppImage, the current method of \CGG{} packaging, should be much easier than merging two different git branches when building from source packages, as was earlier. + \item Packing the manual into AppImage, the current method of \CGG{} packaging, should be much easier than merging two different git branches when building from source packages, as was done earlier. \end{enumerate} What about Localization? diff --git a/parts/FFmpeg.tex b/parts/FFmpeg.tex index 8ca17bc..8ed0e1a 100644 --- a/parts/FFmpeg.tex +++ b/parts/FFmpeg.tex @@ -38,14 +38,14 @@ that ffmpeg early probes is enabled; (2) \textit{Try FFMpeg last} indicator mes \label{sec:create_ffmpeg_options_files} \index{ffmpeg!options files} -This section describes how the FFmpeg options files work for decoding and encoding and goes into great detail. It will make more sense if you look at \CGG{}'s ffmpeg config directory and the \CGG{} menus at the same time. +AppImage does not provide this capability. This section describes how the FFmpeg options files work for decoding and encoding and goes into great detail. It will make more sense if you look at \CGG{}'s ffmpeg config directory and the \CGG{} menus at the same time. It is meant to include everything necessary for complete understanding. You will be able to personalize your own options files without knowing all of the information included below if you know the basics. The word encoding is used interchangeably with the word rendering. The possible combinations for ffmpeg options files are literally combinatorial -- that is a lot (factorial!). The allowed media file format / codec choices are much more flexible than you might realize. When the ffmpeg design was initially added, some parameter files which describe the choices which the program uses had to be created. There are way too many to enumerate in the deliverable \CGG{} package. Some quite detailed information for how ffmpeg options work is given here and hopefully, enough basics for simple understanding. It may all seem complicated at first, but will become obvious. \subsection{File naming convention}% \label{sub:file_naming_convention} -In \CGG{}'s ffmpeg configuration directory you will see files as listed and described below. File type and extension names are the key for \CGG{}'s use of ffmpeg. Basically the \texttt{.opts} file extension represents options; \texttt{.dfl} represents defaults; and all the rest are media types. For example one media type is quicktime so that \texttt{*.qt} file names would be the \textit{quicktime} choices. In the file names below, \textit{ext} refers to a set of files with file names matching the \texttt{*.ext} file extension. And \textit{typ} refers to a type of format / codec combination used, that is, the media type. +AppImage does not provide this capability. In \CGG{}'s ffmpeg configuration directory you will see files as listed and described below. File type and extension names are the key for \CGG{}'s use of ffmpeg. Basically the \texttt{.opts} file extension represents options; \texttt{.dfl} represents defaults; and all the rest are media types. For example one media type is quicktime so that \texttt{*.qt} file names would be the \textit{quicktime} choices. In the file names below, \textit{ext} refers to a set of files with file names matching the \texttt{*.ext} file extension. And \textit{typ} refers to a type of format / codec combination used, that is, the media type. In the ffmpeg configuration directory there are a series of options files used when encoding or decoding audio or video. They are read in the order from top to bottom and only the files needed for the current operation are added to the active configuration. @@ -91,7 +91,7 @@ In the ffmpeg configuration directory there are a series of options files used w \label{sub:option_file_format_content} \index{ffmpeg!option file format} -For the option files a specific format must be followed in creating the file content. +AppImage does not provide this capability. For the option files a specific format must be followed in creating the file content. In \texttt{typ.ext} encoder parameter files, the first line is defined as: \begin{lstlisting}[style=sh] @@ -327,7 +327,7 @@ Figure~\ref{fig:audio-preset02} shows \textit{ffmpeg} video for the Kind. Note t \label{sec:ffmpeg_image2_streams} \index{ffmpeg!image2 streams} -Another feature gained from using ffmpeg in \CGG{} takes advantage of what is being referred to as the \textit{\%d trick}. This trick uses the ffmpeg muxer image2 and a filename template to create a series of image files of a given type. A specific example is described below. +AppImage does not provide this capability. Another feature gained from using ffmpeg in \CGG{} takes advantage of what is being referred to as the \textit{\%d trick}. This trick uses the ffmpeg muxer image2 and a filename template to create a series of image files of a given type. A specific example is described below. To encode a series of $48$\,bit tiff output image files, add a file to the \CGG{} data ffmpeg/video subdirectory as in: diff --git a/parts/Installation.tex b/parts/Installation.tex index 7e03773..c83c456 100644 --- a/parts/Installation.tex +++ b/parts/Installation.tex @@ -137,6 +137,7 @@ Help pages. The file to download is: substituting for "20210531" the "yyyymmdd" representing latest release date. Then unpack to your Cinelerra/bin/doc directory so it is included in your built system. +NOTE End Alternatively, there are some pre-built dynamic or static binaries which are updated on a fairly regular basis (as long as code changes @@ -741,6 +742,46 @@ this can be debilitating; you can always run \texttt{ffmpeg -formats} and \texttt{ffmpeg -codecs} to see what is available on your system. +\section{Building the HTML Manual for Context Help}% +\label{sec:building_the_manual} +\index{context help} + +In addition to compiling your own \CGG{}, you should also build an html version of the manual that is needed for Context Help in the program. The main version of the manual is in latex to produce a pdf version of the manual and this is required to be built first as the basis for the html version. This means that you need a full latex environment, git, and the latex2html program in order to eventually create the html version. Texlive is about 1 GB; Latex2html itself has many requirements and missing any will result in failure: some requirments include Netpbm, GhostScript, dvips, etc. Latex2html must be at least version "2021.2" in order to create the html manual version from the latex. + +The steps are as follows: +\begin{enumerate} + \item Download the manual in LaTeX: + +\begin{lstlisting}[style=sh] +git clone "git://git.cinelerra-gg.org/goodguy/cin-manual-latex.git" master +\end{lstlisting} + + \item Included in the download is the \textit{translate\_manual} script. After modifying this file to have execute permission, run this script from a terminal window in the \textit{master} directory where it was downloaded (be aware that this script includes several \textit{rm} commands): +\begin{lstlisting}[style=sh] +./translate_manual +\end{lstlisting} + +The PDF document will be produced from the latex source in the \textit{master} directory. Since the glossary and index are also present, it has to run the pdf build several times. The following commands in the \textit{translate\_manual} script produce the PDF document from latex source which includes invoking makeindex for the Index and Glossary. + +\begin{lstlisting}[style=sh] +pdflatex CinelerraGG_Manual.tex +makeindex CinelerraGG_Manual.idx +pdflatex CinelerraGG_Manual.tex +makeindex CinelerraGG_Manual.nlo -s nomencl.ist -o CinelerraGG_Manual.nls +pdflatex CinelerraGG_Manual.tex +\end{lstlisting} + +After these commands are executed you will have the manual only in PDF format. So if you only want a PDF version, you only need to run these previous 5 lines but Context Help from the program will not be available with the PDF version. + + \item Next, to produce HTML output the script then moves (renames) latex2html-init to .latex2html-init (starting with dot). + + \item Finally latex2html is run with a unique set of parameters and some cleanup is performed. The script uses latex2html. It creates the directory CinelerraGG\_Manual containing all the files of the manual in html: tables, references, index, glossary, and various images. + + \item After installation of the \CGG{} program, place the complete unchanged directory CinelerraGG\_Manual, as it was produced by latex2html from the manual package, into the 'doc' directory of the installed Cinelerra package. This will be the directory bin/doc/CinelerraGG\_Manual if \CGG{} was built --with-single-user. The script ContextManual.pl will automatically be in bin/doc after the successful build of the program. It is this perl script that allows the program to access CinelerraGG\_Manual to offer Context Help. + + \item Optionally you can make some adjustments to the latex2html command line in the \textit{translate\_manual} script. Some variants are shown in the comments inside the script but changes may impact the usability of Alt/h hotkey from the program. +\end{enumerate} + \section{Windows 10 with Cygwin for \CGG{} Limited}% \label{sec:ms_windows10} \index{windows 10} diff --git a/parts/Tips.tex b/parts/Tips.tex index d564ea6..86629b9 100644 --- a/parts/Tips.tex +++ b/parts/Tips.tex @@ -94,7 +94,7 @@ There are 4 phases during \CGG{}’s handling of hardware acceleration. These fi can not convert the data, you will see the error message of \textit{Error retrieving data from GPU to CPU}. \end{enumerate} -Due to variations in user’s computer hardware configuration, it is often suggested that you refer to your startup window to check for error messages. Since your situation is unique, the error may not have been seen by anyone else and is probably unknown/undocumented. +AppImage does not provide this capability. Due to variations in user’s computer hardware configuration, it is often suggested that you refer to your startup window to check for error messages. Since your situation is unique, the error may not have been seen by anyone else and is probably unknown/undocumented. \textcolor{red}{For debugging problems, modify in the \CGG{} ffmpeg subdirectory, the file: \texttt{decode.opts} by temporarily changing the line from \textit{loglevel =fatal} to \textit{loglevel =verbose} and restarting \CGG{}}. \subsubsection*{Possible improvements or differences}% @@ -165,7 +165,7 @@ or HEVC with NVIDIA, VDPAU driver is buggy, skipping \end{lstlisting} -If you would like to see more information on what is occurring, you can modify in the \CGG{} ffmpeg subdirectory, the file: \texttt{decode.opts} by temporarily changing the line from \textit{loglevel =fatal} to \textit{loglevel =verbose} and restarting \CGG{}. Then you will see messages in the startup window like: +AppImage does not provide this capability. If you would like to see more information on what is occurring, you can modify in the \CGG{} ffmpeg subdirectory, the file: \texttt{decode.opts} by temporarily changing the line from \textit{loglevel =fatal} to \textit{loglevel =verbose} and restarting \CGG{}. Then you will see messages in the startup window like: \begin{lstlisting}[numbers=none] [AVHWDeviceContext @ 0x7fc9540be940] Successfully created a VDPAU device -- 2.26.2