playbin: check the flags before set again
[platform/upstream/gst-plugins-base.git] / NEWS
diff --git a/NEWS b/NEWS
index f18002a..14b25e8 100644 (file)
--- a/NEWS
+++ b/NEWS
-This is GStreamer Base Plugins 1.0.2
+This is GStreamer Base Plugins 1.4.0
 
-Changes since 1.0.1:
+Changes since 1.2:
 
-      * Parallel installability with 0.10.x series
-      * alsa: fix probing of supported formats, and advertise non-native-endianness formats as fallback
-      * audiobasesink: properly handle GAP events (fixing some isses with e.g. certain DVD menus)
-      * audioconvert: try harder to not convert or to preserve input format precision
-      * audiodecoder: leak fixes and refcounting fixes
-      * audioresample: re-enable the SSE/SSE2 code paths for better performance
-      * riff: fix paletted RGB formats and msvideo mapping
-      * rtsp: make formatting and parsing of range floating-point values locale-independent
-      * playbin: streamsynchronizer fixes, esp. for handling corner-cases near EOS
-      * tcpserver{sink,src}: add 'current-port' property and signal actually used port
-      * videoconvert: fix handling of paletted RGB formats
-      * videodecoder: don't leak message strings when error is not fatal
-      * videodecoder: finetune missing timestamp estimating
-      * videotestsrc: add palette for paletted RGB formats
-      * vorbistag: fix writing of image tags into vorbis comments
+New API:
+ • GstMessageType has GST_MESSAGE_EXTENDED added. All types before
+   that can be used together as a flags type as before, but from
+   that message onwards the types are just counted incrementally.
+   This was necessary to be able to add more message types.
+   In 2.0 GstMessageType will just become an enum and not a flags
+   type anymore.
+ • GstDeviceMonitor for device probing, e.g. to list all available
+   audio or video capture devices. This is the replacement for
+   GstPropertyProbe from 0.10.
+ • Events accumulate the running-time offset now when travelling
+   through pads, as set by the gst_pad_set_offset() function. This
+   allows to compensate for this in the QOS event for example.
+ • GstBuffer has a new flag "tag-memory" that is set automatically
+   when memory is added or removed to a buffer. This allows buffer
+   pools to detect if they can recycle a buffer or need to reset
+   it first.
+ • GstToc has new API to mark GstTocEntries as loops.
+ • A not-authorized resource error has been defined to notify
+   applications that accessing the resource has failed because
+   of missing authorization and to distinguish this case from others.
+   This change is actually already in 1.2.4.
+ • GstPad has a new flag "accept-intersect", that will let the default
+   ACCEPT_CAPS query handler do an intersection instead of subset check.
+   This is interesting for parser elements that can handle incomplete
+   caps.
+ • GstCollectPads has support for flushing and a default handler for
+   SEEK events now.
+ • New GstFlowAggregator helper object that simplifies handling of
+   flow returns in elements with multiple source pads. Additionally
+   GstPad now always stores the last flow return and provides an
+   API to retrieve it.
+ • GstSegment has new API to offset the running time by a specific
+   value and this is used in GstPad to allow positive and negative
+   offsets in gst_pad_set_offset() in all situations.
+ • Support for h265/HEVC and VP8 has been added to the codec utils and codec
+   parsers library, and was integrated into various elements.
+ • API for adjusting the TLS validation of RTSP connection has been added.
+ • The RTSP and SDP library has MIKEY (RFC 3830) support now, and
+   there is API to distinguish between the different RTSP profiles.
+ • API to access RTP time information and statistics.
+ • Support for auxiliary streams was added to rtpbin.
+ • Support for tiled, raw video formats has been added.
+ • GstVideoDecoder and GstAudioDecoder have API to help aggregating tag
+   events and merge custom tags into them consistently.
+ • GstBufferPool has support for flushing now.
+ • playbin/playsink has support for application provided audio and video
+   filters.
+ • GstDiscoverer has new and simplified API to get details about missing
+   plugins and information to pass to the plugin installer.
+ • The GL library was merged from gst-plugins-gl to gst-plugins-bad,
+   providing a generic infrastructure for handling GL inside GStreamer
+   pipelines and a plugin with some elements using these, especially
+   a video sink. Supported platforms currently are Android, Cocoa (OS X),
+   DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows) and generic X11,
+   Wayland and EGL platforms.
+   This replaces eglglessink and also is supposed to replace osxvideosink.
+ • New GstAggregator base class in gst-plugins-bad. This is supposed to
+   replace GstCollectPads in the future and fix long-known shortcomings
+   in its API. Together with the base class some elements are provided
+   already, like a videomixer (compositor).
 
-Bugs fixed since 1.0.1:
 
-      * 580093 : tcpserversink,src: add 'current-port' property and signal actually used port when port=0 was set
-      * 680904 : alsasink: no supported formats detected with using USB sound card on big-endian system
-      * 683098 : videodecoder: log failure message if acquire_buffer failed
-      * 684411 : rtsp: range in SDP formatted according to locale
-      * 685273 : Pre-rolling on GAP events doesn't work properly for audio sinks
-      * 685711 : audio, video: update docs for virtual functions that require chaining up
-      * 685938 : [decodebin] Issues with group switching algorithm
-      * 686081 : adder: all unit tests crash now after collectpads changes
-      * 686298 : Cannot decode some AVI files with Microsoft Video 1
+Major changes:
+ • New plugins and elements:
+   ∘ v4l2videodec element for accessing hardware codecs on
+     platforms that make them accessible via V4L2, e.g.
+     Samsung Exynos. This comes together with major refactoring
+     of the existing V4L2 elements and the corresponding
+     infrastructure.
+     The v4l2videodec element replaces the mfcdec element.
+   ∘ New downloadbuffer element that replaces the download
+     buffering feature of queue2. Compared to queue2's code
+     it is much simpler and only for this single use case.
+     A noteworthy new feature is that it's downloading gaps
+     in the already downloaded stream parts when nothing else
+     is to be downloaded.
+     This is now used by playbin when download buffering is
+     enabled.
+   ∘ rtpstreampay and rtpstreamdepay elements for transmitting
+     RTP packets over a stream API (e.g. TCP) according to
+     RFC 4571.
+   ∘ rtprtx elements for standard compliant implementation of
+     retransmissions, integrated into the rtpmanager plugin.
+   ∘ audiomixer element that mixes multiple audio streams together
+     into a single one while keeping synchronization. This is
+     planned to become the replacement of the adder element.
+   ∘ OpenNI2 plugin for 3D cameras like the Kinect camera.
+   ∘ OpenEXR plugin for decoding high-dynamic-range EXR images.
+   ∘ curlsshsink and curlsftpsink to write files via SSH/SFTP.
+   ∘ videosignal, ivfparse and sndfile plugins ported from 0.10.
+   ∘ avfvideosrc, vtdec and other elements were ported from 0.10 and
+     are available on OS X and iOS now.
 
-Changes since 1.0.0:
-    
-      * videodecoder and -encoder timestamp handling improvements
-      * thread-safey fixes for GstMeta registrations and GstVideoDecoder
-      * bug fixes
+ • Other changes:
+   ∘ gst-libav now uses libav 10.2, and gained support for H265/HEVC.
+   ∘ Support for hardware codecs and special memory types has been
+     improved with bugfixes and feature additions in various plugins
+     and base classes.
+   ∘ Various bugfixes and improvements to buffering in queue2 and
+     multiqueue elements.
+   ∘ dvbsrc supports more delivery mechanisms and other features
+     now, including DVB S2 and T2 support.
+   ∘ The MPEGTS library has support for many more descriptors.
+   ∘ Major improvements to tsdemux and tsparse, especially time and
+     seeking related.
+   ∘ souphttpsrc now has support for keep-alive connections,
+     compression, configurable number of retries and configuration
+     for SSL certificate validation.
+   ∘ hlsdemux has undergone major refactoring and works more
+     reliable now and supports more HLS features like trick modes.
+     Also fragments are pushed downstream while they're downloaded
+     now instead of waiting for each fragment to finish.
+   ∘ dashdemux and mssdemux are now also pushing fragments downstream
+     while they're downloaded instead of waiting for each fragment to
+     finish.
+   ∘ videoflip can automatically flip based on the orientation tag.
+   ∘ openjpeg supports the OpenJPEG2 API.
+   ∘ waylandsink was refactored and should be more useful now. It also
+     includes a small library which most likely is going to be removed
+     in the future and will result in extensions to the GstVideoOverlay
+     interface.
+   ∘ gst-rtsp-server supports SRTP and MIKEY now.
+   ∘ gst-libav encoders are now negotiating any profile/level settings
+     with downstream via caps.
+   ∘ Lots of fixes for coverity warnings all over the place.
+   ∘ Negotiation related performance improvements.
+   ∘ 800+ fixed bug reports, and many other bug fixes and other
+     improvements everywhere that had no bug report.
 
-Bugs fixed since 1.0.0:
-     
-      * 684424 : playbin: external subtitles break playback
-      * 684832 : videodecoder: Takes stream lock in query function
-      * 685110 : encodebin fails to release mux request sink pad for GstId3Mux as it is a static one for this mux
-      * 685242 : rtsp: mark url argument of gst_rtsp_url_parse as out
-      * 685332 : GstMeta registry race
-      * 685490 : audioencoder: don't require base class to implement to start vfunc
-
-New features in 1.0.0:
-
-      * Parallel installability with 0.10.x series
-      * See release notes for more details
+Things to look out for:
+ • The eglglessink element was removed and replaced by the glimagesink
+   element.
+ • The mfcdec element was removed and replaced by v4l2videodec.
+ • osxvideosink is only available in OS X 10.6 or newer.
+ • On Android the namespace of the automatically generated Java class
+   for initialization of GStreamer has changed from com.gstreamer to
+   org.freedesktop.gstreamer to prevent namespace pollution.
+ • On iOS you have to update your gst_ios_init.h and gst_ios_init.m in
+   your projects from the one included in the binaries if you used the
+   GnuTLS GIO module before. The loading mechanism has slightly changed.