add cha 19
[goodguy/cin-manual-latex.git] / parts / Trouble.tex
1 \chapter{Troubleshooting and Help}%
2 \label{cha:Troubleshooting and Help}
3
4 You can report potential problems, bugs, and crashes to the Cinelerra-GG website at:
5 \medskip
6
7 \hspace{10mm}\href{https://www.cinelerra-gg.org/}{https://www.cinelerra-gg.org}
8 \medskip
9
10 Here you can log the problem into the MantisBT bugtracker, or use the forum Q\&A for help from other users, or email the
11 problem using the address: \href{mailto:cin@lists.cinelerra-gg.org}{cin@lists.cinelerra-gg.org} . It is usually more
12 helpful if instead of starting Cinelerra from its application icon, start from a window so that if there are error
13 messages related to the problem, they can be captured from the screen and emailed or logged. The command to run
14 from a window is: {\textless}directory\_path of where you installed cinelerra{\textgreater}/bin/cin -- for example if
15 installed in the directory /mnt0/build5/cinelerra-5.1, you would execute the following command to start the program:
16 \ \ /mnt0/build5/cinelerra-5.1/bin/cin \ . \ The problem you are experiencing may be as simple as an error due to the
17 settings in your \$HOME/.bcast5 subdirectory so you may want to first rename your current .bcast5 in order to start
18 with default settings. By renaming the directory instead of deleting it, you will be able to put it back and not lose
19 all of your preferences.
20 \medskip
21
22 Some other troubleshooting help is also included in other sections of this manual for specific features.
23
24 \section{What to Include in Problem Reports}%
25 \label{cha:What to Include in Problem Reports}
26 For the best help, if you have a reproducible problem and can provide the following list of materials for analysis, it
27 is usually possible to figure out what the problem is and how to fix it. \ It may be a simple usage or setup mistake or
28 a real bug which a programmer would like to fix rather quickly. \ Although it is not always necessary to provide this
29 much information, it eliminates the ``try this'' or ``did you do this?'' and a lot of ``guessing'' rather than heading
30 straight for a solution. \textcolor{red}{Even if you can not provide all of this information, please report the problem in case other users are having the same issue.}
31 \medskip
32
33 Basically we\textbf{ need to see what you see }with the input, output, and session file. \ Here is a list of the items that will most likely help to resolve the problem, but all of them will not necessarily be needed.
34 \medskip
35
36 \begin{itemize}[nosep]
37         \item Provide a detailed description of the problem and the last operation performed if you remember it.
38         \item Supply a small representative sample of the original input that exhibits the issue.
39         \item If possible, also provide the rendered output, again using that representative sample.
40         \item Save a session file used with that same sample which will contain a lot of setup parameters; the best method to do this is to use the File pulldown of ``Export Project...'' with the Copy option. That way all of the files will be in 1 location and easily loaded onto any other computer.
41         \item To make sure that the same rendering setup is used, it may be necessary to send an additional session file at the definition point just before rendering starts.
42         \item Include the Operating System name and version number and version of Cin that you are running. You can find the date and time ``built'' in the Settings$\rightarrow$Preferences, About tab, bottom left corner.
43 \end{itemize} 
44 \medskip
45
46 It is better to upload any files to a drop site as some of them can be quite large.
47 \medskip
48
49 \textbf{How to create a session file:} \ from the menubar pulldown File$\rightarrow $Save\_as{\dots} \ and choose a
50 filename, for example /tmp/beforerender.xml . \ Do this after you have the situation setup so can see values in use.
51 \ As just stated, \textit{Export Project} option provides the most inclusive session information, but size could make
52 it very large and cumbersome to upload or download.
53 \medskip
54
55 \textbf{How to create a representative small sample:} 
56 \begin{enumerate}[nosep]
57         \item open the input media, set up the scenario as you normally would to start the project render;
58         \item select 5-15 seconds of media using the edit mode left mouse button drag highlighting on the timeline;
59         \item start the render dialog (Shift R), set the filename path, and set ``Render range'' to ``Selection'';
60         \item recommended ``Insertion strategy'' is ``Replace current project''; then press the checkmark OK. The result will ``load replace'' the current project for you to review to ensure the error still occurs. If this small sample does not create the error, try a different section or upload the entire input media.
61 \end{enumerate}
62
63
64 \section{Crash Dumps for Analysis}%
65 \label{cha:Crash Dumps for Analysis}
66 If you get a SEGV crash and can explain what steps you took, a /tmp/cinelerra\_{\textless}pid{\textgreater}.dmp file is
67 very useful for analysis. \ You can also use Ctrl-c in the controlling window to force an INTR signal interrupt when
68 you think the program is hung up. \ You can only perform one Ctrl-c as the second Ctrl-c quits out of the program. \ It
69 is best to upload the .dmp, input files and other files to datafilehost or similar temporary site as they may be quite
70 large. \ The .dmp filename looks like /tmp/cinelerra\_{\textless}pid{\textgreater}.dmp. \ Log a bug report or email all
71 helpful information on the crash, location of uploaded files, and list of setup steps that illustrate the problem to
72 \href{mailto:cin@lists.cinelerra-gg.org}{cin@lists.cinelerra-gg.org} .
73 \medskip
74
75 \begin{enumerate}[nosep]
76         \item Use the latest version of Cinelerra as you want to make sure the problem has not been fixed.
77         \item Be sure gdb is installed (usually installed but if not, it is easy to do so).
78     \item Run as root if at all possible (this enables using gdb to create a full /tmp/cinelerra*.dmp file).
79     \item Be sure Settings-{\textgreater}Preferences-{\textgreater}Interface-{\textgreater}trap SEGV and trap INTR are checked.
80         \item Invoke the error. This should create the file /tmp/cinelerra-{\textless}pid{\textgreater}.dmp .
81 \end{enumerate}
82 \medskip
83
84 For those who can not run as root or can not create the problem while running as root, another method to create a dump
85 is available. \ Here are the steps to do so -- you should also have gdb installed.
86 \medskip
87
88 \begin{enumerate}[nosep]
89         \item Temporarily login as root and key in: \ \ echo 0 {\textgreater} /proc/sys/kernel/yama/ptrace\_scope . This opens up ptrace, used by gdb (the debugger). You will want to reverse this when done.
90         \item Run Cinelerra as an ordinary user from a window using the command line and try to create the problem. If the program crashes, this should produce a file named /tmp/cinelerra*.dmp where * is a number. The dump usually takes about 30 seconds or so to complete after the failure invokes the crash handler, so be patient. 
91         \item Email the output that shows in the window from where you started up Cinelerra and upload or directly email the /tmp/cinelerra*.dmp file (this file may be too large for the Mailing List).
92         \item After you are finished creating/testing the problem, reverse the previous setting while logged in as root by keying in:\ \ echo 1 {\textgreater} /proc/sys/kernel/yama/ptrace\_scope .
93 \end{enumerate}
94
95 \textcolor{red}{Even if you are not logged in as root or have ptrace enabled, if you
96 have a .dmp file and know what the last thing you did is, please provide the .dmp file for analysis.} There is a low
97 probability that the dump will prove useful, but if the problem can be recreated it can usually be fixed!
98
99 \section{When things go wrong}%
100 \label{cha:When things go wrong}
101 Sometimes things go wrong and there are some ways to continue your work without much trouble. Below is a list of items
102 to try before abandoning your session.
103
104 \begin{enumerate}[nosep]
105         \item If you suddenly get hangs on media or strange looking tracks, you might want to rebuild indexes. You can do this in the Resources window with a right mouse click on the media to get a pulldown\ with the \textit{Rebuild index} option. For an easy way to rebuild for all of your media use Settings$\rightarrow$Preferences, Interface tab, Index Files section, ``Delete existing indexes''. This will take some time to recreate all of the currently loaded media and subsequent loads, but can be an easy fix.
106         \item On an older computer, if you are playing media and it can not keep up, you can turn off ``Play every frame'' in the Video Out tab of Settings$\rightarrow$Preferences, Playback tab. You will then see the video jump as it skips frames in order to stay caught up.
107         \item The \textit{Cache size} can be lowered to 1048 if playback seems choppy or if you have problems with lv2 plugins, or you can increase the \textit{Cache size} for better flow. This can be changed in Settings$\rightarrow$Preferences, Performance tab.
108         \item After saving your current session and exiting Cinelerra, you might want to rename your current \$HOME/.bcast5 directory and start with the default setup. This will eliminate your settings as the potential cause of a problem; however, all of your current preferences will be lost until you go back to your original .bcast5.
109         \item Some media has only a single keyframe at the beginning of the file so that moving anywhere on the timeline results in just a black image in the compositor. Cinelerra needs more keyframes to determine position. You can temporarily use Settings$\rightarrow$Proxy to 1/2 size to put in keyframes. How to use Proxy is explained in Performance Tips and Other Tips, chapter 19.
110         \item If the rate at which frames are captured during Recording is much lower than the framerate of the source, the video will accumulate in the recording buffers over time and the audio and video will become out of sync. Decrease the number of frames to buffer in the device in Settings$\rightarrow $Preferences, Recording tab so that the excess frames are dropped instead of buffered.
111         \item If loading files locks up, this might be because Cinelerra is building picons/vicons for the Resources window. If you load a large number of images it needs to decompress every single image to build a picon/vicon. Go into Settings$\rightarrow$Preferences, Appearance tab and disable \textit{Use}\textit{thumbnails in resource window} to skip this process. Keep in mind though, that it only has to create these thumbnails the first time a new piece of media is loaded or the values are changed.
112         \item For an older computer with less CPU power, in Settings$\rightarrow$Preferences, Appearance tab, be sure that \textit{Autocolor assets }is disabled; set \textit{View thumbnail size} \& \textit{Vicon quality}\& \textit{Vicon color mode} to lower values or switch to \textit{No Play} instead of \textit{Full Play} in the Resources window (this is to the right of the word \textit{Visibility} in the left hand side of that window). You will then have more CPU and more memory available to do actual editing.
113 \end{enumerate}
114 \medskip
115
116 {\bfseries
117 Some Helpful User Readable Text Dumps}
118 \medskip
119
120 On the File pulldown, there is a {\textquotedbl}Dumps{\textquotedbl} option with a submenu of dump EDL, Plugins, Assets, and Undo. \ In all cases, you will have to have started Cinelerra from a window instead of from an application icon and
121 the text results will be shown in that window.
122 \medskip
123
124 \begin{itemize}[nosep]
125 \item \textit{Dump EDL} will display your current EDL state on the screen in the window from where you started Cin. This can be useful to see information concerning a specific edit or a file path.
126 \item \textit{Dump Plugins} will show the names of the currently loaded plugins.
127 \item \textit{Dump Assets} displays the media assets that you have loaded and various pertinent details on each, such as samplerate, width, and height.
128 \item \textit{Dump Undo }will dump the last 32 edits on the undo stack exactly as kept, which can be useful if you are looking to see how far back in the undo to go to get to a specific spot.
129 \end{itemize}
130 \medskip
131
132 {\bfseries
133 Common Problems}
134
135 Some messages you may see in the startup window may or may not be errors. Some examples are:
136 \bigskip
137
138 \textit{FFMPEG::open\_decoder: some stream times estimated:}\textbf{ \ \ }/your directory/filename
139 \medskip
140
141 This is not a problem. Basically, when you open a file if a stream has a known duration, there is no message. If the duration is unknown, it is estimated by using the File Size and Bitrate to estimate the duration. This may just indicate that the stream number Cinelerra uses versus ffmpeg may be counted differently.
142 \bigskip
143
144 \textit{AudioALSA::write\_buffer err -32(Broken pipe) at sample \#}
145 \medskip
146
147 This indicates that there is something wrong with the audio. Some reasons for this are:
148 \begin{itemize}[nosep]
149         \item You simply stopped playing in Cinelerra while the audio is in progress.
150         \item Running on a computer where there is no sound card.
151         \item Incorrect setup of the audio parameters in the Settings-{\textgreater}Preferences, Playback tab.
152         \item Your sound system is already in use by another program, like when playing {\textquotedbl}tunes{\textquotedbl} outside Cin.
153 \end{itemize}
154 \bigskip
155
156 \textit{Playback does not keep up so you hear the audio ahead of the video.}
157 \medskip
158
159 When this occurs, it most likely means that there is not enough CPU power to keep up. You can go into Settings$\rightarrow$Preferences, the Playback tab and uncheck ``Play every frame''. Not playing every frame means that as it plays, if it can not keep up with doing all it has to do to change the frame into a vframe and then draw it, the program just notes that it is falling behind so skips frames to catch back up. This does not affect rendering. A different solution is to use Background Rendering as described in Rendering, chapter 7.
160 \bigskip
161
162 \textit{Cinelerra will not start and produces error message on the startup window.}
163 \medskip
164
165 There can be various reasons that Cinelerra does not come up. Some of the recent reasons are listed here. Please notify the \href{http://www.cinelerra-gg.org/}{www.cinelerra-gg.org} website when you have any unknown startup issues.
166 \medskip
167
168 \begin{itemize}[nosep]
169         \item Cin doesn't come up in Debian with compiz window manager running. Workaround is to use a different window manager or bring up cin first and then compiz. There is also a report that Compiz leads to single frame problems after a certain amount of time in the case where you switch to fullscreen mode and than back to normal node -- cin stops working and so you will have to restart cin.
170         \item When a library goes from one version to a later version, sometimes a pre-built Cin binary will fail because it was created at a different version than the one the user has on their computer. This seems to happen more frequently on Arch distros because Arch has continuous releases and is usually kept up to date. An example of the error message you might see in your startup window would be:\newline``cin: error while loading shared libraries: libvpx.so.5: cannot open shared object file: No such file''
171 \end{itemize}
172 \medskip
173
174 You can usually install the required library to fix the problem. A temporary fix may be to create a symlink but this must be done with extreme caution as it may create an unstable condition. \ A better workaround is to use a tarball to install the software instead of the package build until the libraries are in sync between the build and your Operating System install.
175 \bigskip
176
177 \textit{ Loading a very large number of media files, for example 500 clips, crashes Cinelerra with messages similar to the following that are displayed in the window from where you started Cin:}
178 \medskip
179
180 \begin{lstlisting}[numbers=none,xleftmargin=10mm]
181
182    BC_DisplayInfo::init_window: cannot open display "".
183    BC_DisplayInfo::init_window: cannot connect to X server.
184    unjoined tids / owner 42
185      00007feb27fff700 / 00007feb8f496700 9MainError
186      00007feb267fc700 / 00007feb7affd700 18FFMPEGScanProgress
187      ... 
188
189 \end{lstlisting}
190
191 This usually indicates that you are out of Operating System file descriptors.  You can increase the amount easily with the following command line:  ulimit -n 4096   where 4096 is a size suggestion but can be increased.  You can include this command line in your .bashrc or .profile file for the user login which gets run every time you login, or modify the Operating System limit for everyone in the system file, which for Fedora is /etc/security/limits.conf.  Alternatively, you can reduce the number of file descriptors needed by going into Settings>Preferences, Appearance tab and unchecking the flag “use thumbnails in resource window”.
192
193 \bigskip
194 \textit{Masking Feather is not working and produces error messages on the startup window similar to:}
195 \medskip
196
197 \begin{lstlisting}[numbers=none,xleftmargin=10mm]
198 0:1(10): error: GLSL 4.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00 ES
199 Playback3D::print_error:
200 #version 430 // vertex shader
201 in vec3 in_pos;
202 void main000() \{
203 gl_Position = vec4(in_pos-vec3(0.5,0.5,0.), .5);
204 }
205 void main() \{
206 main000();
207 }
208 \end{lstlisting}
209
210 In the mask window, check the box ``Disable OpenGL masking'' to use software instead of OpenGL.
211
212 \section{Menu Bar Shell Commands}%
213 \label{Menu Bar Shell Commands}
214
215 In order to provide some types of help, the Menu Bar Shell Commands are available for customization purposes. \ In the
216 main window on the top line containing the File, Edit, {\dots} Window pulldown menus, all the way to the right hand
217 side is the ``shell cmds'' icon. \ You might see a small gold-color bordered box with the {\textgreater}\_.\_ inside
218 and if you mouse over it, the tooltip says ``shell cmds''. This is a configurable popup which gives you the ability to
219 see a table of Shortcuts in html format, refer to the reference manual or execute a pre-defined script to perform a
220 specific task, such as some type of post processing which you plan on performing on a repeat basis. \ Unless redirected
221 elsewhere, the output from executing any script-type commands will be displayed in the window from where you started
222 Cinelerra.
223 \medskip
224
225 The Shell Cmds popup menu items are configured in:
226 \medskip
227
228 \hspace{10mm}Settings$\rightarrow$Preferences$\rightarrow$Interface$\rightarrow$Shell Commands
229 \medskip
230
231 This runs a dialog that lets you Add/Del/Edit the scripts in the main menu popup. \ Possible options are:\newline
232
233 \begin{enumerate}[nosep,]
234         \item \textit{Add} a new menu item/script:\newline
235 \ \ \ \ click on the \textit{Add} button\newline
236 \ \ \ \ in the Label box, change the word {\textquotedbl}new{\textquotedbl} to the desired menu label (for example:
237 Graphics Editor)\newline
238 \ \ \ \ in the Commands box, type the command lines to be included in the script (for example: gimp)\newline
239 \ \ \ \ click the green checkmark for OK in the Commands window\newline
240 \ \ \ \ click the green checkmark for OK in the Shell window\newline
241 \ \ \ \ click on OK or Apply in the Preferences window\newline
242         \item \textit{Del} to delete an existing menu item:\newline
243 \ \ \ \ \ select to highlight an entry in the Cinelerra: Shell listbox\newline
244 \ \ \ \ \ click on the \textit{Del }button\newline
245 \ \ \ \ \ click the green checkmark for OK in the Shell window\newline
246 \ \ \ \ \ click on OK or Apply in the Preferences window (the entry is now deleted)\newline
247         \item \textit{Edit} an existing menu item:\newline
248 \ \ \ \ select to highlight an entry in the Cinelerra: Shell listbox\newline
249 \ \ \ \ click on the \textit{Edit} button (the Commands window appears)\newline
250 \ \ \ \ set the label and/or commands to the new desired values\newline
251 \ \ \ \ click on the green checkmark for OK in the Commands window\newline
252 \ \ \ \ click on the green checkmark for OK in the Shell window\newline
253 \ \ \ \ click on OK or Apply in the Preferences window
254 \end{enumerate}
255 \medskip
256         
257 Next time you click on the ``shell cmds'' icon, you will have the changes you made in effect.\newline
258
259 Both the \textit{Add} and \textit{Edit} options have checkboxes in the Commands window for the following:
260 \medskip
261
262 \begin{itemize}[nosep]
263         \item OnExit notify \ \ \  choose Always, Never, or On error to get a popup window notify
264         \item run path/script.sh + argvs \ \ \ to run a particular script with argvs (\$1, \$2,{\dots} arguments)
265 \end{itemize}
266
267
268 {\ttfamily
269 \textrm{{When modifications to the Shell Cmds are included in a new Cinelerra release, they are not added to your Preferences file automatically unless you create a new one. \ But if you have added no custom scripts, you can update your currently existing \$HOME/.bcast5/Cinelerra\_rc file to delete the lines that are all grouped together that begin with the letters: \ SHBTN \ \ (the entire line - these are the SHell BuTtoNs). \ You should first Quit out of Cinelerra, edit the file, and then when you restart Cinelerra, it will create the new default buttons in that same file.}}}
270 \medskip
271
272 There are 2 specific Cinelerra file names that have unique characteristics that allow for usage from a user-defined
273 script. \ The first one is an environment variable, CIN\_RENDER which is used in the RenderMux shell command that is already setup. \ It contains the complete path and filename of the file in your session that you selected as ``Select a file to render to'' when you ran a Render operation.
274 \medskip
275
276 The second one concerns usage of the Resource window assets to use as argvs in shell scripts. \ The added command line
277 can ONLY be a script. \ Then if your script refers to \$1, \$2 and \$3 and you highlight 3 files in the Media folder,
278 their full path name will be used as the argvs to your script. \ For example, if you added a shell commands script
279 \ /workspace/script.sh \ that contains the following lines:
280
281 \begin{lstlisting}[numbers=none,xleftmargin=10mm]
282 cp ``\$1'' /tmp/temporary_copy
283 cp ``\$2'' /tmp/new_copy
284 cp ``\$3'' /tmp/file_to_upload
285 \end{lstlisting}
286
287 and you highlight 3 files in the Resources window called ABC.mp4, 123.mp4, and Final.mp4 and execute your added script
288 from the Shell Cmds icon, you will be copying those 3 highlighted files to the new names on /tmp.
289 \medskip
290
291 There are some Help features currently included in the Shell Cmds menu. \ Those available are:
292 \medskip
293
294 \begin{enumerate}[nosep]
295         \item \textit{Current Manual} in PDF format from cinelerra-gg.org or automatically downloaded.
296         \item \textit{Setting Shell Commands} ``how to'' which explains how to configure your own commands.
297         \item \textit{Shortcuts} html file for easily looking up a particular shortcut.
298         \item \textit{RenderMux} shell script to use ffmpeg concatenate to copy files such as look.mp4001, look.mp4002, look.mp4005{\dots} that were rendered using ``Create new file at each label'' or with the Render Farm.
299 \end{enumerate}
300 \clearpage
301
302 \begin{figure}[h!]
303         \centering
304         \includegraphics[width=0.8\linewidth]{trouble-img001.png} 
305         \caption{Some windows used to manipulate Shell Commands scripts}
306         \label{fig:Shell script manupulation}
307 \end{figure}
308
309 \section{Cinelerra Command Line -h}%
310 \label{cha:Cinelerra Command Line -h}
311
312 To see the command line parameters available to use with Cinelerra, key in:
313
314 \hspace{10mm}/\{your Cinelerra directory path\}/bin/cin -h
315 \medskip
316
317 What will be shown in the window where this line was entered is:
318 \medskip
319
320 Usage:
321
322 ./cin [-f] [-c configuration] [-d port] [-n nice] [-r batch file] [filenames]
323
324 -d = Run in the background as renderfarm client.  The port (400) is optional.\\
325 -f = Run in the foreground as renderfarm client. Substitute for -d.\\
326 -n = Nice value if running as renderfarm client. (19)\\
327 -c = Configuration file to use instead of /root/.bcast5/Cinelerra\_rc.\\
328 -r = batch render the contents of the batch file (/root/.bcast5/batchrender.rc) with no gui. batch file is optional.\\
329 -S = do not reload perpetual session\\
330 -x = reload from backup\\
331 \\
332 filenames = files to load
333