|
AVBlocks for C++
1.13
Audio and Video Software Development Kit
|
AVBlocks SDK for C++ Release Notes
---------------
OS Requirements
---------------
* Windows 7 SP1 and above
* Mac OS X 10.7 and above
* Ubuntu 14.04 LTS / Debian 7 Wheezy
--------------------------
Redistributable Components
--------------------------
Windows
-------
* AVBlocks.dll
* AVBlocks64.dll
Mac
---
* libAVBlocks.dylib
Linux
-----
* libAVBlocks.so
* libAVBlocks64.so
--------------------
Runtime Dependencies
--------------------
Windows
-------
This library is loaded dynamically by AVBlocks to do Windows Media (ASF) muxing and demuxing.
Note: This library is not present by default on Windows "N" versions, or on Windows versions without Windows Media Player:
* wmvcore.dll
This library is loaded dynamically by AVBlocks when Windows Media codecs (WMA/WMV) are used:
* msdmo.dll
Linux (Ubuntu, Debian)
----------------------
These libraries are loaded dynamically by AVBlocks to handle the corresponding image format (jpeg/tiff/png):
* libjpeg.so.8 - JPEG Library
* libtiff.so.5 - TIFF Library and Utilities
* libpng12.so.0 - PNG Reference Library
This libraries are needed by AVBlocks, `libAVBlocks.so` will not load without these libraries:
* libtbb.so.2 - Intel Threading Building Blocks - used for multi-core parallel processing on Linux.
To install all dependencies you can run this command in Terminal:
sudo apt-get install libjpeg8 libtiff5 libpng12-0 libtbb2
--------------------
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
---
The AudioConverter and VideoConverter GUI samples are built with Cocoa and do not require any external frameworks.
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-project.org/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.13.0 (04 Oct 2014)
=======================================================
** New Feature
* [AVB-319] - Add a parameter to force/request re-encoding in case the input and output formats are equivalent
* [AVB-486] - Presets: Add a preset for fast H.264 encoding
* [AVB-487] - Samples: C++: New ReEncode sample
* [AVB-488] - Samples: .NET: New ReEncode sample
** Improvement
* [AVB-63] - H.264 Encoder: Improve performance by using all CPU cores.
* [AVB-310] - MP4: Remux H.264 without transcoding
* [AVB-403] - Installer: Windows: Replace the current self-extracting RAR packages with zip archives
* [AVB-450] - API: Add enums or named constants for allowed and documented parameter values
* [AVB-489] - Docs: Windows: .Net: Include XML documentation for Visual Studio
* [AVB-490] - Docs: Mac: Include a docset for XCode
* [AVB-499] - Presets: BDAV: Encode H.264 video with 4 slices per picture if level is 4.1
Release Notes - AVBlocks - Version 1.12.0 (25 Aug 2014)
=======================================================
** New Feature
* [AVB-406] - Transcoder: H.264 Decoder: Optimize for 4K / 2160p / 30fps playback
* [AVB-462] - Add more MPEG-1/2 encoding parameters (I/P/B pics, VBV buffer size)
* [AVB-470] - Samples: CaptureDS sample in VB.NET
** Improvement
* [AVB-419] - BDAV: Pad last LPCM frame to 5ms at end of stream
* [AVB-430] - VideoOverlay filter should work in place to avoid needless memory copy
* [AVB-431] - Apply ColorSpaceConverter and Resize filter in order that guarantees an intermediate frame with the smallest size.
* [AVB-432] - Transcoder: Pull: MediaBuffer should stay valid until parent MediaSample is released.
* [AVB-433] - Samples: New AVMixer sample shows how to compress and multiplex YUV video and LPCM audio into H.264, AAC, MP4
* [AVB-458] - CaptureDS sample: add custom output sockets and recording without audio input
** Bug
* [AVB-424] - Samples: CaptureDS crashes when recording to webm.vp8.vorbis preset
* [AVB-435] - H264 Encoder: Mac: Visual defects in the video produced by the AVMixer sample
* [AVB-439] - Samples: Segmentation fault in console samples when output preset is not specified
* [AVB-446] - Transcoder: .NET: Input configured with MediaSocket.File does not work
* [AVB-459] - MPEG 1/2 Video encoder: TV system/standard is always PAL
* [AVB-472] - TIFF images cannot be opened/parsed on a clean Ubuntu 14.04
* [AVB-473] - Crash when encoding mpeg-1 video on 8 core system
Release Notes - AVBlocks - Version 1.11.0 (25 Jun 2014)
=======================================================
** New Feature
* [AVB-154] - Blu-ray Encoding Presets (.m2ts)
* [AVB-354] - Samples: C++: PlayerGL sample for Windows
* [AVB-355] - Samples: .NET: PlayerGL sample for Windows
* [AVB-377] - Support LPCM in a BDAV format (M2TS)
* [AVB-379] - Support AVC/H.264 in a BDAV format (M2TS)
** Improvement
* [AVB-210] - Samples: Rename PullPushDecoder sample to H264NaluDecoder
* [AVB-211] - Samples: AudioConverter: Handle .dat, .mpe, .mpeg, .mpeg4, .ogm in File Open dialog
* [AVB-212] - Samples: VideoConverter: Handle .dat, .mpe, .mpeg, .mpeg4, .ogm in File Open dialog
* [AVB-222] - Samples: Add reference counting to the sample FileStream implementation.
* [AVB-383] - Samples: Rename the `ImageSequence` sample to `Slideshow`
* [AVB-400] - AVBlocks-Samples: Wiki: Simplify end-user instructions
* [AVB-402] - Samples: Rename DirectShowInput sample to InputDS
** Bug
* [AVB-218] - Samples: H264NaluDecoder ignores the --frame and ---rate command line options.
* [AVB-392] - H.264 decoder high CPU usage
* [AVB-393] - Demo logo is upside down when transcoder output is set to BGR24 BottomUp
Release Notes - AVBlocks - Version 1.10.0 (5 May 2014)
======================================================
** Bug
* [AVB-259] - The video frame rate filter is not used when it is set explicitly
* [AVB-367] - Missing sample-resources subfolders in windows packages.
* [AVB-368] - Progress report causes out of range exception in sample app.
* [AVB-373] - Aspect ratio not detected for an H.264/AVC stream in MP4 container
* [AVB-375] - Cannot transcode from WMA Lossless to WMA Pro
** Improvement
* [AVB-237] - Redefine presets as nested namespaces / classes.
* [AVB-299] - Better documentation of H.264 encoder parameters.
* [AVB-348] - Make stream detection more robust
* [AVB-364] - Samples: ImageSequence in VB.NET
* [AVB-374] - Write aspect ratio in the MP4 container when an H.264/AVC stream has non-square pixels
* [AVB-376] - C++ API: Replace MediaSocket static creating functions with Library equivalents
** New Feature
* [AVB-328] - API: Add functions to get library version and description
* [AVB-359] - New AccessUnitDelimiters H.264 encoder parameter
** Story
* [AVB-365] - Samples: C++: CaptureDS sample for Windows
* [AVB-366] - Samples: .NET: CaptureDS sample
Release Notes - AVBlocks - Version 1.9.0 (23 Mar 2014)
======================================================
** 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 2014)
======================================================
** 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.