docs: Gram and nit fixes for part-controller.txt
[platform/upstream/gstreamer.git] / NEWS
1 This is GStreamer 1.2.0
2
3 Changes since 1.0:
4
5 New API:
6  • GstContext negotiation / sharing / announcing for sharing a
7    generic context between elements, e.g. a display handle
8  • GL texture upload conversion meta for allowing different
9    buffer types to be converted to an OpenGL texture
10  • GstCapsFeatures as extension to GstCaps for allowing the
11    negotiation of specific memory or meta requirements between
12    elements
13  • GstMemory flags for contiguous and non-mappable memory
14  • The stream-start event has optional flags now, e.g. for signalling
15    sparse streams
16  • The stream-start even has an optional group-id field now to signal
17    all streams that should be played together
18  • Allocators library in gst-plugins-base, currently only with generic
19    dmabuf memory support
20  • insertbin library for easier handling of dynamically linked
21    pipelines (in -bad for now)
22  • EGL helper library (in -bad for now)
23  • MPEG-TS data structure library (in -bad for now)
24  • New GstVideoRegionOfInterestMeta to describe a region of interest on
25    video frames.
26  • GstVideoDecoder/Encoder has new ::flush() vfunc to replace the
27    ill-defined ::reset() vfunc.
28  • The URI query allows to query the redirected URI now.
29
30 Major changes:
31  • New tool: gst-play-1.0 in gst-plugins-base for basic playback
32    testing on the command line.
33  • New plugins:
34    ∘ mssdemux for Microsoft Smooth Streaming
35    ∘ dashdemux for DASH adaptive streaming protocol
36    ∘ bluez for interaction with Bluetooth devices
37    ∘ openjpeg for JPEG2000 decoding and encoding
38    ∘ daala for experimental Daala decoding and encoding
39    ∘ vpx plugin has experimental VP9 decoding and encoding support
40    ∘ webp plugin for WebP decoding (encoding to be added later)
41    ∘ Various others: yadif, srtp, sbc, fluidsynth, midiparse,
42      mfc, ivtv, accuraterip and audiofxbad
43
44  • Moved plugins:
45    ∘ dtmf, vp8rtp, scaletempo and rtpmux plugins are in
46      gst-plugins-good now
47
48  • Video:
49    ∘ Fix handling of interlaced video in converters such as videoscale
50      and videoconvert (e.g. scale both fields independently)
51    ∘ videoconvert will try harder to minimise quality losses when
52      conversion is necessary
53    ∘ The experimental GstSurfaceConverter, GstSurfaceMeta and
54      GstVideoContext APIs from the (confusingly-named) 
55      libgstbasevideo-1.0 library in gst-plugins-bad have now been
56      removed and been replaced by new APIs in GStreamer Core and
57      gst-plugins-base (see above). Since that was all that was left in
58      this library, the entire experimental libgstbasevideo-1.0 library
59      has been removed from gst-plugins-bad
60    ∘ Chroma subsampling and chroma siting conversion is better handled
61      in videoconvert and the support for interlaced video was improved.
62    ∘ New pinwheel and spoke patterns in videotestsrc
63    ∘ videomixer can now accept different video formats on its sinkpads
64      and converts to a common format during mixing
65
66  • Audio:
67    ∘ audioconvert will try harder to minimise quality losses when
68      conversion is necessary
69    ∘ adder now allows muting/unmuting of its input streams, and also
70      per-input stream volume 
71    ∘ pulseaudio elements can switch between devices during playback now
72    ∘ aacparse can convert between ADTS←→RAW
73
74  • Platform specific changes:
75    ∘ Caps, events, etc. are now printed in the GStreamer debug logs
76      with their content instead of just the pointer address even on
77      non-glibc platforms (e.g. Windows, OSX, Android).
78    ∘ Network elements (UDP/TCP) now work better with platforms,
79      where IPv6 sockets can't handle IPv4 (e.g. Windows)
80    ∘ Linux/BSD: v4l2 had many improvements and cleanups
81
82  • Other changes:
83    ∘ gst-libav now uses libav 9
84    ∘ Static linking of plugins is supported now (also in 1.0.7)
85    ∘ rtspsrc: add support for NetClientClock: when the server suggests a
86      GstNetTimeProvider in the SDP, set up a GstNetClientClock that
87      slaves to the remote clock and suggest this clock in provide_clock.
88      Simplifies synchronized playback of a resource from an RTSP server.
89      gst-rtsp-server now supports adding this to the SDP and can provide
90      a network clock
91    ∘ RTP retransmission / NACK support and big RTP jitterbuffer improvements
92    ∘ SRTP and DTLS support
93    ∘ Changes to many elements and core to use the correct sticky event
94      order and also not lose any important sticky events during flushing
95    ∘ >1000 fixed bug reports, and many other bug fixes and other
96      improvements everywhere that had no bug report
97
98 Things to look out for:
99  • Single header includes for all libraries, e.g. #include
100    <gst/video/video.h> - this was needed for some bindings.
101  • Stricter (correct) caps subset checking in some cases where this was
102    not correct before. Caps will now always fail to be a compatible
103    subset of another set of caps if the subset caps are missing some
104    fields that the superset caps have. This might lead to not-negotiated
105    errors if caps are incomplete now. However, it also prevents possible
106    data corruption caused by piping data formatted in an
107    incompatible/unexpected way into some elements. Check your h264 caps
108    for stream-format and alignment fields and AAC caps for the
109    stream-format field. This change will also be included in the next
110    stable 1.0.8 release.
111  • Stricter checking for missing events and correct sticky event order
112    (stream-start, caps, segment) in some places; this is not enabled in
113    stable releases by default, but you may get warnings when using git
114    builds, development releases or when compiling with
115    -UG_DISABLE_ASSERT in CFLAGS
116  • x264enc now outputs data in byte-stream by default if downstream has
117    ANY caps (e.g. appsink without caps set, filesink, udpsink,
118    tcpserversink etc.)
119  • The MPEG TS demuxer posts messages contain the PMT, PAT, etc. in a
120    different format now. This new format uses the data structures from
121    the new MPEGTS library
122  • The GstContext API has changed between 1.1.4 and 1.1.90
123