For information about our main software product, the zs4 video compositing system, please visit the zs4 web site at www.zs4.net.


products

linux
osx
win32
bsd

autodox

classtree

source code

tabpix

Version 0.958, build id 0703161351

Module Description

t@b TNG. a set of lightweight c++ classes for next generation pixel moving, scaling etc.. plus basic audio objects like audio stream handle audio sample handling etc 3d points and boxes
module type : so
license: t@b0
depends on:

Module History


Version: 0.958

2007 march 4

removed the include file tab_version.h and replaced it with a global tab_version_macros.h which sits in the root directory for all tab build projects. This has happened in an effort to significantly speed up rebuilding of the project after build numbers are incremented.

2007 feb 20

fixed the method tab_object::SystemLaunchBrowserDoc() so that it works more reliably under windows, including the invocation of the users PREFERRED web browser (firefox) instead of iexplore.exe. This should fix the failure of the F1 (help) key in zs4.

Version: 0.957

2007 feb 18

added static "header_only" boolean member to tab_riff32 and tab_mov32 classes. The member can be set using the ParseHeadersOnly(bool) method. This causes the parser to bypass the "movi" list of an avi file.

2007 february 15

added support for FreeImage library which allows the reading of .iff, .pcx, .gif and many more image formats.

Also added support for loading image sequences. This requires the directory containing the images to also contain a *.ini file with a [sequence] group that has four entries for now: "fps=" (frames per second), "width=", "height=" and "select=" (Set by default to a file pattern like "*.jpg"). This *.ini file will indicate to zs4 how to interpret the image sequence in the directory. The files will be sorted by name.

2007 february 13

named struct's and union's which had been un-named thus far.

2007 february 12

using now libexpat version 2.0 for xml parsing (specifically for font configuration files under linux, among other things)

2007 january 30

Modified Direct Draw Surface interface used from DDSD to DDSD2 (DirectX 7).

2007 january 18-19

added a method called AlphaReverse() to tab_bitmap class, added CoInitialize calls to thread startup and the corresponding un-init calls ad thread termination. Cleaned up lots of code in preparation of 64-bit version of ZS4.

2007 january 17

fixed png codec so that it only creates bitmaps for decoded data when neccessary.

Version: 0.953

2006 may 10

added method in media stream handles (read mode) which allow the temprary freeing of associated video memory. this happens in the hope memory use during zs4 output generation can be reduced....

2006 april

fixes for gcc (GCC) 4.0.3 20051201 (prerelease) (Debian 4.0.2-5)

Version: 0.951

fixed tab_object::Scale32() linear scaler (range overflow issues), which allowed the repair of the wave reader (wav and avi files) such that it now supports 8 bit unsigned wave formats (uncompressed).

Version: 0.950

2006 feb 2

made sure that the media player based input filter can not read *.dv files made by iMovie. bummer. but that's billyboy, ain't it...

2006 jan 21

Version: 0.949

2006 jan 21

added running export-time-stamp methods WriteTimeGet() and WriteTimeSet() to allow zs4 to transmit a relative export time stamp to the export driver (wmv driver specifically).

2006 jan 20

added to methods to tab_filebuf class (win32 only) which serve the purpose of using and accessing wide string information in windows media encoder subsystem, amont others. the methods are:
- tab_error SetFromWideString(WCHAR * wstr);
- static tab_filebuf * VectorizeStringFromWideString(tab_vector * v, WCHAR * wstr, bool unique);

fixed windows media reader to no longer report *.wmv files as a writable format. this is a reader only module (media player nuts and bolts).

Version: 0.948

2005 12 30

added support for reading and writing *.ini files from this lowest level of tab support code...

Version: 0.947

2005 11 126

changed copyright date to include the year 2005

Version: 0.945

2005 10 13

added support for rotating a point about something other than the coordinate 0:0 (rotate2D function about an other point)

2005 10 11

when generating an output avi file, the frame rate in the avi headers now reports a rounded value of the actual frame rate. an (ntsc) rate of 29.97 frames per second will be shown as 30 fps.

Version: 0.944

2005 9 11

added methods to convert whole bitmaps from rgb 2 yuv and vice versa in a non-planar fashion.

2005 9 10

added tab_bitmap methods to retrieve bitmap pitch and bitmap bits

2005 09 7

added locking and threading logic wich used to be in kernel library. and changed buffer logic to recycle small memory allocations instead of reallocation them.

Version: 0.942

2005 08 21

added a class tab_dl, designed to support dynamic library loading on a low level. this is primarily for the creation of a FreeFrame client, which requires dynamic loading of FreeFrame plugins. more info on that topic at http://www.freeframe.org

Version: 0.940

2005 08 8

fixed SystemWhich() function for linux and osx so that they also recognize files which exists in the current directory ./ /br

2005 08 6

added support for decoding the fourCC code "444P", which i found when dumping the RIFF struction of an mencoder generated AVI files that was scaled.

made tab_object::SystemCommand() abortable...

Version: 0.935

2005 06 12

changed compile options for linux from -march=686/pentium4 to -mcpu=686/pentium4. it is hoped that these changes allow the softwaer to run on an opteron as well.

2005 06 7

for linux pentium4 flavour made all TAB(FAST)FLOAT variables 64 bit.

added a bunch ofprimitives to tab_bitmap cpp class, enabling the drawingof lines ellipses, circles, rectangles (filled or outlined)...

Version: 0.934

2005 06 1

minor fix forwriting avi/wav meta INFO list chunk, now should be parseable event by the tabriffdump utility.

improve wav reading speed for reverse reading and random access, cached reading...

Version: 0.931

2005 may 18

added a peek-average fetch method to cpp class tab_peek, this happens for frequency sensitive noize gates etc...

Version: 0.930

2005 may 12

the class tab_af_imagio, which "streamifies" still images has been changed to report the stream duration as 30 seconds.

Version: 0.930

2005 may 11

included some metainformation into the output file (wav and avi). this is a RIFF info chunk with engineer=user, software=zs4-kernel, etc, overridable by the property keyvalues fron the cpp object "tab_af_wavio".

allow the extension "zsv" for zs4 generated avi files. this allows a motion-png video which the win32 media player cannot read to be renamed with an extension of ".zsv", which allows zs4 to read the avi file using its on parser and internal codecs, bypassing wmp shortcomings.

Version: 0.928

2005 april 28

after revisiting complaints about a video import limit of about 3.5 minutes in the win32 (ms-player-reader), expanded some stuff to 64 integral values in the hopes that this will address the acusations... :)

Version: 0.927

2005 april 24

attempt to fix jpeg still frame encode bug (default quality was wrongly 0 instead of 90...

2005 april 21

added nifty, mutant, additive blend to tab_bitmap::RotMovScale(), this was done for supportingsome higher level pattern generation algos...

Version: 0.926

2005 april 11

added shortcut method to tab_bitmap which combines init/copy functions into a new CopInit() method...

Version: 0.923

2005 02 2 (wed, Jan 26)

groundhog day. made wrapper to allow the fiewing of still images (jpg etc) as media streams. fixed length = 10 secs.... this means that ui objects like showaudio and mmeditor now are capable of viewing jpg and other images as if they were streams. this affects waveman and zweistein (zs4) products.

2005 01 26 (wed, Jan 26)

internal audio-samples per second has been increased to 48 kHz, to be in line with popular DVD requirements. there is a hit on audio playback performance (~15%)

Version: 0.922

2005 01 12 (wed, Jan 12)

made raw 24 bpp win-bump encoder for "uncompressed" avi co(dec). this should also mean that (without further mucking) the fotoman should be capable of exporting *.bmp files (by specifying that extension in the file name) and the command line utility tabconvert(.exe) should now actually succeed in converting to that image format.

Version: 0.920

2004 12 26 (sun)

now got an avi parser which can (for now) extract audio from avi files. this in the course of creating a raw-uncompressed-avi writer for both zweistein 3.01 as well zs4

2004 12 22 (wed)

added proper support for gradient transparency in win32 icon loader. added support for 1 bpp monochrome cursors and icons with proper boolean transparency.

Version: 0.919

2004-12-15

fixed string to color conversion. the fomats now permissible are:
- "rgb[a]" (hex values 0-f, alpha digit optional
- "rrggbb[aa]" (hex values 00-fff, alpha digits optional
- "red", "green", "blue", "orange", "yellow" etc...

2004-12-18

fixed 32 bit format reading for wav files... so at this point the wav reader can handle 16 bit (type 1) waves of (hopefully) all sample reates and channel counts, as well as 32 bit wave files (type 1 and 3)

Version: 0.918 and earlier

2004-11-13

much things have happened lately to this module since the improvements in imaging. most of all we have extended this collection of multimedia primitives with many audio processing features:

list of new object classes:
* tab_audiofilter, this object is now our basic building block for a pull-based processing logic, including file input filters as using the i_document_audio in module tabaudio
* audiofilter tab_af_basic extends tab_audiofilter and provides 10 band frequency measurement on a per channel basis.
* audiofilter tab_af_basic_stats extends tab_af_basic and provides accumulated amplitude statistics for all frequency stripes of all channels of an audio stream.
* utility object tab_af_chanprops for storing the properties of single channel audio chunks. props include amplitude per frequency band, overall amplitude, start and duration of the chunk
* utility object tab_af_chanprops_accu, for accumulating/averaging running properties stashed in tab_af_chanprops
* audiofilter tab_af_mswav represents to ms-wave code moved here from the plugin module document_mswav. it, of course, extends tab_audiofilter

2004-09-03-Fri

changed the minimum and maximum scaling factors to 256 (1/256 respectively) and achieve an overall scaling range where the highest possible magnification is more than 50000 X of the lowest possible magnification.

added a simple anti-aliasing capability to the (mix-)scaler. this is what sorta had some kinda causal connection with the 50000X scaler.

2004-09-02-Thu

added a mix (blend alpha source) mode to the screen scaler, and underneath that, the tab_bitmap class. also moved the inline code from the tab_bitmap.h file to the tab_bitmap.cpp file. no need to advertise our guerilla-coding-tactix...

changed the minimum and maximum scaling factors to 64 (1/64 respectively) and achieve an overall scaling range where the highest possible magnification is more than 4000 X of the lowest possible magnification.