TROUBLESHOOTING

"Your professors are wrong. Every question is a stupid question." -- gcc version 2.95.2

Most of the problems userse encounter are due to operating system limitations. Since Linux was designed for embedded systems, video applications tend to go against the grain but there are ways around the compacted nature of the operating system.

RECORDING

PROBLEM: THE DC10/BUZ/ZORAN/LML33/MJPEG ETC DRIVER LOCKS UP
The following derivatives of the dc10/buz/zoran/lml33/mjpeg etc driver need to be patched:

Version 0.6
Version 0.7

Comment out the following segment in dc10.c:

/*
 * 			if (zr->codec_mode != BUZ_MODE_IDLE) {
 * 				if (v.norm != zr->params.norm || v.channel != zr->params.input) {
 * 					printk(KERN_ERR "%s: VIDIOCSCHAN called while the card in capture/playback mode\n", zr->name);
 * 					return -EINVAL;
 * 				} else {
 * 					printk(BUZ_WARNING
 * 					       "%s: Warning: VIDIOCSCHAN called while the card in capture/playback mode\n", zr->name);
 * 				}
 * 			}
 */

PROBLEM: THE BTTV DRIVER LOCKS UP
The following derivatives of the bttv driver need to be replaced:

Kernel 2.2.* Video4Linux 1

Replace the bttv.c file with the patched version of bttv.c at http://heroinewarrior.com/bcast2000.html to defeat most of the bttv lockups. Overwrite the copy of bttv.c in /usr/src/linux/drivers/char and recompile the kernel. This driver is omitted from the shipped kernel for various pedantic reasons.

TRYING TO RECORD FROM AN UNCOMPRESSED VIDEO SOURCE CRASHES IT
Reason 1: Issue echo "0x7fffffff">/proc/sys/kernel/shmmax to increase the amount of shared memory the operating system can allocate.

Reason 2: There are separate configuration settings for audio and video recording. If you select video4linux for video capture the audio may still attempt to capture from firewire. Be sure to set the preferences->audio in.

RECORDING SPITS OUT FRAMES AND THEN PAUSES AND THEN SPITS OUT FRAMES
Reason 1: Your using software compression, attempting a higher framerate and more compression than your computer is capable of. Lower the frame rate or compression quality or use a less demanding codec.

Reason 2: Your hard drive is too slow. Lower the framerate or use a smaller format.

Reason 3: Your hard drive is benchmarked fast enough but is still responding too slowly. Use the following script to flush the operating system's cache every second, ensuring more consistant hard drive performance.

#!/bin/sh

while : ; do
	sync
	sleep 1
done
RECORDING 29.97fps DROPS FRAMES IN LINUX BUT WORKS FINE IN WIN95
Reason 1: You're using a derivative of the bttv driver which only allows 2 frames of buffering. The following derivatives defeat this problem:

Linux 2.4.* Video4Linux 1
Linux 2.2.* Video4Linux 2

Load the Linux 2.4.0 Video4Linux 1 derivative with "gbuffers=32 gbufsize=0x100000" to allocate 32 frame buffers instead of 2.

In Linux 2.2 install the Video4linux 2 derivative of the bttv driver.

MY BT8** CARD ISN'T CAPTURING D-1 RESOLUTION
The following derivatives of the bttv driver need to be hacked to support D-1 resolution:

Linux 2.2.* Video4Linux 2

You need to hack btv/bttv-v4l2.c to support it. Change all the occurances of 640 in btv/bttv-v4l2.c to 720.

THE LML33 DRIVER PRODUCES GARBAGE ON THE LEFT SIDE OF THE FRAME OR DOESN'T FILL THE ENTIRE FRAME
The LML33 supports only 720x480 resolution. Be sure to set the frame size accordingly in File->new before you start to record.
RECORDING FROM MY FIREWIRE CAMCORDER DOESN'T WORK!
Reason 1: The operating system failed to detect the device when you loaded the firewire modules, which is normal. Linux1394 was mainly designed for computer networking not camcorders. You need to cancel recording and reload the modules until it works.

Reason 2: You power cycled your camcorder with the firewire modules loaded and the operating system failed to redetect the device. You need to cancel the recording and reload the firewire modules.

Reason 3: You plugged in your camcorder after the firewire modules loaded and the device was never detected. You need to cancel the recording and reload the firewire modules every time you power cycle the camera.

Reason 4: You're not playing any video on the camcorder. You need either live video or tape playback for the firewire system to work. Once you start playing video, you'll automatically get a picture.

Reason 5: The audio must be set to 16 bit. 12 bit audio can't be detected.

Reason 6: Maybe you don't really like short haired blonds.

PLAYBACK

NOT ALL THE IMAGES IN MY COMPOSITE ARE DISPLAYED!
The rendering strategy in settings->preferences->video is set to fastest rendering. In order to perform compositing you need to do something called alpha blending. Every option except fastest rendering enables alpha blending to varying degrees of quality.
THE TRACK VIEW AND POSITION INDICATOR FAIL TO KEEP UP WITH THE MOVIE!
You either have play every frame enabled in settings->preferences->video and your project contains audio or your sound driver doesn't work. In one case the position indicator locks to the audio position regardless of which video frame is being rendered and you need to disable playback on the audio tracks.

In the other case you need to enable use software for positioning information in the settings->preferences->audio out.

WHEN I DEINTERLACE A MOVIE I GET GHOSTS WHENEVER A SCENE CHANGES OR THERE'S FAST MOTION!
The two fields in an interlaced movie not only represent different pixels of the frame but different points in time, usually 1/60 seconds apart.

Your movie was compressed in such a way that the chrominance components for a single scan line are duplicated across two scan lines and thus two points in time. When you deinterlace it you see the chrominance components of one point in time applied to the luminance components of another point in time. A better alternative is to either scale the image to 1/2 or apply line average deinterlacing.

EDITING

PARTS OF THE AUDIO TRACKS ARE APPEARING EMPTY EVEN THOUGH THE TRACK WAS SELECTED DRAWABLE
The Number of index files to keep setting is too low. When you closed another Broadcast 2000 session it deleted index files which your current session needs to draw the waveform.

NOTHING I RENDER ENCODES ON REALPRODUCER
Render as RGB video and 16 bit audio to encode on that piece of crap.

AUDIO

WHY DON'T YOU SUPPORT MULTIPLE SOUNDCARDS?
Because there's no way to synchronize them. An offset of as little as 1/40000 seconds causes something called phase cancellation. 4 channel soundcards are already becoming ubiquitous anyway.

YOUR FSCKING SYNTHESIZER PLUGIN DOESN'T WORK!
Deselect "Disable tracks when no edits" in preferences->playback and select a region on the timeline to play back.

VIDEO

THE FRAMES LOOK COMPRESSED VERTICALLY OR HORIZONTALLY
Set the aspect ratio in video->resize to what the movie should be viewed in.

PLAYBACK JUST FREEZES UP AND DOESN'T STOP
You've got a plugin attached and configured to run impossibly slow. You should save the project, ctrl-C it on the command line, and reconfigure the plugin.

Alternatively you reproduced an idiopathic bug in single frame playback which causes it to freeze up, usually during Xena.

REVERSING VIDEO OR PLAYING VIDEO BACKWARDS PRODUCES GARBAGE
Some file formats like MPEG require temporal information to render frames, which isn't available when the file is read backward. Render the movie forward as Quicktime before reversing it.

RENDERING AND PASTING TO THE TIMELINE PRODUCES ONLY BLANK FRAMES
If a movie exceeds 2 GB during a render or recording only the last subfile is pasted into the project and the end padded with blank frames. You need to load from disk all the subfiles which made up the recording and concatenate them.

FEASABILITY STUDIES

IS SUCH AND SUCH A PROJECT DOABLE?
We get a lot of email requesting whether something can be accomplished, the steps in doing it, what kind of system a person should build to accomplish a certain task, how to build that system, how to budget for a project. There are really extra questions involved in answering that: is the solution cost effective? What level of basic computer science does the user want to be exposed to?

Unfortunately we don't have the resources to lay out a plan for users on an individual basis. One thing you discover in the real world is there never is an exact tool for every task but rather accomplishing it depends on your ability to make a tool fit. The real question isn't whether something can be accomplished but how do I use your tool to accomplish it.

There are ways to get this information however. Many companies offer "professional services". They can take your needs and spit out a solution, often better than anything we can give you since they can more thoroughy pinpoint what you want.

They make resources available for doing this by charging a fee but consider the alternative of teaching yourself everything about multimedia.

WHY IS SUCH AND SUCH A LIBRARY STATICALLY LINKED

Many computer scientists have studied the directory structure to Broadcast 2000 and come to the conclusion that most of the binary should be split off and shared with libraries already present on their system.

There's really one more question worth considering: what level of expense should be involved in setting up the system? In pure computer science you want to share as many libraries as possible with the system, reuse code, but in practical environments there are limits on the amount of code reuse you can achieve.

These limits are imposed by the amount of time available to finish a project, the user's skill level, and the resources available to get users up to speed. As with any reality TV show, when things leave the textbook, things get

STUPID QUESTIONS