Andrea incorporation of Georgy clarifications on Keyframes/Plugins
[goodguy/cin-manual-latex.git] / parts / Developer.tex
index 712b3361acc08831240172910fbc31094ca1e215..5334f8df8ab6c15711eeb2921815923b32daedde 100644 (file)
@@ -98,11 +98,11 @@ FFmpeg is a \textit{strongly connected} component in the build linkage and widel
        \item \texttt{./configure} {\dots}
 \end{itemize}
 
-Specific information on using the current ffmpeg GIT repository follows.  You have to supply the actual URL location of the ffmpeg git as you can see in this example \texttt{?bld.sh?} script:
+Specific information on using the current ffmpeg GIT repository follows.  You have to supply the actual URL location of the ffmpeg git as you can see in this example \texttt{bld.sh} script:
 
 \begin{lstlisting}[numbers=none]
-#!/bin/bash\newline
-() ./autogen.sh\newline
+#!/bin/bash
+./autogen.sh
 ./configure --with-single-user --with-booby --with-git-ffmpeg=https://git.ffmpeg.org/ffmpeg.git
 make && make install ) 2>1 | tee log
 mv Makefile Makefile.cfg
@@ -470,7 +470,10 @@ It comes back with the routine as:
 \label{sec:valgrind_support_level}
 \index{build!valgrind}
 
-Valgrind is a memory mis-management detector.  It shows you memory leaks, deallocation errors, mismanaged threads, rogue reads/writes, etc.  \CGG{} memory management is designed to work with Valgrind detection methods.  This assists in developing reliable code.  Use of Valgrind points out problems so that they can be fixed.  For example, when this version of \CGG{} shuts down, it deallocates memory instead of just stopping, thus making memory leak detection possible.
+Valgrind is a memory mis-management detector.  It shows you memory leaks, deallocation errors, mismanaged threads, rogue reads/writes, etc.  \CGG{} memory management is designed to work with Valgrind detection methods.  This assists in developing reliable code.  Use of Valgrind points out problems so that they can be fixed.  For example, when this version of \CGG{} shuts down, it deallocates memory instead of just stopping, thus making memory leak detection possible.  An alternative to Valgrind is
+\textit{heaptrack} which has good documentation and for large programs can run
+faster.  You can find the source and information about it at {\small\url{https://github.com/KDE/heaptrack}}.
+\index{valgrind!heaptrack}
 
 The best way to compile and run valgrind is to run the developer static build. This takes 2 steps and you must already have gdb and valgrind installed:
 
@@ -660,7 +663,7 @@ So why use a Profiler? Because it is the ``ls'' for executable functions!!
 \section{Working on AppImage}
 \label{sec:working_on_appimage}
 
-You can work on the appimage file to make changes and fix errors, or you can create a new appimage from scratch containing customizations. For example, you can add new rendering presets; update the Context-Help; change libraries that are no longer supported by the current distro; or make other modifications.
+You can work on the appimage file to make changes and fix errors, or you can create a new appimage from scratch containing customizations. For example, you can add new rendering presets, update the Context-Help, change libraries that are no longer supported by the current distro, or make other modifications.
 
 \subsection{Managing AppImage}
 \label{sub:managing_appimage}
@@ -671,13 +674,13 @@ A limitation of using AppImage instead of installing the binary or compiling fro
 Because the appimage file is nothing more than a compressed file containing the same structure as the installed program plus other libraries that allow the program to run independently from the system, the content can be extracted so that you can work on it as you would have on the normally installed program.  To do this you will need the appimage management program.
 Many Linux distros come with this managment program by default, but others may not. For instance in the case of Arch Linux the \texttt{appimagetool-bin} package from AUR needs to be installed. 
 
-To work on the appimage, first unpack it using the command\protect\footnote{Example provided by Glitterball3}:
+To work on the appimage, first unpack it using the command\protect\footnote{Example provided by Glitterball3} (note that you do not have to be root to do any of the following):
 
 \begin{lstlisting}[numbers=none]
        /{path to appimage}/CinGG-yyyymmdd.AppImage --appimage-extract
 \end{lstlisting}
 
-You will now have a \texttt{squashfs-root} folder containing \texttt{/usr/bin/} as well as other files and directories such as \texttt{/usr/lib} and \texttt{/usr/share}. \texttt{Bin} is the folder similar to the one installed with \CGG{} and contains the files that you can work on. Now it is possible to make changes like adding  a custom preset in \texttt{/ffmpeg/video} or replacing a library that no longer works with a more recent version by working in \texttt{/squashfs-root/usr/lib}.
+You will now have a \texttt{squashfs-root} folder in your current directory containing \texttt{/usr/bin/} as well as other files and directories such as \texttt{/usr/lib} and \texttt{/usr/share}. \texttt{Bin} is the folder similar to the one installed with \CGG{} and contains the files that you can work on. Now it is possible to make changes like adding a custom preset in \texttt{/ffmpeg/video} or replacing a library that no longer works with a more recent version by working in \texttt{/squashfs-root/usr/lib}.
 
 To start the unpacked program from the bin folder use the command:
 
@@ -708,6 +711,16 @@ Alternatively, download the \texttt{appimagetool} version from \url{https://gith
 
 Now there will be an appimage called \textit{CinGG-yyyymmdd.AppImage} with the changes that were made.
 
+NOTE: for the \textbf{bdwrite} program which is used to create the udfs image to burn Blu-ray
+media (or any other standalone program), you will find it in the squashfs-root/usr/bin
+subdirectory. You only need to do the initial unpacking extract step and then just copy
+bdwrite and the entire squashfs-root/usr/lib directory to a convenient permanent place for
+usage.  Then when running bdwrite, you will have to first export the libary path by typing
+this command in the window first:
+\begin{lstlisting}[numbers=none]
+export LD_LIBRARY_PATH=/{put your copied usr/lib path here}:$LD_LIBRARY_PATH
+\end{lstlisting}
+
 \subsection{Build the CinGG.AppImage from scratch}
 \label{sub:built_appimage_scratch}
 \index{appimage!creating}