2 Release notes for GStreamer Good Plugins 1.5.1
5 The GStreamer team is pleased to announce the first release of the unstable
6 1.5 release series. The 1.5 release series is adding new features on top of
7 the 1.0, 1.2 and 1.4 series and is part of the API and ABI-stable 1.x release
8 series of the GStreamer multimedia framework. The unstable 1.5 release series
9 will lead to the stable 1.6 release series in the next weeks, and newly added
10 API can still change until that point.
13 Binaries for Android, iOS, Mac OS X and Windows will be provided separately
14 during the unstable 1.5 release series.
18 "Such ingratitude. After all the times I've saved your life."
21 A collection of plugins you'd want to have right next to you on the
22 battlefield. Shooting sharp and making no mistakes, these plugins have it
23 all: good looks, good code, and good licensing. Documented and dressed up
24 in tests. If you're looking for a role model to base your own plugin on,
28 If you find a plot hole or a badly lip-synced line of code in them,
29 let us know - it is a matter of honour for us to ensure Blondie doesn't look
30 like he's been walking 100 miles through the desert without water.
33 This module contains a set of plugins that we consider to have good quality
34 code, correct functionality, our preferred license (LGPL for the plugin
35 code, LGPL or LGPL-compatible for the supporting library).
36 We believe distributors can safely ship these plugins.
37 People writing elements should base their code on these elements.
40 Other modules containing plugins are:
44 contains a basic set of well-supported plugins
46 contains a set of well-supported plugins, but might pose problems for
49 contains a set of less supported plugins that haven't passed the
50 rigorous quality testing we expect, or are still missing documentation
53 contains a set of codecs plugins based on libav (formerly gst-ffmpeg)
59 Bugs fixed in this release
61 * 740130 : matroskamux: wrong duration on some files
62 * 699382 : v4l2: dmabuf handling is not complete
63 * 746747 : rtpsession: Also report internal sources in on-new-ssrc and on-ssrc-active
64 * 741783 : qtmux: crash when trying to mux ALAC
65 * 601733 : rtspsrc: Use specific error message when authentication is required
66 * 635701 : rtspsrc: seeking is broken
67 * 678124 : multifilesink: add support for time based file switching
68 * 682770 : v4l2src: should renegotiate
69 * 690646 : ximagesrc: Cursor offset with ximagesrc and xid
70 * 690719 : jackaudiosink: add new property (port-pattern) to specify which jack ports to autoconnect to
71 * 692473 : qtmux: does not store stream specific tags
72 * 708808 : qtmux: Error out when downstream is not seekable and no fast-start
73 * 711764 : osxaudiosrc: Produces broken audio for any sample rate other than 44100Hz
74 * 722567 : wavparse: loops on incorrect wav file
75 * 725335 : rtspsrc: Extract the payload type from sdp framesize attribute
76 * 726415 : rtpjpegpay/-depay: Remove incorrectly introduced framesize SDP attribute
77 * 726416 : rtph263pay/-depay: add framesize SDP attribute
78 * 730417 : rtspt: no timestamp from some rtsp source over tcp
79 * 731038 : playbin downmixes 5.0 multichannel-audio to stereo
80 * 732152 : multiudpsink: use sendmmsg() to send multiple packets to multiple recipients in one go
81 * 732866 : udpsink: client add/remove from app blocked while render function is stuck in g_socket_send_message()
82 * 732870 : jpegenc: add support for encoding from nv21
83 * 733225 : Lockup while using Cheese on 1.3.91
84 * 733444 : wavenc: does not support more than 2 channel
85 * 733539 : rtph264pay: append profile-level-id parameter to SDP if available
86 * 733556 : h264 payloader : append packetization-mode parameter for SDP
87 * 733616 : v4l2object: code cleanup
88 * 733750 : v4l2object: query minimum required buffers for output
89 * 734322 : RTP Jitterbuffer shouldn't force clock-rate on the caps
90 * 734443 : qtdemux: forward DISCONT from upstream to the output streams
91 * 734542 : speexenc: Improve annotation of internal function
92 * 734987 : udp: fix udpsrc documentation
93 * 735085 : y4mencode : port y4m encoder to use GstVideoEncoder base class
94 * 735378 : gstrtpjitterbuffer: requests retransmission periodically when no needed
95 * 735564 : gdkpixbufdec: Error when using gdkpixbufdec with ImageFreeze element
96 * 735581 : imagefreeze: Remove impossible error condition
97 * 735626 : multipartdemux: caps are NULL in pad-added callback (regression)
98 * 735627 : wavenc/wavparse: should support RF64 files
99 * 735795 : imagefreeze: Don't call gst_caps_unref() on NULL caps
100 * 735880 : imagefreeze: replace with gst_buffer_copy
101 * 735950 : gdkpixbufdec: free query after use
102 * 735971 : qtdemux: avdec_mjpeg does not get autoplugged for mjpeg in mov container
103 * 736072 : v4l2: set min_latency for output device according to required minimum number of buffers
104 * 736122 : ximagesrc: setting the screen-num property has no effect
105 * 736133 : v4l2: query crop configuration after each call of S_CROP
106 * 736252 : gdkpixbufdec: packetized mode logic
107 * 736462 : multifile: don't bitwise OR the same flag twice
108 * 736528 : udp: getting compilation error for implicit declaration of memcmp, memset
109 * 736543 : matroska:OR and Bitwise OR of the same flag twice
110 * 736872 : libpng: Removed redundant assignment
111 * 736873 : alpha: Removed unreachable break statements
112 * 736874 : audiofx: Removed unwanted variable
113 * 736875 : audiofx: Removed unwanted buffer_length variable
114 * 736876 : audiofx: Removed unreachable breaks, unwanted variable
115 * 736878 : audioparsers: Added index check before using the index
116 * 736879 : avi: Removed redundant assignment
117 * 736880 : avi: Removed unwanted hdl variable
118 * 736881 : deinterlace: Removed unwanted res variable
119 * 736883 : dtmf: Removed unwanted structure member and assignment
120 * 736884 : flv: Removed unreachable break statements
121 * 736887 : goom: Clarified precedence between % and ?
122 * 736888 : isomp4: Removed unreachable breaks
123 * 736890 : matroska: Removed unwanted instruction
124 * 736892 : rtpmanager: Removed unwanted variable and assignment
125 * 736893 : rtpmanager: Removed unwanted assignment
126 * 736894 : rtpmanager: Removed unwanted assignment in rtpsession
127 * 736897 : videobox: duplicate assignment
128 * 736903 : rtsp: Precedence in expression is not clear
129 * 736986 : qtdemux: handle AAC audio without ESDS atom
130 * 737095 : qtmux: subtitle muxing doesn't work
131 * 737127 : interleave: interleaving does not respect the channel positions default order
132 * 737359 : matroskademux: returns FLOW_FLUSHING when trying to reuse it
133 * 737708 : pngdec: change parse logic
134 * 737868 : rtspsrc: set stream caps on internal src TCP pads
135 * 738013 : v4l2allocator: issue with import_userptr() in single-planar API when n_planes > 1
136 * 738707 : gst-plugins-good fails to build on Mac OS X 10.10 Yosemite due to deprecated NSOpenGLPFAFullScreen
137 * 738838 : videobox: critical error when element properties set as max/min
138 * 739344 : rtpjitterbuffer: ensure rtx_retry_period > = 0
139 * 739366 : imagefreeze: Handle seqnums
140 * 739549 : v4l2bufferpool: fix typos in flags
141 * 739566 : gdkpixbufoverlay: Fix relative-x/y and widen their range to support scolling images in/out of frame with GstController
142 * 739930 : Port server-alsasrc-PCMA.py to version 1.x
143 * 739975 : Seeking through some AAC file freezes my application
144 * 740403 : v4l2object: reuse caps framerate if not overwritten by v4l2 device
145 * 740505 : rtspsrc: segmentation fault when requesting srtp key
146 * 740683 : rtspsrc: add retransmission handling for rtp
147 * 740987 : Fixes to osxaudiosrc and osxaudiosink
148 * 741115 : videomixer segfault when output height is smaller than input height and ypos is negative
149 * 741134 : v4l2: CREATE_BUF support is broken
150 * 741279 : qtmux: generating corrupted file when over 4GB
151 * 741398 : rtpptdemux: errors out on invalid rtp packet, e.g. if the version check failed (0 != 2)
152 * 741993 : souphttpsrc: leaking a buffer during flushing
153 * 742098 : rtp: Fails rtpaux and rtpcollision tests
154 * 742325 : ac3parse: requests minimum frame size that is too small
155 * 742363 : v4l2object: recognize and distinguish all bayer arrangements
156 * 742572 : qtdemux: EOS emitted after 10 seconds on a audio/mp4a file [REGRESSION]
157 * 742661 : qtdemux: EOS in push mode when seeking in m4a
158 * 743013 : v4l2bufferpool: set v4l2_buffer.field when queuing buffer in an output device
159 * 743186 : v4l2object: set colorspace in caps for capture devices
160 * 743407 : qtdemux: doesn't ignore data after last sample in mdat.
161 * 743518 : qtdemux: dead code while calculating segment base ?
162 * 743578 : qtdemux: Parse 'sidx' atom (for duration and indexing in fragmented files)
163 * 743906 : quarktv: doesn't work with planes=0, fix property range accordingly
164 * 744211 : interleave: assertion 'self- > func != NULL' failed
165 * 744461 : pulsesink: Enhance code readability in pulsesink_query
166 * 745192 : matroskademux: V_MS-VFW-FOURCC streams have DTS instead of PTS
167 * 745226 : Vorbis RTP payloader metadata is slightly wrong
168 * 745276 : avidemux: remove not needed code
169 * 745339 : qtdemux: key_unit seek doesn't work
170 * 745441 : v4l2: Detect lossed frame and warn
171 * 745515 : level: infinite loop when interval is set to low values
172 * 745587 : rtp: Add PLI and FIR counters to RTPSource statistics
173 * 745599 : rtsp: tcp transport fails
174 * 745973 : matroskademux: gst_tag_list_insert: assertion 'GST_IS_TAG_LIST (into)' failed
175 * 746065 : level: outputs random values if channels==1
176 * 746242 : matroskaparse: send global tags
177 * 746274 : flvdemux: Less spam from no_more_pads warning
178 * 746390 : qtdemux: crash while playing MPEG DASH stream
179 * 746479 : rtsp: Only two second of playback with rtpsrc and test-mp4 (rtsp-server)
180 * 746543 : rtpsession: Properly implement T_rr_interval and allow sending multiple early feedback packets in a row
181 * 746810 : matroska: fix GValue leak when parsing tags
182 * 746822 : qtdemux: segment query reports wrong values after key-unit seek
183 * 746834 : v4l2sink: driver is not queried for minimum number of buffers when propose_allocation is not called
184 * 747204 : audiofirfilter creates strange noise for smaller filter kernels and even default kernel
185 * 747208 : rtpvp8depay: should have width/height in its caps so it can be fed to muxers
186 * 747358 : rtp: RTPJitterBufferMode enum missing from gtk-doc
187 * 747394 : rtpsession: Track RTX ssrc caps
188 * 747554 : suppressions: silence possible valgrind false positive
189 * 747595 : tests: Add test suite for alpha element
190 * 747597 : smpte: Remove unused fields
191 * 747863 : rtpsession: Use bandwidth calculation by default instead of some arbitrary hardcoded value
192 * 747922 : rtpjitterbuffer/rtxreceive: Don't reset the jitterbuffer if too old RTX packets arrive
193 * 748022 : audiofx: fix typos in example pipelines
194 * 748024 : icydemux: Fix segfault for 0-value metainterval
195 * 748041 : rtpjitterbuffer: Too early requested retransmission for future packets
196 * 748353 : rtspsrc: Leak of RTCP caps
197 * 748436 : rtpjitterbuffer: " stats " property docs
198 * 748584 : matroskademux: fix seek event leak in push mode
199 * 748617 : qtdemux: fix buffer leak on EOS with stop position in push mode
200 * 748627 : rtspsrc: Don't send NACKs and early RTCP in non-feedback profiles
201 * 748909 : jpegdec: fix frame leaks
202 * 749054 : qtdemux: Fix gst-launch pipeline in the documentation
203 * 749072 : flacparse: fix buffer leak
204 * 749122 : vp8enc: vp9enc: target bitrate is not working as expected
205 * 749129 : rtpg726depay: add block_align to output caps
206 * 749163 : po: update POTFILES.in
207 * 749543 : rtpg726depay: fix input buffer memleak
208 * 749544 : rtpg726pay: fix caps leak
209 * 749581 : rtpbasepayload: Try harder to reuse previously configured caps values and give more preference to anything set as properties
210 * 749669 : rtp: fix collection of statistic
211 * 749690 : splitfilesrc: Implement binary search in find_part_for_offset
212 * 749909 : matroska: overwritten value assignment
213 * 750327 : rtpssrcdemux: Add support for reduce size rtcp
214 * 750332 : rtpsession: Add support for reduced size rtcp
215 * 743925 : osxaudiosink won't reconfigure sink caps
216 * 744922 : osxaudiosrc: iOS resampling is stuttering
217 * 728353 : goom2k1: code does nothing, slowly
218 * 748068 : equalizer: not changing settings dynamically
219 * 731352 : flv: Container timestamp is DTS not PTS
220 * 732910 : v4l2src: Dectect and workaround decreasing HW timestamp
221 * 737810 : payloaders: VP8 and Opus payloader should probably suppport Google Chrome encoding-names
222 * 740787 : videocrop: No longer apply the new crop if caps have not changed
223 * 736396 : isomp4: duplicate if else branches in atoms.c
224 * 610364 : udpsrc: allocates buffers with size a lot bigger than needed
225 * 739305 : souphttpsrc: log connection events at info level
226 * 744213 : spectrum: assertion 'len > 0' failed
230 You can find source releases of gst-plugins-good in the download
231 directory: http://gstreamer.freedesktop.org/src/gst-plugins-good/
233 The git repository and details how to clone it can be found at
234 http://cgit.freedesktop.org/gstreamer/gst-plugins-good/
238 The project's website is http://gstreamer.freedesktop.org/
240 ==== Support and Bugs ====
242 We use GNOME's bugzilla for bug reports and feature requests:
243 http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
245 Please submit patches via bugzilla as well.
247 For help and support, please subscribe to and send questions to the
248 gstreamer-devel mailing list (see below for details).
250 There is also a #gstreamer IRC channel on the Freenode IRC network.
254 GStreamer is stored in Git, hosted at git.freedesktop.org, and can be cloned
255 from there (see link above).
257 Interested developers of the core library, plugins, and applications should
258 subscribe to the gstreamer-devel list.
261 Contributors to this release
263 * Aleix Conchillo Flaqué
273 * Branislav Katreniak
278 * Guillaume Desmottes
285 * Jan Alexander Steffens (heftig)
291 * Jose Antonio Santos Cadenas
297 * Luis de Bethencourt
300 * Mathieu Duponchelle
320 * Reynaldo H. Verdejo Pinochet
322 * Santiago Carot-Nemesio
324 * Sebastian Rasmussen
332 * Tobias Modschiedler
337 * Víctor Manuel Jáquez Leal