AVBlocks for C++
1.9
Audio and Video Software Development Kit
|
AVBlocks SDK for C++ Release Notes --------------- OS Requirements --------------- * Windows XP SP2 and above * Mac OS X 10.5 and above * Ubuntu 12.04, Debian 6 and above -------------------------- Redistributable Components -------------------------- Windows ------- * AVBlocks.dll * AVBlocks64.dll Mac --- * libAVBlocks.dylib Linux ----- * libAVBlocks.so * libAVBlocks64.so -------------------- Runtime Dependencies -------------------- Windows ------- * wmvcore.dll This DLL is loaded dynamically by AVBlocks when Windows Media (ASF) muxing and demuxing is used. Note: The DLL is not present by default on Windows "N" versions (without Windows Media Player). * msdmo.dll This DLL is loaded dynamically by AVBlocks when Windows Media codecs (WMA/WMV) are used. Linux ----- * libjpeg.so.8 * libtiff.so.4 * libpng12.so.0 These libraries are loaded dynamically by AVBlocks when the corresponding image format (jpeg/tiff/png) is used. -------------------- Samples Requirements -------------------- The samples provided with AVBlocks may need additional tools/libraries to be built. * Windows AVBlocks samples come with solutions and projects for Visual Studio 2010. The AudioConverter and VideoConverter GUI samples use MFC as a shared dll. * Mac OS X The AudioConverter and VideoConverter GUI samples use Cocoa and do not require any external framework like Qt. * Linux (Ubuntu,Debian) The AudioConverter and VideoConverter GUI samples are NetBeans "C/C++ Qt Application" projects. To use these projects you need the NetBeans IDE with C/C++ add-on. The Netbeans IDE is available through Synaptic Package Manager or directly from http://netbeans.org/downloads. The libqt4-dev package is required. It is available in the Synaptic Package Manager and can be installed from terminal by running: "sudo apt-get install libqt4-dev". The latest Qt framework can be downloaded from http://qt.nokia.com/downloads. To run the 32 bit samples on Ubuntu 64 bit, you will need the ia32-lib package. The ia32-lib package is available in the Synaptic Package Manager and can be installed from terminal by running: "sudo apt-get install ia32-libs". ----------------- Demo Restrictions ----------------- The following limitations apply when operating in demo mode. * A watermark is overlaid on top of the encoded/decoded video when processing video streams. * A short audio clip is mixed in with the original audio at random places when processing audio streams. Release Notes - AVBlocks - Version 1.9.0 (23 Mar 2013) ====================================================== ** Bug * [AVB-136] - Demo version fails when video output is set to NV12 YUV * [AVB-219] - Transcoder returns `Operation not implemented` (facility:5 code:5) when output color format is set to `Gray` * [AVB-301] - Converting H.264 4K (mp4) to a AVBlocks preset produces a small file with no video stream * [AVB-325] - Transcoder stops with an error when decoding specific MPEG-4 Visual streams * [AVB-330] - Crash when an H.264 stream is decoded repeatedly many times * [AVB-331] - Incorrect ID3v2 header size written when using MP3 presets * [AVB-334] - WebM splitter does not report normalized DAR (e.g.1280/720 instead of 16/9) * [AVB-336] - MPEG Audio splitter does not fill the StreamSubtype info * [AVB-341] - Demuxer / Splitter names reported as NULL for certain splitters * [AVB-342] - Images cannot be opened/parsed on clean Ubuntu 12.04 * [AVB-343] - Linux: UnsupportedFormat (instead of MissingDependency) error when loading images on fresh Ubuntu 12.04 * [AVB-347] - MPEG4-Visual decoder does not ignore stuffing bytes * [AVB-352] - Some streams may cause access violation in the MPEG-4 Visual decoder * [PC-43] - Heap corruption in MP4 muxer when a stream is configured with framerate=0 ** Improvement * [AVB-302] - Reduce the jitter in the video frame rate converter to less than +125 ms / -45 ms. * [AVB-338] - Change ErrorInfo::message() to return an empty string instead of NULL. * [AVB-346] - Linux: Include the missing library name as a hint in case of MissingDependency error ** New Feature * [AVB-322] - Pass AAC streams from the MP4 demuxer to the MP4 muxer without re-encoding ** Story * [PC-54] - Enable placing of mpeg2 video in a mp4 container ** Task * [AVB-329] - API Docs: Clarify MediaBuffer usage in Transcoder::push() * [AVB-349] - API Docs: Update the description of StreamType.H264 and StreamSubType.AVC1 * [AVB-351] - API Docs: Document the `ConcealDefects` parameter Release Notes - AVBlocks - Version 1.8.1 (18 Jan 2013) ====================================================== ** Bug * [AVB-309] - License not accepted on Linux distributions other than Debian and Ubuntu * [AVB-313] - Mac: ImageSequence C++ sample does not compile. * [AVB-318] - Crash while decoding MP4 with AAC audio at 44.1 KHz Release Notes - AVBlocks - Version 1.8.0 (15 Dec 2013) ====================================================== ** Bug * [AVB-297] - Transcoding WMV to MPEG2 produces output shorter than the input ** Epic * [AVB-298] - H.264 Decoder: Provide a way to override Video Usability Information / VUI (spans multiple releases) ** Sub-task * [AVB-307] - Add Param::Decoder::Video::H264::VUI::MaxDecFrameBuffering Release Notes - AVBlocks - Version 1.7.0 (29 Nov 2013) ====================================================== ** Bug * [AVB-263] - API Docs: Typo in MediaBuffer::data description * [AVB-273] - Null message for the new UnlicensedFeature error * [AVB-275] - Samples: Fix wrong calls to WriteFile (Windows) * [AVB-290] - Push decoding broken for H.264 interlaced streams in some specific cases * [PC-41] - Transcoder uses the bitrate in input VideoStreamInfo instead of output VideoStreamInfo. * [PC-47] - MP4 container does not work with B frames ** Improvement * [AVB-225] - Use explicit values for public enumerations and document the actual values * [AVB-266] - Segment Param::Video parameters by function * [AVB-267] - Parameter refactoring * [AVB-274] - When printing errors sample apps must check for a null error message * [AVB-288] - API Docs: Update Transcoder::flush documentation * [AVB-292] - Keep the input scan type if the output is not set explicitly * [AVB-293] - Rename primo::codecs::InterlaceType to primo::codecs::ScanType (Breaking change) * [AVB-295] - Change VideoStreamInfo::ScanType default value from ScanType::Progressive to ScanType::Unknown (Breaking change) ** Story * [AVB-155] - Transcoder: Push / pull support for MPEG-4 Visual elementary stream * [AVB-193] - DirectShow Filters: MPEG-2 Video, MPEG Audio and MPEG Muxer * [AVB-195] - Enable Crop/Pad parameters * [AVB-196] - Make sure that the video is not distorted if the input/output aspect ratios differ * [AVB-252] - Production version should return error if it finds that a license has expired. * [AVB-261] - Add IntParameter * [AVB-283] - AVBlocks for Debian 6 (Squeeze) and Debian 7 (Wheezy) ** Task * [AVB-238] - Document input push / output pull for supported media types and subtypes. * [AVB-251] - Revise documentation of avb_set_license Release Notes - AVBlocks - Version 1.6.1 (11 Oct 2013) ====================================================== ** Bug * [AVB-189] - iPad / H.264 / AAC and iPad / H.264 HD / AAC presets produce choppy audio. * [AVB-221] - Samples: StreamEncoder crashes on error. * [AVB-226] - Mac and Ubuntu: MetaInfo sample does not handle unicode metadata values. * [AVB-227] - Mac and Ubuntu: StreamEncoder and YuvEncoder samples: Duplicate extension of output filename, e.g. `.mp4.mp4` instead of just `.mp4`. * [AVB-228] - Samples: StreamDecoder crashes on error. * [AVB-229] - Build scripts may include sample code from the wrong branch Release Notes - AVBlocks - Version 1.6.0 (12 Sep 2013) ====================================================== ** Breaking Changes * [AVB-167] Rename ColorFormat::RGBXyz to ColorFormat::BGRXyz * [AVB-142] Remove ColorFormat::YUV_VC1 ** New Feature * [AVB-166] - G.711 and G.726 codecs ** Bug * [AVB-145] - MediaInfo returns InvalidOperation error when the input stream is invalid. * [AVB-163] - MPEG-4 Visual: MP4 demuxer will not group the headers and data for "I" frames (in some border cases). * [AVB-170] - Transcoder fails to decode a video frame in pull mode ** Improvement * [AVB-158] - Allow to set the output VideoStreamInfo stride * [AVB-165] - Load Wmvcore.dll dynamically. The dll is not present on all Windows systems. * [AVB-179] - Handle .dat, .mpe, .mpeg, .mpeg4, and .ogm file extensions * [AVB-172] - Remove assertions from Release build * [AVB-187] - Load msdmo.dll dynamically when needed for the Windows Media codecs. Release Notes - AVBlocks - Version 1.5.0 (16 Aug 2013) ====================================================== ** Bug * [AVB-128] - VideoStreamInfo.FrameBottomUp set to true is not processed correctly in Transcoder * [AVB-162] - Stuffing bytes not discarded when decoding MPEG-4 Visual elementary stream ** Epic * [AVB-124] - MP4 muxing for video streaming / progressive download / fast start. Release Notes - AVBlocks - Version 1.4.0 (4 July 2013) ====================================================== ** Bug * [AVB-107] - Linux: Video encoding produces wrong results * [AVB-137] - Docs: C++: No documentation for primo::license::LicenseInfo ** New Feature * [AVB-117] - StreamEncoder sample * [AVB-118] - DirectShowInput sample * [AVB-119] - StreamDecoder sample * [AVB-120] - Transcoder::push for compressed raw video streams (H.264 only) * [AVB-121] - PushPullDecoder sample Release Notes - AVBlocks - Version 1.3.0 (16 June 2013) ======================================================= ** Bug * [AVB-108] - JPEG image decoder on Linux generates corrupted output * [AVB-109] - avb_create_license_info not exported on Mac and Linux * [AVB-122] - Assert in Transcoder::open with video input that has no stream or file set. ** Improvement * [AVB-106] - Split MediaInfo sample to AVInfo and MetaInfo samples. * [AVB-111] - Return Demo status from Library::setLicense when called in the Demo build ** New Feature * [AVB-98] - New ImageSequence sample * [AVB-100] - New YuvEncoder sample --------------------------- Version 1.2.1 (14 May 2013) --------------------------- ** Bug * [AVB-92] - Last 2 frames in MPEG2 Video encoded stream are not the same as in the input. * [AVB-101] - MPEG2 video encoder does not generate sequence_end code ---------------------------- Version 1.2.0 (30 Apr 2013) ---------------------------- Changed ------- * AVB-82: Restructure License info API (new LicenseInfo class). * AVB-88: Rename Transcoder::write and Transcoder::read to Transcoder::push and Transcoder::pull Fixed ----- * AVB-83: API Docs: Clean avblocks::ParamType documentation. * AVB-89: Transcoder ignores framerate for YUV input ------------- Version 1.1.0 ------------- Changed ------- * API string encoding changed to UTF-16 on all platforms (previously UTF-8 was used); ANSI strings are still used for constants. New --- * AVBlocks can read/write Ogg(Vorbis). * AVBlocks can write Windows Media Audio (Windows only). * The transcoder can encode images to single-frame videos, e.g. DVD-Video single-frame clips for DVD menu backgrounds. * Metadata support. The transcoder can read/write metadata for certain formats (Wav, Mp3, Ogg/Vorbis, Window Media). The MediaInfo class also has been extended to allow reading of metadata. * The transcoder can seek in the input. However, positioning in compressed audio cannot be precise to a sample. * The transcoder can read output in discrete steps (Transcoder::read). Convenient when uncompressed audio or video is required. * The transcoder can be used by specifying only input and output filenames (minimum settings). * Existing samples ported to Mac OS X and Linux (Ubuntu). * MediaInfo sample extended to show existing metadata (pictures are saved to files). * AVB-22: The frame rate filter can be explicitly set for video, in order to compensate for missing video frames. * A helper class primo::ustring is included to facilitate unicode conversion when the client string encoding differs from the one provided by AVBlocks (UTF-16). The helper class is included for Mac OS X and Linux and is implemented with native API on each platform. Fixed ----- * AVB-4: In certain cases Mp3 length is reported as zero. * AVB-5: Inconsistent collection API. * AVB-8: MediaSample::endTime property is used for two different purposes. * AVB-13: Allow AVB to be loaded and used more than once in a single process. * AVB-14: WAV file duration is reported in milliseconds while it should be in seconds. * AVB-16: The transcoded file is shorter than the source file. * AVB-21: A/V sync issues in MPEG-PS. * AVB-30: The MPEG2 muxer generates corrupt output. * AVB-35: The MPEG2 muxer output does not contain DTS in the PES packet header. ------------- Version 1.0.1 ------------- First version.