AVBlocks for C++
2.1
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 Requirments ------------------- Windows ------- * wmvcore.dll `wmvcore.dll` is loaded dynamically by AVBlocks and is used for ASF muxing and demuxing (Windows Media). Note: `wmvcore.dll` is not present by default on Windows "N" versions, or on Windows versions without Windows Media Player `wmvcore.dll` is not installed by default on Windows Server 2012, 2012 R2 by default. On those systems you will need to install the "Media Foundation" or "Desktop Experience" feature from Server Manager. * msdmo.dll This library is loaded dynamically by AVBlocks and is used for the Windows Media codecs (WMA/WMV). 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 library is 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 2.1.0 (23 May 2016) ======================================================= ** User Story * [AVB-217] - Samples: C++: `dec_avc_au` should work with pre-processed files that contain one AVC / H.264 AU (Access Unit) per file. * [AVB-244] - Samples: C#: New `dec_avc_au` sample * [AVB-809] - Samples: C++: New `dec_avc_push` sample * [AVB-810] - Samples: C#: New `dec_avc_push` sample * [AVB-811] - Samples: C++: New `dec_avc_pull` sample * [AVB-812] - Samples: C#: New `dec_avc_pull` sample * [AVB-893] - Samples: C#: New `dump_avc_au` sample * [AVB-954] - Samples: Rename `sample-resources` directory to `assets` * [AVB-976] - Params: Rename Overlay::BackgroundX and BackgroundY to LocationX and LocationY * [AVB-983] - Samples: New `demux_mp4_file` sample * [AVB-1001] - Docs: Document the relation between NumBFrames and NumRefFrames H.264 parameters. * [AVB-1021] - Samples: New `enc_mpg_dvd` sample * [AVB-1031] - Samples: C++: New `overlay_yuv_jpegs_push_pull` sample * [AVB-1056] - Remove API deprecated before 2.0.0 * [AVB-1061] - Samples: New `capture_ds_video_audio` sample ** Bug * [AVB-1030] - Mac: Filters: Overlay: Contour between transparent and opaque area * [AVB-1037] - Mac: Segmentation fault while decoding H.264 stream in MPEG-2 PS container and reporting progress * [AVB-1053] - Docs: C++: MediaInfo documentation is garbage * [AVB-1054] - Docs: C#: Deprecated MediaInfo methods and properties are not visible. * [AVB-1055] - Docs: C#: Main page content is not rendered correctly. * [AVB-1059] - Codecs: H.264: Intel Quick Sync Video: Encoding fails with unsupported format/operation on Windows 7 * [AVB-1060] - WMV and WMA decoders not flushed properly. Could lose the last decoded frame. * [AVB-1073] - Encoders: AAC: Cannot encode AAC with Push or Pull in .NET * [AVB-1081] - Transcoder freezes when an empty sample is pushed Release Notes - AVBlocks - Version 2.0.0 (15 Apr 2016) ======================================================= ** User Story * [AVB-220] - Samples: C++: New `dump_avc_au` sample * [AVB-709] - MediaInfo: New MediaInfo block (breaking change) * [AVB-758] - Blocks: C++: Immutable block inputs and outputs (breaking change) * [AVB-798] - Samples: C++: New `overlay_mp4_png_file` sample * [AVB-799] - Samples: C#: New `overlay_mp4_png_file` sample * [AVB-915] - Samples: Rename `decode_jpeg_push` to `dec_jpeg_push` * [AVB-918] - Samples: Rename `YuvEncoder` to `enc_yuv_preset_file` * [AVB-923] - Block: Rename the `Stop` method to `EndOfStream` (breaking change) * [AVB-931] - Blocks: .NET: Immutable block inputs and outputs (breaking change) * [AVB-941] - Samples: C#: New `overlay_yuv_jpegs_push_pull` sample ** Bug * [AVB-990] - Codecs: VP8: Tests fail occasionally on Linux * [AVB-1017] - Transcoder: Muxer error when splitting a M4V to 1MB clips * [AVB-1024] - Transcoder: Demuxer error when splitting M4V to 1MB clips * [AVB-1026] - Transcoder: Muxer error when splitting M4V by time Release Notes - AVBlocks - Version 1.26.0 (14 Mar 2016) ======================================================= ** User Story * [AVB-220] - Samples: C++: New `dump_avc_au` sample * [AVB-617] - Blocks: New Block abstract class * [AVB-758] - API: C++: Immutable block inputs and outputs * [AVB-805] - Samples: C# and VB.NET: Isolate and hide command line parsing code * [AVB-813] - Samples: C++: Rename H264NaluDecoder to `dec_avc_au` * [AVB-837] - Samples: C++: New `enc_avc_push` sample * [AVB-838] - Samples: C#: New `enc_avc_push` sample * [AVB-861] - Blocks: Transcoder Block * [AVB-869] - Samples: C++: New `dec_avc_file` sample * [AVB-870] - Samples: C#: New `dec_avc_file` sample * [AVB-871] - Samples: C++: New `enc_avc_file` sample * [AVB-872] - Samples: C#: New `enc_avc_file` sample * [AVB-892] - Samples: C++: Isolate and hide command line parsing code * [AVB-913] - Samples: Rename `mp4_mix_yuv_pcm` to `enc_mp4_avc_aac_push` * [AVB-914] - Samples: Rename `MP4Muxer` to `mux_mp4_avc_aac_file` * [AVB-917] - Samples: Rename `VideoSplitter` to `split_mp4_pull_push` * [AVB-919] - Samples: Rename `AVInfo` to `read_av_info_any_file` * [AVB-921] - Samples: Rename `MetaInfo` to `read_metadata_any_file` * [AVB-924] - Filters: Overlay: Handle images with alpha channel * [AVB-927] - Samples: CaptureDS: Enable hardware acceleration * [AVB-936] - Samples: Exit with non-zero code on error * [AVB-941] - Samples: C#: New `overlay_yuv_jpegs_push_pull` sample * [AVB-943] - Docs: Clarify that device ID must be used for the HardwareDevice parameter. * [AVB-955] - API: Return frame size from frame dimensions and color format * [AVB-1013] - Windows: Upgrade C++ sample projects to Visual Studio 2015 ** Bug * [AVB-925] - Transcoder: AccessViolationException in `Transcoder.Close` after `Transcoder.Run` when `Run` returns false. * [AVB-926] - Transcoder: Overlay image not added during MP4 to MP4 conversion * [AVB-930] - Encoding 32-bit or 8-bit audio to output preset produces only noise * [AVB-952] - Samples: CaptureDS: Transcoder is not flushed when recording is stopped * [AVB-991] - Linux: Demo overlay is missing * [AVB-1014] - Demuxers: MP4: Cannot decode MP3 audio from MP4 files created by some DVR systems. * [PC-234] - Codecs: H.264: AMD MFT encoder crashes if closed without flush * [PC-238] - Codecs: H.264: Intel QuickSync Media encoder sporadic failure Release Notes - AVBlocks - Version 1.25.0 (20 Jan 2016) ======================================================= ** Improvement * [AVB-879] - Docs: StreamSubType: Update the docs for Mpeg1System and Mpeg2System * [AVB-895] - Improve interlaced encoding in hardware and software encoders ** Bug * [AVB-335] - Some WMA presets produce output files with varying duration / size. * [AVB-885] - Intel QSV: Some of the existing H.264 tests fail when hardware encoding is used * [AVB-887] - AMD VCE MFT: Some of the existing H.264 tests fail when hardware encoding is used * [AVB-894] - Intel QSV: The H.264 encoding may fail if a monitor is not connected to the Intel GPU device. * [AVB-896] - Cannot decode MP4 (H.264) video files created by some DVR systems. Release Notes - AVBlocks - Version 1.24.0 (29 Dec 2015) ======================================================= ** Improvement * [AVB-736] - Samples: Rename `AVMixer` to `mp4_mix_yuv_pcm` * [AVB-815] - Samples: C++: Set working directory to be ..\..\lib\ for easier debugging * [AVB-882] - Transcoder: Tests: Add more unit tests for AVI to MP4 transcoding ** Bug * [AVB-337] - The test rgb24_to_mpeg2ps_write produces an output file with varying duration/size. * [AVB-340] - MediaInfo: ScanType is not detected correctly for interlaced video in Debug/x64 * [PC-136] - Decoders: AVC / H.264 SW: Frames are reordered when decoding 4K video input Release Notes - AVBlocks - Version 1.23.0 (13 Dec 2015) ======================================================= ** New Feature * [AVB-828] - Enable / disable hardware platforms at a Library level * [PC-183] - Codecs: H.264: AMD/WMF: Real-time 4K encoding on AMD Radeon R9 285 / R9 380 (Tonga Pro, GCN 1.2, VCE 3.0) ** Improvement * [PC-102] - Use vector extensions on AMD CPUs ** Bug * [AVB-841] - Encoders: H.264: AMD/WMF: NumRefFrames parameter is ignored Release Notes - AVBlocks - Version 1.22.0 (07 Nov 2015) ======================================================= ** New Feature * [AVB-787] - API: Allow to set image overlay through VideoStreamInfo parameter ** Improvement * [AVB-738] - Transcoder: AMD VCE hardware acceleration for H.264 encoding (via WMF) * [AVB-761] - Docs: Transcoder: Document the MediaSample format for each stream supported by `Transcoder.Push` * [AVB-768] - Samples: .NET: Deprecate the .NET CLR 2 projects * [AVB-802] - Transcoder: Return `Library not initialized` if Library.Initialize has not been called. ** Bug * [AVB-717] - Audio and video out of sync when H.264 uses B-frames in MP4 container * [AVB-807] - Muxers: MP4: Transcoding with NVIDIA NVENC and Intel QuickSync encoders fails for certain H.264 settings. * [AVB-829] - Hardware: Windows: GPU reset during hardware enumeration on Windows Server 2012 R2+ with XFX AMD R7 260X (Core Edition) GPU, Driver 14.12 * [PC-115] - Crash in AAC encoder with some combinations of sample rate and bitrate * [PC-161] - Encoders: AVC / H.264 SW: Multiple encodings with B-frames do not produce exactly the same output. * [PC-171] - Encoders: H.264: AMD: MFT: Hang on Window Server 2012 R2+ with XFX AMD R7 260X GPU (Double Dissipation Edition), Driver 14.12 Release Notes - AVBlocks - Version 1.21.0 (29 Sep 2015) ======================================================= ** New Feature * [AVB-234] - Presets: MP3 presets * [AVB-235] - Presets: WMA Presets * [AVB-236] - Presets: AAC Presets * [AVB-705] - Transcoder: NVIDIA hardware acceleration for H.264 encoding * [AVB-706] - Transcoder: NVIDIA hardware acceleration for H.265 encoding * [AVB-710] - Presets: WebM / VP8 encoding presets * [AVB-718] - Hardware: New API for encoding hardware enumeration. * [PC-106] - MediaBuffer: Add Clone method. * [PC-107] - MediaSample: Add Clone method. * [PC-108] - Muxers: MP4: Support H.265 elementary stream * [PC-157] - MediaPin: Add Clone method * [PC-158] - MediaSocket: Add Clone method ** Improvement * [AVB-161] - Presets: H.264 and AAC encoder default parameters should match the Web preset * [AVB-321] - Presets: Remove the sampling rate from the MP4_H264 preset * [AVB-720] - Docs: MediaSocket: Improve TimePosition member docs * [AVB-730] - Codecs: H.264: The TreatBFramesAsReference param should be `false` by default. * [AVB-733] - Presets: Move all preset definitions under nested namespaces / classes. * [AVB-756] - Docs: MediaSocket: .NET: Clarify the time unit for MediaSocket.TimePosition property. * [AVB-759] - MediaBuffer: .NET: DataOffset property should be read-only * [AVB-760] - MediaBuffer: .NET: DataSize property should be read-only * [AVB-794] - Apple Live Streaming Presets: Change the audio sampling rate from 44100Hz to 48000Hz * [PC-125] - Codecs: H.264: Intel QSV: Parameter default values should match the software H.264 encoder * [PC-126] - Codecs: H.264: AMD VCE: Parameter default values should match the software H.264 encoder * [PC-127] - Codecs: H.264: NVIDIA NVENC: Parameter default values should match the software H.264 encoder * [PC-138] - StreamSubType: Add `AVCC` enum value and `AVC1` alias. * [PC-139] - StreamSubType: Add `None` enum value * [PC-140] - StreamSubType: Add `AVC_Annex_B` enum value * [PC-153] - Muxers: MP4: Update AVCDecoderConfigurationRecord from the H.264 bitstream data * [PC-160] - Docs: Document that Media Foundation feature must be installed on Windows Server to be able to use Windows Media codecs ** Bug * [AVB-65] - Regression: Transcoding a wmv input (with non-explicit/missing fps) to mp4 output fails with a muxer error * [AVB-755] - StreamInfo.Bitrate setting is doubled by the H.264 software encoder * [AVB-765] - Samples: H264NaluDecoder C++ does not work * [AVB-770] - Codecs: NVIDIA NVENC H.264: The NVENC H.264 encoder does not use ProfileIdc param, output bitstream profile is always set to High. * [AVB-783] - Process stops abruptly when Hardware::refresh() is called on a system with new AMD drivers (15.7.1) Release Notes - AVBlocks - Version 1.20.0 (11 Jul 2015) ======================================================= This release has been tested on Windows 10 Insider Preview 10074. ** New Feature * [AVB-233] - Presets: Additional Apple HTTP Live Streaming presets * [AVB-698] - Transcoder: Intel QuickSync hardware acceleration for H.264 encoding * [AVB-707] - Transcoder: AMD Video Coding Engine hardware acceleration for H.264 encoding ** Improvement * [AVB-510] - Docs: Presets: Document stream and parameter settings used in presets. * [AVB-684] - MediaSocket: MediaSocket.FromMediaInfo should call MediaInfo.Load * [AVB-693] - Change the demo watermark text * [AVB-708] - Transcoder: Return more specific error code and message when frame has uneven dimensions * [PC-36] - Muxers: MP4: Support writing MP4 files bigger than 4GB * [PC-101] - Demuxers: MP4: Support reading MP4 files bigger than 4GB ** Bug * [AVB-688] - Transcoder: Video is truncated when MPEG-2 TS is transcoded to DVD_NTSC_PCM preset * [AVB-689] - Transcoder: Some MPEG-2 TS streams cannot be transcoded in push mode Release Notes - AVBlocks - Version 1.19.0 (25 May 2015) ======================================================= ** New Feature * [AVB-147] - Presets: HDV 720P / HDV 1080i encoding presets * [AVB-232] - Presets: Additional MP4 presets * [AVB-570] - Transcoder: Deliver MPEG-2 TS packets and decoded elementary streams to different outputs of the same transcoder ** Bug * [AVB-65] - Transcoding a wmv input (with non-explicit/missing fps) to mp4 output fails with a muxer error * [AVB-357] - The test "mpg_convert_vsize_convert_abitrate" fails on OS X * [AVB-676] - Demuxers: The MPEG-TS demuxer cannot process more than 20 streams * [AVB-683] - Audio decoder (Mpeg Audio, AAC) flush does not work. Some audio samples are lost. * [AVB-686] - Docs: C++: Nested namespaces under primo::avblocks::Preset are not visible * [AVB-687] - The test "mpegts_h264_aac_to_mp4_remux" produces an output with damaged audio. Release Notes - AVBlocks - Version 1.18.0 (10 Apr 2015) ======================================================= ** New Feature * [AVB-569] - Transcoder: Support MPEG-2 TS packets as output. * [AVB-572] - Transcoder: Filter MPEG-2 TS packet by program number or packet ID * [AVB-653] - Transcoder: Mux up to 96Khz, 1-7 channel, 16 bit LPCM in MPEG-2 transport stream ** Improvement * [AVB-201] - Samples: Windows: C++: Add precompiled header for MetaInfo sample * [AVB-202] - Samples: Windows: C++: Add precompiled header for AVInfo sample * [AVB-207] - Samples: YUVEncoder: C++ and .NET: Use default options when started without command line parameters * [AVB-208] - Samples: StreamDecoder: C++ and .NET: Use default options when started without command line parameters * [AVB-209] - Samples: StreamEncoder: C++ and .NET: Use default options when started without command line parameters * [AVB-215] - Samples: AVInfo: C++ and .NET: Use a default media file when started without parameters * [AVB-216] - Samples: MetaInfo: C++ and .NET: Use a default media file when started without parameters * [AVB-411] - Samples: Slideshow: Use ipad.mp4.h264.720p preset as default when preset not set via command line * [AVB-412] - Samples: Slideshow: Present the same choice of presets in .NET and C++ on all platforms * [AVB-478] - Samples: AVInfo and MetaInfo: C++: Update to use `primo::ref` and `auto` * [AVB-528] - Params: C++: Add the missing ParamList::addByteArray method * [AVB-673] - StreamInfo: Rename `StreamInfo.ProgramID` to `StreamInfo.ProgramNumber` ** Bug * [AVB-610] - Muxer: Setting Param.Muxer.MP4.FastStartUseTempFile to true produces black video with no audio * [AVB-651] - Visual artifacts when encoding from YUV to H.264 Release Notes - AVBlocks - Version 1.17.0 (14 Mar 2015) ======================================================= ** New Feature * [AVB-183] - Samples: New MP4Muxer sample * [AVB-527] - Transcoder: Support MPEG-2 TS in Transcoder.Push * [AVB-559] - Samples: .NET: New ImageGrabber WPF sample ** Improvement * [AVB-320] - Codecs: AAC: Convert bitstream from ADIF to ADTS to avoid re-encoding. * [AVB-529] - Samples: CaptureDS: Set capture format without using the built-in property page * [AVB-534] - Docs: Improve the MediaPin.Connection docs * [AVB-536] - Demuxers: MPEG2-TS: Generate a separate data stream for Program Specific Information (PSI) tables * [AVB-554] - MediaInfo: Extend to report system subtype ** Bug * [AVB-560] - Cannot parse a wav file containing a muLaw audio stream * [AVB-573] - Transcoder.Pull returns multiple PCM audio samples with the same startTime * [AVB-578] - Cannot read an MPEG-2 Program Stream encoded with PrimoMpeg * [AVB-601] - Crash in Transcoder.Open when the input is a raw G.711 or G.726 file (no container) * [AVB-609] - Muxer: Output artefacts when using Param.Muxer.MP4.FastStart with some clips Release Notes - AVBlocks - Version 1.16.0 (05 Feb 2015) ======================================================= ** New Feature * [AVB-557] - Samples: New VideoSplitter sample that shows how to split a file to short clips ** Bug * [AVB-565] - Cannot transcode mulaw (wav) to mp3 * [AVB-577] - Race condition when using Transcoder.Open from multiple threads. Release Notes - AVBlocks - Version 1.15.0 (09 Jan 2015) ======================================================= ** New Feature * [PC-72] - Detect Teletext stream in TS * [AVB-333] - Demuxers: MP4: Support PCM audio tracks ('sowt' and 'twos' codecs) * [AVB-525] - StreamInfo: ProgramID and StreamID properties for multi-program transport streams (mpeg2-ts) * [AVB-538] - MediaInfo: Allow data stream processing via a Push method ** Improvement * [AVB-173] - MediaBuffer: Improve MediaBuffer interface and Buffer helper class * [AVB-437] - .NET: Avoid memory copy between managed and unmanaged code * [AVB-546] - Demuxers: MP4: Support ctts atom version 1 * [AVB-552] - Fix VCD related presets to produce MPEG1-PS * [AVB-553] - .NET: Add MediaSocket.StreamSubType to the .NET API ** Bug * [AVB-425] - Samples: CaptureDS: Recording stops with an error after only a few seconds * [AVB-535] - Demuxers: MPEG-TS: PAT has to be the first packet in a captured TS file in order to detect available programs and streams * [AVB-543] - AAC stream not recognized in a MOV container * [AVB-551] - Crash when using MPEG_PES stream type for output. Release Notes - AVBlocks - Version 1.14.0 (01 Nov 2014) ======================================================= ** New Feature * [AVB-500] - Transcoder: Support H.264 interlaced video output * [AVB-503] - Support *.MOD and *.TOD file formats * [AVB-504] - Add picture type to MediaSample * [AVB-517] - Support *.M2T file format ** Improvement * [AVB-475] - MPEG-2 Encoder: Improve performance and quality in restricted VBR mode * [AVB-506] - Params: MediaSocket and MediaPin.Params collections should be readily available. * [AVB-509] - MediaInfo: Windows: Return the correct error message for known COM errors. * [AVB-512] - Params: C++: Add convenience "add" methods to ParamList, e.g. ParamList::addInt(const char_t* name, int64_t value) * [AVB-520] - Docs: Add class diagrams ** Bug * [AVB-507] - MediaSocket: Calling FromMediaInfo multiple times creates media sockets linked to the same StreamInfo instance Release Notes - AVBlocks - Version 1.13.1 (11 Oct 2014) ======================================================= ** Bug * [AVB-513] - Cannot play H.264 MP4 video on Windows 7 SP1 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.