gst-vaapi NEWS -- summary of changes. 2015-07-15 Copyright (C) 2010-2011 Splitted-Desktop Systems Copyright (C) 2011-2013 Intel Corporation Copyright (C) 2011 Collabora Version 0.6 - 15.Jul.2015 * Add HEVC(H265) Decoder * Add HEVC(H265) Encoder * Add VP8 Encoder * Add JPEG Encoder * Add support for EGL [#743846, #743847, #741079] * Add a vaapidecodebin(vaapidecode->queue->vaapipostproc) element [#745216] * Add skin-tone-enhancement feature in vaapipostproc [#744088] * Add support for H.264 MVC Multiview High profile encoding with more than 2 views [#732453] * Add support for GstVideoGLTextureOrientation in plugins * Add support for BGRA textures in plugins * Removed all GStreamer 0.10 and 1.0 specific code sections [#745728,#732666] * Add support for loss of picturers in h264 decoder [#745048,#703921] * Add a simple-encoder test program that uses libgstvaapi for video encoding [#719528] * Add finer wayland frame control and many other optimizations [#719528, #749078, #747492#] * Add scaling of quality factor and Qantization tables for JPEG encoder [#748335] * Add GstColorBalance interface in vaapipostproc [#720376] * Add a handoff signal to vaapisink [#747905] * Add rounding control handling for VC1 simple and Main profile [#743958] * Record glconext supplied by downstream to enable run-time compatibility check [#725643] * Switch back to single thread implementation in vaapidecode [#742605] * Set decoding latency in vaapidecode by assuming realtime performance fo the HW decoding [#740419] * Allow vaapidecode to connect with glimagesink, mark x11 display as compatible with EGL [#745902] * Allow decoding of VC1 streams which contain user BDUs [#741237] * Use git.mk, a small Makefile to autogenerate .gitignore files * Expose the overlay capability in vaapisink for compatibility with dvbsuboverlay [#750095] * Enable VPP element in vaapidecodebin only if there is HW support [#749554] * Fix autoplugging of vaapidecode in playbin for wmv/asf streams * Fix multi-slice hevc encoding [#749854] * Fix ABBA deadlock between vaapisink and vaapipostproc if running in different threds [#738249] * Fix Seeking failure while using navseek in pipeline [#738677] * Fix PTS cache for MPEG2 GOP start [#748676] * Fix the wrong selection of passthrough mode in vaapipostproc [#748184] * Fix GstVaapiVideoPool related dead-lock [#747944] * Fix the race condition while setting drm device type [#747914] * Fix crash in vaapidecode if buffer outlives the decoder [#745189] * Fix memory leak in vaapidecode [#743226] * Fix multiple caps negotiation issues with vaapi elements [#744618] * Improve check for upstream element that requires DMABUF buffer pool * Fix vaapisink memory leak in debug mode * Fix crash when seeking mpeg2 strems * Fix support for Wayland/EGL running alongside X11 Version 0.5.10 - 3.Feb.2015 * Add support for DRM Render-Nodes for headless operation * Add support for VA surface buffer sharing with DMABUF and GEM handles * Add support for v4l2src with io-mode={dmabuf,dmabuf-import} * Drop support for VA/GLX specific APIs in libgstvaapi and vaapisink [#736711] * Improvements to H.264 codecs + Fix profile limits for encoding + Fix pixel-aspect-ratio in the encoded stream + Add decoding support for interlaced streams with repeat-first-field (RFF) + Fix decoding of interlaced streams in top-field-first order (TFF) [#739291] + Fix decoding of UK DVB-T2 streams [#739291] * Improvements to plugin elements + Add support for dma_buf imports (Wind Yuan) [#735362] + Allow for SW decoding fallbacks with unsupported profiles [#730997] + Make vaapipostproc work with SW elements (+Victor Jaquez) [#720174, #704078] + Allow vaapipostproc to integrate with GL downstream elements [#735231] + Add support for high-quality scaling to vaapipostproc ("scale-method=hq") + Fix advanced deinterlacing when it is the unique filter applied + Add GstColorBalance interface to vaapisink (Changzhi Wei) [#722390] + Implement the GstNavigation interface into vaapisink [#711479] + Allow rescaling of X11 window for vaapisink (Holger Kaelberer) [#711478] + Optimizations to vaapidecode thread handling (Sebastian Dröge) [#734616] + Fix deinterlacing from non VA memory buffers (Simon Farnsworth) [#726270] + Fix clearing of subtitle overlay (Simon Farnsworth) + Fix clearing of vaapipostproc state during restart (Michael Olbrich) Version 0.5.9 - 29.Jul.2014 * Add VP8 decoder (+Halley Zhao) * Add H.264 MVC decoder and encoder (+Sreerenj Balachandran, Xiaowei Li) * Fix support for Firefox >= 30 when built with GStreamer 1.0 APIs * Fix MPEG-4:2 decoder hang on skipped frames (Fabrice Bellet) [#733324] * Fix MPEG-2 decoder to propagate PTS from demuxer (Jan Schmidt) [#732719] * Improvements to H.264 decoder + Add support for grayscale encoded clips + Add minor optimizations to the parsing process + Make support for interlaced streams more robust [#701340] + Fix multiple slices decoding with varying slice types [#724518] + Fix parsing of multiple SEI messages in single NAL units (Aurelien Zanelli) * Improvements to plugin elements + Add download capability to vaapidecode [#733243] + Add support for crop regions in VPP mode [#720730] + Allow selection of a particular "display-name" for vaapisink [#722247] + Fix support for headless pipelines, e.g. vaapisink display="drm" mode + Fix creation of output surface pool for vaapipostproc (Simon Farnsworth) + Fix vaapipostproc "deinterlace-mode" semantics (Simon Farnsworth) [#726361] + Fix memory leak in vaapidecode ! {glimagesink,cluttersink} (Matthew Waters) + Fix vaapidecode hang when downstream errors out (Matthew Waters) [#733897] Version 0.5.8 - 23.Jan.2014 * Add H.264 video encoding (+Feng Yuan) * Add MPEG-2 video encoding (+Guangxin Xu) * Add initial support for GStreamer 1.3 (Matthieu Bouron) * Add support for H.264 Constrained Baseline profile (Feng Yuan) * Add support for colorbalance adjustment in vaapipostproc (Halley Zhao) * Add color space conversion in vaapisink (Holger Kaelberer) [#722255] * Fix OpenGL interop with clutter-gst and glimagesink elements (Matthieu Bouron) * Fix decoding of H.264 quantization matrices (+Cong Zhong) [#706406] * Fix robustness of H.264 decoder when packets are missing * Fix hang in vaapidecode on SIGINT [+C] (Fen Yuan) [#720584] * Fix vaapisink initialization with foreign window (Holger Kaelberer) [#722244] * Fix Sharpening filter in vaapipostproc (Halley Zhao) [#720375] Version 0.5.7 - 21.Nov.2013 * Add support for GStreamer 1.2 (+Victor Jaquez, Sreerenj Balachandran) * Add support for video processing (VA/VPP) (+Halley Zhao) + Scaling and color conversion + Image enhancement filters: Sharpening, Noise Reduction + Advanced deinterlacing: Motion-Adaptive, Motion-Compensated * Fix vaapidecode pause/resume/seek capabilities (+Guangxin Xu) * JPEG decoder bug fixes and improvements + Add support for multiscan images + Improve overall performance by +12% + Fix robustness and tolerance to missing packets + Fix detection of image boundaries (Junfeng Xu) + Fix decoding from Logitech Pro C920 cameras (Junfeng Xu) Version 0.5.6 - 29.Aug.2013 * Add render-to-pixmap API to bypass VA/GLX in clutter-gst * Add initial support for video-processing APIs (+Halley Zhao) * Add support for video cropping and deinterlacing to the Wayland backend * Add "force-aspect-ratio" property to vaapisink (Simon Farnsworth) * Fix support for clutter-gst in GStreamer 0.10 builds * Fix HW accelerated rendering with SW decoded pipelines * Fix videotestsrc ! vaapisink pipelines (Guangxin Xu) * Fix memory leak of raw video uploader objects (Feng Yuan) * Fix decoding without a video parser element before `vaapidecde' * Fix regression in MPEG-2 decoder due to incomplete video cropping support * Fix dead-lock condition on Wayland when the end-of-stream is reached Version 0.5.5 - 15.Jul.2013 * Allow creation of video surfaces with an explicit pixel format * Allocate VA/GLX capable buffers by default on X11 servers (Victor Jaquez) * Add support for video cropping in MPEG-2, VC-1 and H.264 codecs (+Sreerenj) * Fix memory leak when processing interlaced pictures * Fix creation of VA/GLX textures when video cropping is used * Fix raw image copies in vaapidownload / vaapiupload (Feng Yuan) * Fix MPEG-2 quantization matrices reset on new sequence headers (Cong Zhong) * Fix direct linking of vaapidownload element to xvimagesink (Feng Yuan) * Fix memory corruption in video pool implementation, e.g. for clutter-gst Version 0.5.4 - 14.Jun.2013 * Streamline core libgstvaapi decoding library (API/ABI changes) * Use built-in codecparsers by default (or --disable-builtin-codecparsers) * Fix default Huffman tables generation (Feng Yuan) * Fix destruction of Wayland display resources * Fix explicit specification of display type to vaapisink * Fix memory leak in vaapiupload in GStreamer 0.10 builds (Halley Zhao) * Fix performance regression caused by improper use of GstTask callback * Fix raw decoding mode to transfer ownership of surface proxy to caller Version 0.5.3 - 18.Apr.2013 * Add support for GStreamer 1.0.x API (+Sreerenj Balachandran) * Fix build on Fedora 17 (Víctor Manuel Jáquez) * Fix vaapidecode heuristics to detect decode timeouts * Fix fallback to sofware decoding if no hardware decoder is available * Fix regression in raw decoding mode whereby PTS or picture flags were lost Version 0.5.2 - 28.Mar.2013 * Add support for video seek/reset (+Sreerenj Balachandran) * Improve MPEG-2 decoder robustness when packets are missing * Fix support for raw YUV buffers in vaapisink * Fix build on older Linux distributions with glib < 2.32 * Fix decoding of MPEG-2 videos with height > 2800 pixels * Fix MPEG-2 decoding with explicit quantization matrices set (Cong Zhong) * Fix illegal write in vaapiupload for NV12 surfaces (Holger Kaelberer) Version 0.5.1 - 29.Jan.2013 * Add simple decoder demo that only uses libgstvaapi * Fix thread-safety issues in the Wayland renderer * Fix VC-1 decoding bugs #692461, #692312, #692271, #692270, #692267 * Fix decoding of VC-1 videos in AVI containers (Feng Yuan) * Fix H.264 parser to zero-initialize key syntax elements * Fix MPEG-2, H.264 and VC-1 decoders to submit all decoded frames on Version 0.5.0 - 15.Jan.2013 * Optimize MPEG-2 and H.264 decoders * Use GstVideoDecoder API for vaapidecode (+Sreerenj Balachandran) * Add support for raw YUV buffers in vaapisink (+Halley Zhao) * Add support for global-alpha subpictures/overlay (+Holger Kaelberer) * Fix calculation of the vaapidecode time-out for a surface to get released Version 0.4.2 - 18.Dec.2012 * Fix H.264 decoding on Cedar Trail platforms * Fix MPEG-4 decoding at end-of-stream (Feng Yuan) * Fix MPEG-4 decoding when a buffer contains multiple packets (Feng Yuan) * Fix memory leak in GstVaapiVideoBuffer for images and surfaces (Feng Yuan) * Fix symbols collision between built-in codecparsers/ and system library * Use GST_PLUGIN_PATH, if set, to install plugin elements (Halley Zhao) Version 0.4.1 - 27.Nov.2012 * Add support for H.264 interlaced streams * Add support for Wayland 1.0 protocol (Robert Bradford) * Add upstream bitstream parsers library (codecparsers) * Fix build with the GNU gold linker * Fix detection of H.264 picture boundaries * Fix memory leak in MPEG-2 decoder for empty user-data packets * Fix H.264 decoder with MMCO-based reference picture marking process * Decode pending packets when an end-of-stream is received (+Feng Yuan) * Use pixel-aspect-ratio from bitstream parsers (Simon Farnsworth) Version 0.4.0 - 05.Oct.2012 * Add support for video rotation * Add new video display APIs: Wayland and raw DRM for headless pipelines * Drop FFmpeg-based decoders, only use codecparsers-based ones * Only reset decoder if meaningful caps changed, e.g. size * Allocate the minimal number of video surfaces useful for decoding * Fix vaapisink to scale video down to fit the screen dimensions * Fix vaapidecode crash when trying to release inexistent lock (Philip Lorenz) Version 0.3.8 - 20.Sep.2012 * Disable FFmpeg-based decoders by default * Add JPEG decoder (based on codecparsers) * Fix crash when destroying GstVaapiDisplay objects early * Fix GLX rendering with FBO + texture-from-pixmap (fallback for VA/GLX) * Fix rendering with EMGD driver when overlay mode is used * Fix MPEG-2 decoding on Intel Atom platforms with EMGD driver * Fix release of dangling proxy surfaces when decoder is reset (Philip Lorenz) Version 0.3.7 - 26.Jun.2012 * Fix vaapidecode to report unsupported codec profiles * Fix MPEG-2 decoding of streams with extra slice() information * Map MPEG-2 compatible High profile streams to Main profile * Map MPEG-4 Simple Scalable profile streams to Advanced Simple (Feng Yuan) * Fix various MPEG-4 decoding bugs (timestamps, reference frames) (Feng Yuan) * Don't forcibly resize user provided X windows (Holger Kaelberer) * Recalculate render rect only if caps are negotiated (Holger Kaelberer) Version 0.3.6 - 02.Apr.2012 * Add support for decoding MPEG-2 interlaced streams * Add support for interlaced streams with FFmpeg decoders (Holger Kaelberer) * Add vaapipostproc element for video postprocessing (e.g. deinterlacing) * Skip all H.264 Filler Data NALs * Fix crashes in MPEG-4 decoder (Feng Yuan) * Fix fallback from MPEG-2 Simple to Main profile * Improve decoding of misformed MPEG-2 streams (+Feng Yuan) * Avoid a hang in playbin2 for some MPEG-2 TS streams (Feng Yuan) Version 0.3.5 - 02.Mar.2012 * Fix H.264 decoding when emulation prevention bytes are detected * Skip all H.264 Access Unit (AU) NALs (Feng Yuan) * Fix modification process of H.264 reference picture lists (Feng Yuan) * Fix MPEG-2 stream size calculation (Sreerenj Balachandran) * Fix MPEG-2 decoding on Intel Gen with multiple slices per MB line * Fix crash when downloading/uploading VA images on PowerVR (Cedar Trail) * Fix double buffer free issues with some VA drivers * Fix crash when there is no free surface available for decoding * Skip profiles which have no entrypoints (Halley Zhao) * Fix minor memory leaks in plug-in elements Version 0.3.4 - 01.Feb.2012 * Add H.264 decoder (based on codecparsers) * Add workaround for qtdemux not exposing H.263 profiles (Halley Zhao) * Alias H.263 Baseline profile to MPEG-4:2 Simple profile (Halley Zhao) * Use optimized path to submit slice data buffers * Fix possible memory leak in MPEG-2 decoder * Fix vaapisink to cap window size to the maximum display size * Fix MPEG-2, MPEG-4 and VC-1 decoders to refcount reference surfaces properly Version 0.3.3 - 16.Jan.2012 * Add MPEG-2, MPEG-4 and VC-1 decoders (based on codecparsers) * Add support for GstXOverlay::set_render_rectangle() in vaapisink * Fix memory leak of GL texture (Nicolas Dufresne) * Fix vaapisink to automatically fit video to window * Fix vaapiupload to only set caps on newly created buffers (Nicolas Dufresne) * Fix gst_vaapi_ensure_display() to honour DISPLAY environment variable Version 0.3.2 - 06.Jan.2012 * Rename vaapiconvert element to vaapiupload * Fix vaapiupload from NV12 buffers * Fix possible leaks of VA surfaces in FFmpeg decoder * Fix memory leak in vaapiupload initialization function * Fix possible crash in vaapidecode deinitialization code * Add vaapidownload element to convert from VA surfaces to YUV pixels Version 0.3.1 - 16.Dec.2011 * Fix check for supported VA images * Add support for partial VA image updates * Add support for new subtitle/overlay infrastructure (Thibault Saunier) * Add missing video context queries in vaapisink/vaapiconvert (Nicolas Dufresne) Version 0.3.0 - 09.Dec.2011 * Group all plugins into the same bundle * Use new XOverlay API (Sreerenj Balachandran) * Use new GstVideoContext and GstSurfaceBuffer API (Nicolas Dufresne) * Fix vaapidecode sink caps if decoder is in NULL state (Sreerenj Balachandran) * Fix auto-plugging and downstream buffer allocation (Nicolas Dufresne) * Fix crash in VA display init if no VA configs were found (Nicolas Dufresne) Version 0.2.7 - 07.Dec.2011 * Relicense plugins and tests to LGPL v2.1 (SDS) * Fix MPEG-2 decoding from TS & PS streams * Fix build with newer versions of FFmpeg * Fix vaapiconvert direct-rendering modes * Fix use of invalid data at the end-of-stream Version 0.2.6 - 14.Jun.2011 * Fix licensing terms (LGPL v2.1) Version 0.2.5 - 20.Jul.2010 * Fix build with older VA-API 0.29-sds * Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer * Fix VA/GLX support with texture-from-pixmap and GLX version < 1.3 Version 0.2.4 - 18.May.2010 * Fix video rendering rect within an embedder window (Totem) * Disable GLX rendering when vaapisink uses a foreign X window Version 0.2.3 - 16.May.2010 * Fix memory leak of encoded buffers * Fix decoder caps to report codec aliases * Fix VC-1 decoding through the playbin2 pipeline Version 0.2.2 - 14.May.2010 * Fix packaging dependencies * Fix a crash in the FFmpeg decoder on close * Fix OpenGL texture internal format (Clutter) * Fix foreign window size for embedding (Totem) Version 0.2.1 - 12.May.2010 * Fix integration within the playbin2 pipeline * Fix vaapidecode to expose the HW supported caps only * Add GstXOverlay interface to vaapisink (Totem media player) Version 0.2.0 - 05.May.2010 * Relicense gst-libs/ code to LGPL v2.1+ * Add FFmpeg/VAAPI decoder for the new `vaapidecode' element Version 0.1.2 - 30.Mar.2010 * Add AYUV image format * Add compatibility with the original VA-API 0.29 * Add OpenGL support through VA/GLX extensions or TFP+FBO fallback Version 0.1.1 - 23.Mar.2010 * Document public API for libgstvaapi-*.so.* * Optimize `vaapiconvert' pipeline (direct-rendering) * Allow `vaapisink` to render videos in fullscreen mode Version 0.1.0 - 16.Mar.2010 * Initial release