BakaSub is a GTK+/Gnome video subtitling program. It supports Super Station Alpha File formats for titles. BakaSub is written entirely in ANSI C++ (using the -pedantic flag of EGCS) so it should be portable too. I aim for full Gnome compliance in BakaSub, as well as some Gnomey features (like graphics drag'n'drop, concurrent events, etc). Currently there are no Gnome specific features or support other than using GTK+, but it is basically a matter of turning on a flag in the Makefile. More options will be done on that later.
BakaSub was being designed directly from Kotus' popular and god-like Sub Station Alpha program for Windows. Although the two programs share no actual code (they are written in very different languages, in very different environments!) I aim to have full Sub Station Alpha compatability. What does this mean for you, the user? It means that any script you create with BakaSub, you can trade with your friends who have SSA. It also means that any SSA script you receive will work perfectly out of the box (minus a few font differences) and any SSA script you edit will retain 100% of its previous data (no loss of data after going through BakaSub).
In modern versions of BakaSub (about the last two) I have made a decision to break away from SSA's user interface, however, because I think that it limits the user in some ways that are understandable for SSA's implementation, but which I have the opportunity to do away with because of the speed of C++. For example, SSA (at least as of version 3.x) displays a single subtitle for you to look at in the preview window, while BakaSub actually shows a scale-model preview with all concurrent subtitles and graphics.
What's New in This Release:
· Frame slider is now more functional. I figured out the proper hack to reconfigure a slider at runtime (grr!). Some more work is needed here though.
· SSA 3.x save support is now in, in its basic form. Some stuff probably doesn't work right. Don't bet the farm on this just yet =). To use it use 'Save As...'. 'Save' doesn't do anything yet.
· During SSA 3.x loads, styles that exist in the local style library (e.g., *Default vs Default) are no longer loaded. I don't know if this is the proper behavior but for now that's how it works.
· The very beginnings of Sconv integration are in there.
· bttv_ttf has been reworked to be a full multithreaded application. This means that there are now two threads during its execution: the frame engine, which is producing frames ahead of time, and the display engine, which is doing exquisite timing and data capture, and letting the frame engine know when to make another frame. The display engine has POSIX realtime priorities set if you're root, and the frame engine has normal priorities. This works
· much better on my uniprocessor system, and on dual or greater, it will be even better.
· The plug-in architecture is now in place (at least an early version). This will probably undergo some more changes before I leave it to start turning various things into plug-ins and normalizing the plug-in interfaces. There are also two brand new plug-ins, derived from the old statically linked ones, the SSA loader and the external rendering playback device.
· A new debug level has been added, DBG_ERROR. This is for fatal errors that cause a routine to fail and return, as opposed to DBG_WARNING, which means that the results will probably be invalid.