Release notes for GStreamer Base Plug-ins 0.10.31 "Dance Like It's 1982" The GStreamer team is proud to announce a new release in the 0.10.x stable series of the GStreamer Base Plug-ins. 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. This module contains a set of reference plugins, base classes for other plugins, and helper libraries. This module is kept up-to-date together with the core developments. Element writers should look at the elements in this module as a reference for their development. This module contains elements for, among others: device plugins: x(v)imagesink, alsa, v4lsrc, cdparanoia containers: ogg codecs: vorbis, theora text: textoverlay, subparse sources: audiotestsrc, videotestsrc, gnomevfssrc, giosrc, appsrc network: tcp typefind functions audio processing: audioconvert, adder, audiorate, audioresample, volume visualisation: libvisual video processing: ffmpegcolorspace aggregate elements: uridecodebin, playbin2, decodebin2, decodebin, playbin Other modules containing plug-ins are: gst-plugins-good contains a set of well-supported plug-ins under our preferred license gst-plugins-ugly contains a set of well-supported plug-ins, but might pose problems for distributors gst-plugins-bad contains a set of less supported plug-ins that haven't passed the rigorous quality testing we expect Features of this release * adder: Make sure FLUSH_STOP is always sent after a flushing seek * alsasrc, alsasink: add "card-name" property to get the card name in addition to the device name * appsrc: don't override buffer caps if appsrc caps are NULL; fix element classification * audioclock: add a function to invalidate the clock * audioconvert: optimise remaining conversion code paths with Orc as well * baseaudiosink,baseaudiosrc: post clock-provide and clock-lost messages when going from/to READY to/from PAUSED * baseaudiosink: subtract the render_delay from our latency * decodebin2: don't add non prerolled stream to topology * ffmpegcolorspace: add support for A420 and fix support for 8 bit paletted RGB and IYU1 * gnomevfsrc: set GST_PARAM_MUTABLE_READY flag on the "handle" property * libvisual: add latency query; only drop frames that are really too old * multifdsink: gdp protocol is deprecated. People should use gdppay instead * oggdemux: fix seeking with negative rate with skeleton; fix wrong flowreturn handling * pbutils: AAC profile and level detection utility functions * pbutils: H.264 and MPEG-4 profile and level extraction utility functions * pbutils: new GstDiscoverer utility API for extracting metadata and tags * playbin2, decodebin2: declare stable, deprecate the old playbin/decodebin * playbin2, uridecodebin: add property to configure ring buffer size * rtcpbuffer: add function to manipulation the data in RTCP feedback packets * rtpbuffer: add functions to add RFC 5285 header extensions to GstBufferLists * rtpbuffer: add function to add RTP header extensions with a two bytes header * rtpbuffer: add function to append RFC 5285 one byte header extensions * rtpbuffer: add function to parse RFC 5285 header extensions * rtpbuffer: add function to read RFC 5285 header extensions from GstBufferLists * rtpbuffer: add function to transform a GstBuffer into a GstBufferList * rtsp: improve rtsp timeout calculation and handling * sdp: add methods to convert between uri and message * tags: try ISO-8859-1 as second fallback in case WINDOWS-1252 is not supported * tags: add many more photography/capture tags * tags: EXIF and XMP tag handling improvements * textoverlay: add support for NV12, NV21 and AYUV; configurable text color and position * theoradec: expose telemetry properties only if libtheora was compiled with --enable-telemetry * theoraenc: add support for two-pass encoding; allow change of bitrate and quality on-the-fly * tools: standalone gst-discoverer-0.10 tool for discovering media file properties * typefinding: detect avc1 ftyp as video/quicktime * typefinding: export 3gp profile in caps * typefinding: detect enhanced AC-3 * typefinding: extend AAC typefinder to detect LOAS streams * typefinding: fix ADTS caps stream-format detail * typefinding: more reliable mpeg-ts typefinding * uridecodebin: Only enable progressive downloading if the upstream duration in bytes is known * video: add gst_video_convert_frame*() utility functions * videorate: fixate the pixel-aspect-ratio if necessary * videorate: mark duplicated frames with the GAP flag * videoscale: add support for adding black borders to keep the DAR if necessary ("add-borders" property) * videoscale: Fix caps fixating if the height is fixed but the width isn't * videoscale: only set the PAR if the caps already had a PAR * videoscale: refactor using more Orc code * videotestsrc: new patterns: solid-color, ball, bar and smpte100 * videotestsrc: add "foreground-color" and "background-color" properties, deprecate "colorspec" property * videotestsrc: add support for UYVP format, fix NV21 rendering * volume: use Orc to optimise many code paths * vorbisdec: decode pending buffers upon EOS when doing reverse playback * xoverlay: add set_window_handle() with guintptr argument, deprecate set_xwindow_id() which doesn't work on some platforms * xoverlay: allow render rectangle coordinates to be negative Bugs fixed in this release * 628028 : [uridecodebin] Don't enable progressive downloading for live streams * 623846 : typefinding: add support for " enhanced ac3 " (eac3) * 602437 : [playbin2] [gapless] Completely broken when switching between files with audio/video only * 612264 : Notification needed when the first buffer is pushed by the basertppayloader * 615471 : [videoscale] Interlaced handling makes output worse than no interlaced handling at all * 616392 : videotestsrc colorspec=0/1 does not affect color-matrix in caps * 617314 : pbutils: Add codec-specific utility functions for AAC, H.264, MPEG-4 video * 617506 : [videoscale] Add support for adding black borders if necessary to keep the DAR * 620291 : typefindfunctions: Export 3gp profile in caps * 623663 : [typefinding] mpeg-ts file detected as audio/mpeg * 623807 : [audioclock] Add gst_audio_clock_new_full() with GDestroyNotify for the user_data * 623837 : typefind: only associate .webm with WebM * 623918 : [typefind] Extend AAC typefinder to detect LOAS stream * 624598 : [adder] crash in orc_sse_set_mxcsr() * 624656 : [videoscale] UYVY scaling broken, introduces green lines * 624919 : [videotestsrc] add solid color pattern * 624920 : [textoverlay] configurable text color and position * 624949 : [playbin2] declare playbin2 stable * 625001 : [examples] Don't use GdkDraw/GdkGC * 625118 : [playbin2] Race condition with EOS events in gapless mode * 625944 : [pbutils] GstDiscoverer - API to discover metadata and stream information * 626125 : [alsa] Conditional jump or move depends on uninitialised value(s) * 626570 : [tag] Add resolution tags * 626581 : [playbin2] regression: occasional deadlocks in streamsynchronizer * 626621 : [playbin2] streamsynchronizer regressions * 626629 : [ffmpegcolorspace] doesn't handle palettes any longer * 626718 : playback: Delay usage of GstFactoryList * 627203 : [alsa] alsasrc and alsasink should expose card name via property * 627297 : [regression] build-failure * 627565 : [xoverlay][win64] gulong can't hold a HANDLE * 627768 : add NV12 support to textoverlay * 627780 : GstClockOverlay re-renders string even if it hasn't changed, resulting in very high CPU usage. * 627924 : riff: add support for 2vuy * 628009 : [volume] Float processing with orc broken * 628400 : [videorate] does not generate buffers to fill the duration of the last frame * 628500 : videotestsrc: add moving color bars pattern * 628747 : gst-plugins-base: unable to build because of compiler warning in libggsttag * 629157 : Move video frame conversion from playback plugin to libgstvideo * 629672 : gnomevfsrsrc: " handle " property should also have the GST_PARAM_MUTABLE_READY flag * 629848 : build problem with current gtk+: implicit declaration of function 'gdk_draw_rectangle', GtkStyle' has no member named 'black_gc' * 630303 : theoraenc: Make the bitrate/quality dynamically modifiable * 630353 : [appsrc] Avoid losing buffers' caps * 630440 : ringbuffer: use g_once for type-init * 630443 : baseaudiosink: Add getter and setter for drift tolerance * 630471 : [tag] ligatures " Œ " and " œ " are not supported in freeform strings * 630496 : seek example: add new #define to set seek bar graininess * 630802 : videotestsrc.c doesn't compile in Visual Studio 2008 * 631128 : Add methods to manipulate RFC 5285 header extensions * 631312 : [streamsynchronizer] Advancing segments too much * 631633 : [oggdemux] fix seeking with negative rate with skeleton * 631703 : [oggdemux] sintel ogv delay when playing * 631756 : Fix build with glib 2.21.3 * 631773 : [tags] Add new exif tags: sharpness, metering mode, file/capturing source * 631774 : [xvimagesink] sets non-simple caps on pad_alloced buffer * 632167 : [oggdemux] doesn't parse/push all headers in pull mode * 632653 : [seek] Don't use deprecated combo box API * 632656 : [uridecodebin] internal decodebin2 might fail to reach PLAYING in streaming case * 632789 : [PATCH] tests/icles/: adapted test-colorkey.c and test-xoverlay.c to deprecation of gtk_widget_hide_all * 632809 : [regression] build failure in 0.10.30.2 in tools/ * 632988 : [discoverer] gst_caps_ref() critical for substreams of unknown streams * 633023 : [discoverer] Add versionized gst-discoverer tool * 633203 : Regression: streamsynchroniser + disabled deinterlacing = no DVD menu highlights/subtitles * 633311 : discoverer: use specific types in getters, rename some boolean getters * 633336 : [discoverer] Move documentation into the correct section * 633455 : [rtsp] don't let the rtsp connection timeout * 634014 : GTK+3 is a moving target, lets not compile against it by default. * 634584 : decodebin2 docs should mention that " new-decoded-pad " signal may be emitted after " no-more-pads " * 635067 : [*decodebin*] pad template leaked * 635392 : Missing information on exported packages from GIRs * 621349 : [theoraenc] Implement two-pass encoding * 628488 : [theoradec] add properties to enable telemetry overlay * 629746 : Enumerations have incorrect names of enum values (GEnumValue.value_name) * 626869 : The RTP depayloader is sometimes sending partial frames down the pipeline without the DISCONT bit set API changed in this release - API additions: * gst_audio_clock_invalidate() * gst_audio_clock_new_full() * gst_base_audio_sink_get_drift_tolerance() * gst_base_audio_sink_set_drift_tolerance() * gst_x_overlay_got_window_handle() * gst_x_overlay_set_window_handle() * GstXOverlay::set_window_handle() * gst_codec_utils_aac_caps_set_level_and_profile() * gst_codec_utils_aac_get_level() * gst_codec_utils_aac_get_profile() * gst_codec_utils_aac_get_sample_rate_from_index() * gst_codec_utils_h264_caps_set_level_and_profile() * gst_codec_utils_h264_get_level() * gst_codec_utils_h264_get_profile() * gst_codec_utils_mpeg4video_caps_set_level_and_profile() * gst_codec_utils_mpeg4video_get_level() * gst_codec_utils_mpeg4video_get_profile() * gst_discoverer_audio_info_get_bitrate() * gst_discoverer_audio_info_get_channels() * gst_discoverer_audio_info_get_depth() * gst_discoverer_audio_info_get_max_bitrate() * gst_discoverer_audio_info_get_sample_rate() * gst_discoverer_audio_info_get_type() * gst_discoverer_container_info_get_streams() * gst_discoverer_container_info_get_type() * gst_discoverer_discover_uri() * gst_discoverer_discover_uri_async() * gst_discoverer_get_type() * gst_discoverer_info_copy() * gst_discoverer_info_get_audio_streams() * gst_discoverer_info_get_container_streams() * gst_discoverer_info_get_duration() * gst_discoverer_info_get_misc() * gst_discoverer_info_get_result() * gst_discoverer_info_get_stream_info() * gst_discoverer_info_get_stream_list() * gst_discoverer_info_get_streams() * gst_discoverer_info_get_tags() * gst_discoverer_info_get_type() * gst_discoverer_info_get_uri() * gst_discoverer_info_get_video_streams() * gst_discoverer_new() * gst_discoverer_result_get_type() * gst_discoverer_start() * gst_discoverer_stop() * gst_discoverer_stream_info_get_caps() * gst_discoverer_stream_info_get_misc() * gst_discoverer_stream_info_get_next() * gst_discoverer_stream_info_get_previous() * gst_discoverer_stream_info_get_stream_type_nick() * gst_discoverer_stream_info_get_tags() * gst_discoverer_stream_info_get_type() * gst_discoverer_stream_info_list_free() * gst_discoverer_video_info_get_bitrate() * gst_discoverer_video_info_get_depth() * gst_discoverer_video_info_get_framerate_denom() * gst_discoverer_video_info_get_framerate_num() * gst_discoverer_video_info_get_height() * gst_discoverer_video_info_get_max_bitrate() * gst_discoverer_video_info_get_par_denom() * gst_discoverer_video_info_get_par_num() * gst_discoverer_video_info_get_type() * gst_discoverer_video_info_get_width() * gst_discoverer_video_info_is_image() * gst_discoverer_video_info_is_interlaced() * GST_PLUGINS_BASE_VERSION_MAJOR * GST_PLUGINS_BASE_VERSION_MINOR * GST_PLUGINS_BASE_VERSION_MICRO * GST_PLUGINS_BASE_VERSION_NANO * GST_CHECK_PLUGINS_BASE_VERSION * gst_plugins_base_version() * gst_plugins_base_version_string() * gst_rtcp_packet_fb_get_fci() * gst_rtcp_packet_fb_get_fci_length() * gst_rtcp_packet_fb_set_fci_length() * gst_rtp_buffer_add_extension_onebyte_header() * gst_rtp_buffer_add_extension_twobytes_header() * gst_rtp_buffer_get_extension_onebyte_header() * gst_rtp_buffer_get_extension_twobytes_header() * gst_rtp_buffer_list_add_extension_onebyte_header() * gst_rtp_buffer_list_add_extension_twobytes_header() * gst_rtp_buffer_list_from_buffer() * gst_rtp_buffer_list_get_extension_onebyte_header() * gst_rtp_buffer_list_get_extension_twobytes_header() * gst_sdp_message_as_uri() * gst_sdp_message_parse_uri() * GST_TAG_CAPTURING_SOURCE * GST_TAG_CAPTURING_METERING_MODE * GST_TAG_CAPTURING_SHARPNESS * GST_TAG_IMAGE_HORIZONTAL_PPI * GST_TAG_IMAGE_VERTICAL_PPI * GST_TAG_CAPTURING_FLASH_FIRED * GST_TAG_CAPTURING_FLASH_MODE * GST_TAG_CAPTURING_EXPOSURE_PROGRAM * GST_TAG_CAPTURING_EXPOSURE_MODE * GST_TAG_CAPTURING_SCENE_CAPTURE_TYPE * GST_TAG_CAPTURING_GAIN_ADJUSTMENT * GST_TAG_CAPTURING_WHITE_BALANCE * GST_TAG_CAPTURING_CONTRAST * GST_TAG_CAPTURING_SATURATION * GST_TAG_CAPTURING_SHUTTER_SPEED * GST_TAG_CAPTURING_FOCAL_RATIO * GST_TAG_CAPTURING_FOCAL_LENGTH * GST_TAG_CAPTURING_DIGITAL_ZOOM_RATIO * GST_TAG_CAPTURING_ISO_SPEED * GST_VIDEO_FORMAT_UYVP * GST_VIDEO_FORMAT_A420 * gst_video_convert_frame() * gst_video_convert_frame_async() * GstTextOverlay:xpos * GstTextOverlay:ypos * GstTextOverlay:color * GstVideoTestSrc:solid-color * GstVideoTestSrc::foreground-color * GstVideoTestSrc::background-color - API deprecations: * gst_x_overlay_set_xwindow_id() * gst_x_overlay_got_xwindow_id() * GstXOverlay::set_xwindow_id() Download You can find source releases of gst-plugins-base in the download directory: http://gstreamer.freedesktop.org/src/gst-plugins-base/ GStreamer Homepage More details can be found on the project's website: http://gstreamer.freedesktop.org/ Support and Bugs We use GNOME's bugzilla for bug reports and feature requests: http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer Developers GStreamer is stored in Git, hosted at git.freedesktop.org, and can be cloned from there. Interested developers of the core library, plug-ins, and applications should subscribe to the gstreamer-devel list. If there is sufficient interest we will create more lists as necessary. Applications Contributors to this release * Alessandro Decina * Alexey Fisher * American Dynamics * Andrzej K. Haczewski * Arun Raghavan * Chris Shoemaker * David Schleef * Edward Hervey * Evan Nemerson * Guillaume Emont * Harri Mähönen * Havard Graff * Jan Schmidt * Leo Singer * Mark Nauwelaerts * Matthias Clasen * Olivier Crête * Parthasarathi Susarla * Philip Jägenstedt * Philippe Normand * René Stadler * Rob Clark * Robert Swain * Sebastian Dröge * Sreerenj Balachandran * Stefan Kost * Thiago Santos * Thijs Vermeir * Tim-Philipp Müller * Tristan Matthews * Vincent Penquerc'h * Vladimir * Wim Taymans * Zaheer Abbas Merali