SDK OVERVIEW
Sample applications and tests are located in ./tests/ directory.
Here are listed some simple task which may be easily build with VETLib:
MULTI-PLATFORM
- Use frame objects (data structure) [vetFrameRGB24, vetFrameYUV420, vetFrameT, ..]
- Read/Write any image [vetCodec_BMP, vetCodec_IMG]
- Decode MPEG4 streams [vetCodec_XVID]
- Process images [./source/filters/]
- Digital Filtering (lowpass, sobel, ..) [vetDigitalFilter]
- Motion Estimation related applications [./source/motion/]
- Thread Support [vetThread]
LINUX only:
- Interface with most capture devices through Video4Linux [vetVideo4Linux]
- Show images and videos (QT library) [vetWindowQT, vetWindowGTK]
- Decode MPEG1-2 stream [vetCodec_MPEG]
- Encode/Decode QuickTime stream (MOV files) [vetCodec_MOV]
WINDOWS only:
- Interface with most capture devices through DirectX (DirectShow) [vetDirectXInput, vetDirectXInput2]
- Show images and videos (Windows GDI) [vetWindow32]
SOURCE CODE Hierarchy
Framework's standard class hierarchy:
- ./source/ Base classes and interfaces
- ./source/buffers/ Buffers (data pointer stack)
- ./source/codecs/ (de)coders (images and streams)
- ./source/filters/ Filters
- ./source/inputs/ Image/Video data sources
- ./source/libETI/ ETILib support (image, picture)
- ./source/math/ Math functions and utilities
- ./source/network/ Networking related components
- ./source/outputs/ Image/Video data output
- ./source/vision/ Computer Vision and Motion related components
STATIC Library
VETLib binaries are stored in ./lib folder, there is a full built and some special builts (useful for local building), read ./lib/README document for informations about each built and its content.
Not-Expert developers should (download and) use FULL library for Windows (VETLib.lib) and on Linux platform it would be easier to download packages of external libraries (then compile them by yourself).
If your interested to compile VETLib on your system, read ./COMPILE document.
You should also have a look inside ./tests/Makefile and check projects in ./tests/mvc.
LINUX Tips
A very simple compilation command is:
g++ myMainApp.cpp ../lib/VETLib.a -o outputBin.out
here, we have all required objects included in static library, next sample is the current command for compiling vetLinuxMPEGPlayerGTK test:
g++
app_vetLinuxMPEGPlayerGTK.cpp ../lib/VETLib.a
-L/usr/lib/ -lpthread -lmpeg3
-o app_vetLinuxMPEGPlayerGTK.out
'pkg-config --cflag --lib gtk+-2.0'
second and last lines configure two external libraries: libmpeg3 and gtk2, they are required by vetCodec_MPEG and vetWindowGTK components.
You may read ./tests/Makefile for more compilation parameters samples.
PACKAGE DEVELOPMENT (EXTENDING VETLib)
Extending library means to develop a standard VETLib component, it is NOT required to build library on your platform, you may use static binaries but you should already know how to use VETLib.
Read about Package Development in Packages page.