diff options
Diffstat (limited to 'RELEASE')
-rw-r--r-- | RELEASE | 255 |
1 files changed, 192 insertions, 63 deletions
@@ -1,5 +1,5 @@ -Release notes for GStreamer 0.10.32 "Take Me to the Bonus Level" +Release notes for GStreamer 0.10.33 "Prior Spaceflight Experience is an Advantage" @@ -9,6 +9,12 @@ core of the GStreamer streaming media framework. The 0.10.x series is a stable series targeted at end users. +It is not API or ABI compatible with the stable 0.8.x series. +It is, however, parallel installable with the 0.8.x series. + + +The 0.10.x series has been reworked for threadsafety. It also features +various feature additions and enhancements. This module, gstreamer, only contains core functionality. @@ -31,64 +37,160 @@ contains a set of less supported plug-ins that haven't passed the Features of this release - * GLib requirement is now >= 2.22 - * New core element: valve (moved from -bad) - * New core element: input-selector (N.B. without "select-all" property, use fsfunnel instead) (moved from -bad) - * New core element: output-selector (with different negotiation behaviour by default, set pad-negotiation-mode=active for previous behaviour) (moved from -bad) - * Performance improvements for many heavily-used code paths: GstPad, GstPoll, GstClock, GstTask, basesink, basesrc, queue2, multiqueue - * gobject-introspection: add annotations for most core API - * clock: make sync clock wait lockfree - * fdsrc/fdsink: reenable on MSVC - * registry: fix GStatBuf definition for win32 when building against older glib (fixes unnecessary rescanning of plugins at start-up) - * element: add a more flexible way to get request pads from elements - * multiqueue: return upon input when already eos - * object: fix creation of default name (when creating more than 100000 elements) - * pluginloader: fix hangs on OSX - * poll: fixes for (p)select backend (used e.g. on OSX) - * poll: refactor and make more lockfree; fixes for win32 and OSX (pselect backend) - * registry: don't replace valid existing plugins by blacklisted ones - * tags: don't produce duplicated entries when merging same value twice - * basesink: preroll fixes for async=false case - * basesink: rework position reporting code - * basetransform: handle downstream giving a buffer with new caps but invalid size + * atomicqueue: add an atomic/lock-free queue structure based + * bufferlist: improve _add*() performance + * bus: in _add_watch() honour any per-thread default main context set via g_main_thread_push_thread_default() + * caps: new gst_caps_intersect_full() to intersect in different modes + * clock: add functions to re-init existing periodic GstClockIDs + * event: add QoS type (overflow, underflow, throttle) for QoS events + * ghostpad: The internally linked pad of the proxypad is the ghostpad + * gstpoll: retry reading the control socket to release properly all wakeups + * message: new progress message API for asynchronous operations + * pad: unlock before freeing the pad cache to avoid deadlock + * pad: better handling for when parent goes away during data/query/event flow + * parse-launch: allow element names to begin with digits + * pluginloader: call gst-plugin-scanner with the right arch on OSX, fixing hangs with firefox + * registry: fixes elements (features) disappearing if a plugin or plugin file is renamed + * structure: Add "(date)" as a type abbreviation of GDate + * structure: Don't allow invalid GDates in all structures and don't allow NULL GDates in taglists + * taglist: add a new "encoded-by" tag + * uri: add gst_filename_to_uri() that takes relative filenames + * utils: add gst_element_factory_can_{src|sink}_{any|all}_caps() to replace can_{sink,src}_caps() + * baseparse: new GstBaseParse class for parsers + * basesink: improve rate, duration, and average duration calculation + * basesink: use new QoS types and add add "throttle-time" property + * basesrc: Handle tag and custom downstream events the same + * basesrc: keep downstream caps order when fixating, to honour downstream preferences when negotiating + * basesrc: Return FALSE if we don't handle an event + * basesrc: Send synchronized custom downstream/both events downstream from the streaming thread + * basetransform: Be smarter with pad allocs + * basetransform: Check for pad alloc caps when suggestion is not fixed + * basetransform: Retain caps order when getting caps, to honour downstream preferences when negotiating + * funnel: new N-to-1 pipe fitting element imported from farsight + * fakesink: print buffer flags + * filesink: Fix escaping of URIs + * file{sink,src}: Check if non-URI characters are escaped, but only for the URI not the location property + * filesrc, filesink: fix URI creation regression for non-absolute locations + * filesrc: Fix escaping of file uris + * inputselector: Hold the selector lock while reading properties of the active pad + * inputselector: Make sure that EOS is always sent downstream for the active pad + * inputselector: Return GST_FLOW_OK until the selected pad pushed something downstream + * inputselector: Stop waiting for a pad switch when the pad is flushing + * multiqueue: fix some potential corner-case deadlocks and some leaks + * multiqueue: handle arbitrary sink + source pad naming + * queue2: don't read beyond the end of file upstream in pull mode; leak fixes + * plugins: make query and event functions more thread-safe, protect against parent-pad disappearing + * gst-launch: add GstIndex support Bugs fixed in this release - * 635785 : basesrc: fix deadlock - * 638599 : GST_PTR_FORMAT causes crashes if GLib-internal printf is used but system provides register_printf_specifier - * 503592 : gstpad.c does many ref/unref of peer pad in dataflow - * 564056 : Protect against umask(0177) - * 607513 : input-selector segfaults in g_object_notify() - * 632168 : [gsttask] MSVC thread names for task debugging - * 632447 : reduce static memory allocated by the registry - * 632557 : [macros] Define restrict keyword if not available - * 632778 : Optimisations to GstBaseSink - * 632779 : gstdataqueue: Only emit g_cond_signal when needed - * 632780 : queue: Remove useless checks from e406f7 - * 633918 : [fakesink] [PATCH] print sink-message events like a message and its structure - * 634965 : sinks render buffers in state PAUSED when async is FALSE - * 635001 : basesink: fix position reporting in PAUSED - * 636268 : configure test fails on FreeBSD - * 636455 : basesrc: Avoid taking object locks for just checking tag presence - * 637057 : [plugin-scanner] gstpoll fails with select backend - * 637300 : [API] request pad based on caps - * 637549 : build fails: ./.libs/libgstbase-0.10.so: undefined reference to `gst_clock_single_shot_id_reinit' - * 637776 : merging the same tag values again produces lists containing duplicates - * 638381 : {input,output}-selector: double-check API before release - * 638399 : a few typos in GStreamer - * 638900 : [GstPoll] Doesn't compile with MinGW - * 638941 : registry scan/loading race and inconsistency + * 642356 : [Index] review api and add an example + * 402141 : gst_element_factory_can_{sink,src}_caps seems to be broken + * 518857 : [API] GstBaseParse: new base class for parsers + * 604094 : registry: do not remove features when removing a cached plugin that no longer is present + * 615357 : [macosx] Handle multi-arch plugin-scanner + * 617045 : [caps] New method for intersecting caps while retaining order + * 639674 : parse-launch: improve parsing resilience (for escapes at end of string) + * 639962 : design docs: Fix a few typos and a think + * 640071 : pluginloader: do not leak the description string of blacklisted plugin + * 640437 : design docs: fix 2 typos in part-MT-refcounting + * 640502 : fix a few typos + * 640622 : gst_element_link_pads_full function return wrong error information + * 640675 : high cpu-load with 0.10.32 release + * 640850 : GstElement: Fix warning with GCC 4.6 + * 641212 : gst-uninstalled: use $GST_PREFIX variable + * 641928 : gst_pad_push fast path races with pad deactivation + * 642071 : Incorrect comparing of number of source and sink links when parsing a launch string + * 642130 : [basetransform] Check for pad alloc caps when suggestion is not fixed + * 642271 : crash in gst_caps_structure_intersect, encoder_match_media_type + * 642373 : [basetransform] Avoid too may pad allocs + * 642393 : [filesrc] Fails setting the same uri it's setting in the uri queries. + * 642504 : [mingw/cygwin build] correctly export plugin description + * 642522 : gstvalue.c does not include a deserialize function for uchar + * 642869 : gst_index_new: documentation typo + * 643301 : Adding a buffer to a buffer list iterates the list + * 643455 : [regression] Lots of dropouts in Empathy voip calls + * 644935 : [inputselector] During switching of streams it can happen that all pads returned not-linked last + * 645022 : GstTask: typo in GST_TASK_BROADCAST - g_cond_breadcast should probably be g_cond_broadcast + * 645267 : build: fix build with -Werror with GCC 4.6.0 + * 645595 : bytereader, bytewriter: fix warnings when using inline functions with g++ + * 645746 : [gstpoll] Regression causes 100% cpu usage in multifdsink + * 645877 : commit 14d7db1 causes cpu spinning and other bus weirdness + * 645931 : [gstmultiqueue] fix arbitrary sink + source pad naming + * 646118 : [gstmultiqueue] if arbitrary sink number is specified by caller, use this as single queue id + * 646341 : [baseparse] Add a queued flow return so parsers can keep frames in a queue + * 646531 : GST_BOILERPLATE: don't use " type " as both a variable name and a macro argument + * 646566 : Protect against Pad-Parent disappearing + * 646569 : poll: don't call WSAWaitForMultipleEvents with no events + * 646624 : GstBin: regression: creating too many bins fails, exhausting allowed file descriptor limit + * 646811 : baseparse: deadlock in gst_base_parse_set_index + * 646971 : iterator: resync to avoid infinite loop + * 647005 : GstBus: Only create the socketpair for async message delivery if required + * 647131 : recent multiqueue changes break DVD playback (again) + * 647293 : Fix pad callbacks so they handle when parent goes away + * 647763 : [bus] Bus is leaked if a watch is installed in the default main context + * 647844 : baseparse: Remove unused but set variable + * 647922 : [introspection] Needs to call gst_init() before anything else + * 648199 : pad: potential deadlock / crash when freeing cache + * 648215 : basetransform: unref in wrong place + * 648220 : Regression: videoscale fails to negotiate for PAR transformation + * 648297 : [bus] regression: critical assertion failure + * 649195 : [miniobject] Fix dup_mini_object function to handle NULL gvalues + * 635718 : [basesrc] custom, non-OOB events aren't pushed downstream + * 625396 : gst_debug_remove_log_function doesn't remove default log handler + * 640771 : amarok doesn't start with new phonon gstreamer + * 646972 : queue2: Fixes memory leak on out_flushing error in gst_queue2_create_read + * 640665 : basesink: drops too many buffers when there's no duration API changed in this release - API additions: - * gst_clock_single_shot_id_reinit() - * gst_element_request_pad() - * GstElementClass::request_new_pad_full() - * gst_poll_get_read_gpollfd() - * gst_value_list_merge() - * GST_CLOCK_DONE + * gst_atomic_queue_length() + * gst_atomic_queue_new() + * gst_atomic_queue_peek() + * gst_atomic_queue_pop() + * gst_atomic_queue_push() + * gst_atomic_queue_ref() + * gst_atomic_queue_unref() + * gst_buffer_list_iterator_get_type() + * gst_caps_intersect_full() + * gst_caps_intersect_mode_get_type() + * gst_clock_periodic_id_reinit() + * gst_element_factory_can_sink_all_caps() + * gst_element_factory_can_sink_any_caps() + * gst_element_factory_can_src_all_caps() + * gst_element_factory_can_src_any_caps() + * gst_event_new_qos_full() + * gst_event_parse_qos_full() + * gst_filename_to_uri() + * gst_message_new_progress() + * gst_message_parse_progress() + * gst_parse_context_get_type() + * gst_progress_type_get_type() + * gst_qos_type_get_type() + * GST_TAG_ENCODED_BY + * gst_base_parse_add_index_entry() + * gst_base_parse_convert_default() + * gst_base_parse_frame_free() + * gst_base_parse_frame_get_type() + * gst_base_parse_frame_init() + * gst_base_parse_frame_new() + * gst_base_parse_get_type() + * gst_base_parse_push_frame() + * gst_base_parse_set_average_bitrate() + * gst_base_parse_set_duration() + * gst_base_parse_set_frame_rate() + * gst_base_parse_set_has_timing_info() + * gst_base_parse_set_min_frame_size() + * gst_base_parse_set_passthrough() + * gst_base_parse_set_syncable() + * gst_base_sink_get_throttle_time() + * gst_base_sink_set_throttle_time() +- API deprecations: + + * gst_element_factory_can_src_caps() + * gst_element_factory_can_sink_caps() Download @@ -113,31 +215,58 @@ subscribe to the gstreamer-devel list. If there is sufficient interest we will create more lists as necessary. +Applications + +Applications ported to GStreamer 0.10 include Totem, RhythmBox, Sound-Juicer, +Gnome Media, Flumotion, Amarok, Jamboree, Pitivi, Istanbul, AnnoAmp, Elisa, and others. +Let us know if you want to be added to this list. + + Contributors to this release + * Alessandro Decina * Andoni Morales Alastruey - * Benjamin Gaignard - * Benjamin Otte - * David Hoyt + * Andreas Frisch + * Arun Raghavan + * Bastien Nocera + * Cai Yuanqing + * Chen Rui + * Daniel Macks * David Schleef * Edward Hervey + * Fraxinas * Havard Graff + * Idar Tollefsen * Jan Schmidt - * Kipp Cannon - * Koop Mast - * Lasse Laukkanen + * Janne Grunau + * Jason D. Clinton + * Jonas Holmberg + * Jonathan Matthew + * Josep Torra + * Joshua M. Doe + * Julien Moutte + * Luis de Bethencourt * Mark Nauwelaerts + * Mart Raudsepp * Michael Smith - * Olivier Crete + * Miguel Angel Cabrera Moya + * Ole André Vadla Ravnås * Olivier Crête - * Raimo Järvi + * Peter Collingbourne + * Philip Jägenstedt + * René Stadler + * Robert Swain * Sebastian Dröge + * Sreerenj Balachandran * Stefan Kost + * Stian Selnes * Thiago Santos + * Thijs Vermeir + * Thomas Kristensen * Tim-Philipp Müller - * Tommi Myöhänen + * Vincent Penquerc'h * Wim Taymans + * Yang Xichuan + * Zaheer Abbas Merali * Zhang Wanming - * Christian Schaller - * Sjoerd Simons - +
\ No newline at end of file |