vp9parse: Skip parsing decode-only frame
[platform/upstream/gstreamer.git] / NEWS
diff --git a/NEWS b/NEWS
index aa949cb..cc6c3b4 100644 (file)
--- a/NEWS
+++ b/NEWS
-This is GStreamer Bad Plugins 1.2.0
-
-Changes since 1.0:
-
-New API:
- • GstContext negotiation / sharing / announcing for sharing a
-   generic context between elements, e.g. a display handle
- • GL texture upload conversion meta for allowing different
-   buffer types to be converted to an OpenGL texture
- • GstCapsFeatures as extension to GstCaps for allowing the
-   negotiation of specific memory or meta requirements between
-   elements
- • GstMemory flags for contiguous and non-mappable memory
- • The stream-start event has optional flags now, e.g. for signalling
-   sparse streams
- • The stream-start even has an optional group-id field now to signal
-   all streams that should be played together
- • Allocators library in gst-plugins-base, currently only with generic
-   dmabuf memory support
- • insertbin library for easier handling of dynamically linked
-   pipelines (in -bad for now)
- • EGL helper library (in -bad for now)
- • MPEG-TS data structure library (in -bad for now)
- • New GstVideoRegionOfInterestMeta to describe a region of interest on
-   video frames.
- • GstVideoDecoder/Encoder has new ::flush() vfunc to replace the
-   ill-defined ::reset() vfunc.
- • The URI query allows to query the redirected URI now.
-
-Major changes:
- • New tool: gst-play-1.0 in gst-plugins-base for basic playback
-   testing on the command line.
- • New plugins:
-   ∘ mssdemux for Microsoft Smooth Streaming
-   ∘ dashdemux for DASH adaptive streaming protocol
-   ∘ bluez for interaction with Bluetooth devices
-   ∘ openjpeg for JPEG2000 decoding and encoding
-   ∘ daala for experimental Daala decoding and encoding
-   ∘ vpx plugin has experimental VP9 decoding and encoding support
-   ∘ webp plugin for WebP decoding (encoding to be added later)
-   ∘ Various others: yadif, srtp, sbc, fluidsynth, midiparse,
-     mfc, ivtv, accuraterip and audiofxbad
-
- • Moved plugins:
-   ∘ dtmf, vp8rtp, scaletempo and rtpmux plugins are in
-     gst-plugins-good now
-
- • Video:
-   ∘ Fix handling of interlaced video in converters such as videoscale
-     and videoconvert (e.g. scale both fields independently)
-   ∘ videoconvert will try harder to minimise quality losses when
-     conversion is necessary
-   ∘ The experimental GstSurfaceConverter, GstSurfaceMeta and
-     GstVideoContext APIs from the (confusingly-named) 
-     libgstbasevideo-1.0 library in gst-plugins-bad have now been
-     removed and been replaced by new APIs in GStreamer Core and
-     gst-plugins-base (see above). Since that was all that was left in
-     this library, the entire experimental libgstbasevideo-1.0 library
-     has been removed from gst-plugins-bad
-   ∘ Chroma subsampling and chroma siting conversion is better handled
-     in videoconvert and the support for interlaced video was improved.
-   ∘ New pinwheel and spoke patterns in videotestsrc
-   ∘ videomixer can now accept different video formats on its sinkpads
-     and converts to a common format during mixing
-
- • Audio:
-   ∘ audioconvert will try harder to minimise quality losses when
-     conversion is necessary
-   ∘ adder now allows muting/unmuting of its input streams, and also
-     per-input stream volume 
-   ∘ pulseaudio elements can switch between devices during playback now
-   ∘ aacparse can convert between ADTS←→RAW
-
- • Platform specific changes:
-   ∘ Caps, events, etc. are now printed in the GStreamer debug logs
-     with their content instead of just the pointer address even on
-     non-glibc platforms (e.g. Windows, OSX, Android).
-   ∘ Network elements (UDP/TCP) now work better with platforms,
-     where IPv6 sockets can't handle IPv4 (e.g. Windows)
-   ∘ Linux/BSD: v4l2 had many improvements and cleanups
-
- • Other changes:
-   ∘ gst-libav now uses libav 9
-   ∘ Static linking of plugins is supported now (also in 1.0.7)
-   ∘ rtspsrc: add support for NetClientClock: when the server suggests a
-     GstNetTimeProvider in the SDP, set up a GstNetClientClock that
-     slaves to the remote clock and suggest this clock in provide_clock.
-     Simplifies synchronized playback of a resource from an RTSP server.
-     gst-rtsp-server now supports adding this to the SDP and can provide
-     a network clock
-   ∘ RTP retransmission / NACK support and big RTP jitterbuffer improvements
-   ∘ SRTP and DTLS support
-   ∘ Changes to many elements and core to use the correct sticky event
-     order and also not lose any important sticky events during flushing
-   ∘ >1000 fixed bug reports, and many other bug fixes and other
-     improvements everywhere that had no bug report
-
-Things to look out for:
- • Single header includes for all libraries, e.g. #include
-   <gst/video/video.h> - this was needed for some bindings.
- • Stricter (correct) caps subset checking in some cases where this was
-   not correct before. Caps will now always fail to be a compatible
-   subset of another set of caps if the subset caps are missing some
-   fields that the superset caps have. This might lead to not-negotiated
-   errors if caps are incomplete now. However, it also prevents possible
-   data corruption caused by piping data formatted in an
-   incompatible/unexpected way into some elements. Check your h264 caps
-   for stream-format and alignment fields and AAC caps for the
-   stream-format field. This change will also be included in the next
-   stable 1.0.8 release.
- • Stricter checking for missing events and correct sticky event order
-   (stream-start, caps, segment) in some places; this is not enabled in
-   stable releases by default, but you may get warnings when using git
-   builds, development releases or when compiling with
-   -UG_DISABLE_ASSERT in CFLAGS
- • x264enc now outputs data in byte-stream by default if downstream has
-   ANY caps (e.g. appsink without caps set, filesink, udpsink,
-   tcpserversink etc.)
- • The MPEG TS demuxer posts messages contain the PMT, PAT, etc. in a
-   different format now. This new format uses the data structures from
-   the new MPEGTS library
- • The GstContext API has changed between 1.1.4 and 1.1.90
+GStreamer 1.20 Release Notes
 
+GStreamer 1.20 has not been released yet. It is scheduled for release
+around July 2021.
+
+1.19.x is the unstable development version that is being developed in
+the git master branch and which will eventually result in 1.20, and
+1.19.1 is the current development release in that series
+
+It is expected that feature freeze will be around June/July 2021,
+followed by several 1.19 pre-releases and the new 1.20 stable release
+around July 2021.
+
+1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
+1.10, 1.8, 1.6,, 1.4, 1.2 and 1.0 release series.
+
+See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
+version of this document.
+
+Last updated: Sunday 30 May 2021, 16:00 UTC (log)
+
+Introduction
+
+The GStreamer team is proud to announce a new major feature release in
+the stable 1.x API series of your favourite cross-platform multimedia
+framework!
+
+As always, this release is again packed with many new features, bug
+fixes and other improvements.
+
+Highlights
+
+-   this section will be completed in due course
+
+Major new features and changes
+
+Noteworthy new features and API
+
+-   this section will be filled in in due course
+
+New elements
+
+-   this section will be filled in in due course
+
+New element features and additions
+
+-   this section will be filled in in due course
+
+Plugin and library moves
+
+-   this section will be filled in in due course
+
+-   There were no plugin moves or library moves in this cycle.
+
+Plugin removals
+
+The following elements or plugins have been removed:
+
+-   this section will be filled in in due course
+
+Miscellaneous API additions
+
+-   this section will be filled in in due course
+
+Miscellaneous performance, latency and memory optimisations
+
+-   this section will be filled in in due course
+
+Miscellaneous other changes and enhancements
+
+-   this section will be filled in in due course
+
+Tracing framework and debugging improvements
+
+-   this section will be filled in in due course
+
+Tools
+
+-   this section will be filled in in due course
+
+GStreamer RTSP server
+
+-   this section will be filled in in due course
+
+GStreamer VAAPI
+
+-   this section will be filled in in due course
+
+GStreamer OMX
+
+-   this section will be filled in in due course
+
+GStreamer Editing Services and NLE
+
+-   this section will be filled in in due course
+
+GStreamer validate
+
+-   this section will be filled in in due course
+
+GStreamer Python Bindings
+
+-   this section will be filled in in due course
+
+GStreamer C# Bindings
+
+-   this section will be filled in in due course
+
+GStreamer Rust Bindings and Rust Plugins
+
+The GStreamer Rust bindings are released separately with a different
+release cadence that’s tied to gtk-rs, but the latest release has
+already been updated for the upcoming new GStreamer 1.20 API.
+
+gst-plugins-rs, the module containing GStreamer plugins written in Rust,
+has also seen lots of activity with many new elements and plugins.
+
+What follows is a list of elements and plugins available in
+gst-plugins-rs, so people don’t miss out on all those potentially useful
+elements that have no C equivalent.
+
+-   FIXME: add new elements
+
+Rust audio plugins
+
+-   audiornnoise: New element for audio denoising which implements the
+    noise removal algorithm of the Xiph RNNoise library, in Rust
+-   rsaudioecho: Port of the audioecho element from gst-plugins-good
+    rsaudioloudnorm: Live audio loudness normalization element based on
+    the FFmpeg af_loudnorm filter
+-   claxondec: FLAC lossless audio codec decoder element based on the
+    pure-Rust claxon implementation
+-   csoundfilter: Audio filter that can use any filter defined via the
+    Csound audio programming language
+-   lewtondec: Vorbis audio decoder element based on the pure-Rust
+    lewton implementation
+
+Rust video plugins
+
+-   cdgdec/cdgparse: Decoder and parser for the CD+G video codec based
+    on a pure-Rust CD+G implementation, used for example by karaoke CDs
+-   cea608overlay: CEA-608 Closed Captions overlay element
+-   cea608tott: CEA-608 Closed Captions to timed-text (e.g. VTT or SRT
+    subtitles) converter
+-   tttocea608: CEA-608 Closed Captions from timed-text converter
+-   mccenc/mccparse: MacCaption Closed Caption format encoder and parser
+-   sccenc/sccparse: Scenarist Closed Caption format encoder and parser
+-   dav1dec: AV1 video decoder based on the dav1d decoder implementation
+    by the VLC project
+-   rav1enc: AV1 video encoder based on the fast and pure-Rust rav1e
+    encoder implementation
+-   rsflvdemux: Alternative to the flvdemux FLV demuxer element from
+    gst-plugins-good, not feature-equivalent yet
+-   rsgifenc/rspngenc: GIF/PNG encoder elements based on the pure-Rust
+    implementations by the image-rs project
+
+Rust text plugins
+
+-   textwrap: Element for line-wrapping timed text (e.g. subtitles) for
+    better screen-fitting, including hyphenation support for some
+    languages
+
+Rust network plugins
+
+-   reqwesthttpsrc: HTTP(S) source element based on the Rust
+    reqwest/hyper HTTP implementations and almost feature-equivalent
+    with the main GStreamer HTTP source souphttpsrc
+-   s3src/s3sink: Source/sink element for the Amazon S3 cloud storage
+-   awstranscriber: Live audio to timed text transcription element using
+    the Amazon AWS Transcribe API
+
+Generic Rust plugins
+
+-   sodiumencrypter/sodiumdecrypter: Encryption/decryption element based
+    on libsodium/NaCl
+-   togglerecord: Recording element that allows to pause/resume
+    recordings easily and considers keyframe boundaries
+-   fallbackswitch/fallbacksrc: Elements for handling potentially
+    failing (network) sources, restarting them on errors/timeout and
+    showing a fallback stream instead
+-   threadshare: Set of elements that provide alternatives for various
+    existing GStreamer elements but allow to share the streaming threads
+    between each other to reduce the number of threads
+-   rsfilesrc/rsfilesink: File source/sink elements as replacements for
+    the existing filesrc/filesink elements
+
+Build and Dependencies
+
+-   this section will be filled in in due course
+
+gst-build
+
+-   this section will be filled in in due course
+
+Cerbero
+
+Cerbero is a meta build system used to build GStreamer plus dependencies
+on platforms where dependencies are not readily available, such as
+Windows, Android, iOS and macOS.
+
+General improvements
+
+-   this section will be filled in in due course
+
+macOS / iOS
+
+-   this section will be filled in in due course
+
+Windows
+
+-   this section will be filled in in due course
+
+Windows MSI installer
+
+-   this section will be filled in in due course
+
+Linux
+
+-   this section will be filled in in due course
+
+Android
+
+-   this section will be filled in in due course
+
+Platform-specific changes and improvements
+
+Android
+
+-   this section will be filled in in due course
+
+macOS and iOS
+
+-   this section will be filled in in due course
+
+Windows
+
+-   this section will be filled in in due course
+
+Linux
+
+-   this section will be filled in in due course
+
+Documentation improvements
+
+-   this section will be filled in in due course
+
+Possibly Breaking Changes
+
+-   this section will be filled in in due course
+
+Known Issues
+
+-   this section will be filled in in due course
+
+-   There are a couple of known WebRTC-related regressions/blockers:
+
+    -   webrtc: DTLS setup with Chrome is broken
+    -   webrtcbin: First keyframe is usually lost
+
+Contributors
+
+-   this section will be filled in in due course
+
+… and many others who have contributed bug reports, translations, sent
+suggestions or helped testing.
+
+Stable 1.20 branch
+
+After the 1.20.0 release there will be several 1.20.x bug-fix releases
+which will contain bug fixes which have been deemed suitable for a
+stable branch, but no new features or intrusive changes will be added to
+a bug-fix release usually. The 1.20.x bug-fix releases will be made from
+the git 1.20 branch, which will be a stable branch.
+
+1.20.0
+
+1.20.0 is scheduled to be released around July 2021.
+
+Schedule for 1.22
+
+Our next major feature release will be 1.22, and 1.21 will be the
+unstable development version leading up to the stable 1.22 release. The
+development of 1.21/1.22 will happen in the git master branch.
+
+The plan for the 1.22 development cycle is yet to be confirmed, but it
+is hoped that feature freeze will take place some time in December 2021.
+
+1.22 will be backwards-compatible to the stable 1.20, 1.18, 1.16, 1.14,
+1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+
+------------------------------------------------------------------------
+
+These release notes have been prepared by Tim-Philipp Müller with
+contributions from …
+
+License: CC BY-SA 4.0