Project Information
About this project:
This is the Video Processing Project.
This project was registered on SourceForge.net on Mar 23, 2009, and is described by the project team as follows:
Video processing source code for algorithms and tools used in software media pipelines (e.g. image scalers, colour converters, etc.) The currently available source code is written in C++ with their associated libraries and DirectShow™ Filters.
Background
This project was originally started by developers at the Council for Scientific and Industrial Research (CSIR) in South Africa as a mechanism for source code quality control. These functions and filters are used on various publicly funded projects and we felt that they might also be useful to the open source community as a whole. Your use of them and your comments or bug finds are a great help to us to improve the quality of our projects.
Please drop us a note if you use or find any of the offerings here useful. This will help us to determine if our contribution to the community is worthwhile.
Our broad objective with the style of coding used is to balance the speed of execution with readable code that is easy to maintain. We have tried to hide our implementations behind well defined interfaces to promote system decoupling. |
Filters
These are a set of general filters for scaling, cropping, colour conversion, etc. that are completed items and ready for use. The implementations provided are designed for use with Microsoft’s Direct Show™ framework and we have supplied some useful DirectShow™ base classes that further simplify the development effort.
The following filters are installed when running the Setup.msi download:
These filters can also be downloaded individually and registered using the regsvr32 command. In Graphedit they will then appear in the DirectShow™ category with the prefix "CSIR VPP". The filters can be configured using their property pages. The full source code is available in the subversion repository.
We encourage community contributions for faster implementations that sit behind the same interfaces.
Codecs
An H.264 video codec (encoding and decoding) is currently under development using a bottom-up design approach.
2012/03/03: The first version of the H.264 codec is going to be released within the next month!
2012/03/15: The first version of the H.264 codec has been released! The source code for the low level codec tools will appear and then be added to, periodically. We would like to offer these while the code is being developed to encourage comments early on in the design. Some of these raw classes may also be useful for other implementations.
We would like the community to contribute in conformance testing to the H.264 standard and faster implementations that use the defined interfaces.
Please note that the use of the H.264 video standard may require the payment of license fees. These are governed by the MPEG Licensing Authority and the rules may be found at www.mpegla.com. It is your responsibility, not the authors of this source code, to ensure that you comply.
Filter overview
Sample filter that shows how multiple PCM streams can be mixed together.
Filter that crops RGB media.
Filter that estimates framerate and overlays it on the video using GDI.
An H.264 encoder that implements the baseline profile. -- More info on codec -- -- More info on DirectShow filter --
An H.264 decoder designed for use with the provided encoder or H264 source filter. The decoder uses a custom media type which can be configured on the encoder and source filters. -- More info on codec -- -- More info on DirectShow filter --
Source filter that can read raw .264 files. Foreman sample file More info
Sample picture in picture filter.
RGB24 to YUV420 planar converter. This filter can be connected to a dump filter to create raw YUV files. More info
RTSP source filter that supports 8/16-bit PCM, AMR (via Monogram AMR filters), mp3 and H.264. This filter uses the liveMedia streaminbg library for RTSP/RTP/RTCP available at www.live555.com
Filter that rotates video by 90, 180, 270 degrees, as well as mirroring vertically and horizontally.
Scale filter that supports up to 2x upscaling.
Sample video mixing filter that shows how multiple video streams can be mixed together.
Filter that logs sample timestamps to file with current time. This is useful to calculate DirectShow filter sample processing times.
Source filter for raw YUV media such as videos from the standard test sequences. More info
YUV420Planar to RGB converter. Can be used in conjunction with the YUV source filter. More info
About SourceForge.net
SourceForge.net is the world's largest provider of hosting for Open Source software development projects. SourceForge.net provides a variety of services to projects, including a download mirror network, collaborative development tools (like CVS and Subversion), and tools to support discussion and support. These services are provided to projects and their end-users free-of-charge.
About Open Source:
Of benefit to users, Open Source software is licensed so you can download and use the software free-of-charge. The source code for this software is made available free-of-charge, you (or a programmer you hire) can make changes to this software to better meet your needs, and you can release your changed code back to the community passing the benefit on to other users.
The exact license terms used by this project on their project summary page and in the licensing documents included in their downloads
Developers
Join this project:
To join this project, please contact the project administrators of this project, as shown on the project summary page.
Get the source code:
Source code for this project may be available as downloads or through the CVS or Subversion SCM repository used by the project, as accessible from the project summary page.
Update project web pages:
This page is the default project web page supplied by SourceForge.net. If you are a member of this project, you can deploy your own project web pages as per our site documentation.
If you are a web page developer interested in this project, please consider reaching out to the project admin (per the "Join this project" section, above) to offer your assistance.
|