This is GStreamer Bad Plug-ins 0.10.5, "Expedition to Lake Pahoe"

Changes since 0.10.4:

      * New plugin - realdec for decoding Real streams using binary libs
      * New plugin - MythTV source
      * New plugin - appsrc (for application data insertion)
      * New plugin - VMnc VMware capture decoder
      * New plugin - JACK audio output
      * New plugin - interleave/deinterleave
      * New plugin - RTP manager
      * New plugin - Bayer to RGB converter
      * New plugin - ReplayGain support
      * New plugin - DirectShow win32 input support
      * New plugin - videosignal/videoanalyse
      * LADSPA plugin improvements
      * IIR equaliser ported to 0.10 (iirequalizer)
      * libsndfile output ported to 0.10
      * mpegvideoparse ported to 0.10 and improved
      * switch element ported to 0.10
      * VCD source element ported to 0.10
      * AMR-WB support fixes 
      * MIDI renderer plugin based on timidity
      * Windows and OS/X output plugins moved to the Good module 
      * qtdemux, wavpack and videocrop plugins moved to the Good module
      * Many other bug fixes and improvements
      * Parallel installability with 0.8.x series
      * Threadsafe design and API

Bugs fixed since 0.10.4:

      * 152403 : [mpeg/DVB] Integrating externaly developped DVB source el...
      * 333307 : AmrWB Plugin
      * 345633 : [nassink] port to 0.10
      * 354174 : [PATCH] add REAL support by using the proprietary drivers
      * 354451 : [mythtvsrc] Plugin for MythTV source
      * 357055 : Tremor (ivorbis) plug-in is unable to decode vorbis strea...
      * 374773 : [qtdemux] [PLUGIN-MOVE] Move from -bad to good
      * 375264 : [neonhttpsrc] add seek support
      * 376591 : configure.ac looks for wrong symbols for FAAD support
      * 382184 : Port interleave and deinterleave to 0.10 for audio channe...
      * 388050 : [neonhttpsrc] code simplifications
      * 392112 : [rfbsrc] doesn't build with MinGW
      * 393622 : Not building real plugin, only works on 32bit x86 platforms.
      * 395536 : [wavpackenc] Trivial cleanup
      * 395597 : Deinterleave fails to negotiate with alsasrc when using D...
      * 400555 : dts-in-wav: only 2 channel recognised
      * 402470 : [osxvideosink] video sink for MacOSX
      * 412077 : [speed] can't initially set speed > 1
      * 412710 : [replaygain] Add playback elements
      * 413818 : [neonhttpsrc] errors out on redirects
      * 421110 : New x264enc plugin
      * 421598 : [wavpack] Add support for non-8*n depths and don't play a...
      * 423283 : [qtdemux] timestamps of outgoing h264 packets are wrong
      * 423741 : [amrwb] use external shared libamrwb
      * 430594 : Unable to compile gst-plugins-bad CVS
      * 430598 : [realvideodec] dll functions not available on MinGW
      * 430664 : name conflict for " rtpbin " element
      * 437260 : CFLAGS are poinsoned by the OpenGL test
      * 437403 : gst-plugins-bad uses #ifdef G_OS_WIN32 instead of #ifdef ...
      * 437539 : Compilation of DirectDraw and DirectSound plugins using m...
      * 439405 : YUV not working in GL image sink.
      * 439910 : [switch] Warning in a debug function (Mingw)
      * 439911 : [qtdemux] Warning in a debug function (MinGW)
      * 439914 : [directdraw] Warnings when using MinGW
      * 440466 : [PLUGIN-MOVE] osxvideo
      * 440774 : [sdl] sdlvideosink has ill-formatted element details
      * 442689 : [neon] Property-related cleanups of neonhttpsrc
      * 445189 : PLUGIN-MOVE - Move Windows sinks to -good
      * 348973 : New plugins: MVE muxer/demuxer
      * 391971 : Fix build with gcc-2.x
      * 392313 : [directdrawsink] dist and add to gst-plugins-bad
      * 392638 : [directsoundsink] dist and add to gst-plugins-bad
      * 392856 : [qtdemux] plugin must link against zlib (error with MinGW)
      * 403572 : Port equaliser element to 0.10
      * 352605 : [PLUGIN-MOVE] move wavpack to -good
      * 426972 : Specific set of H.264 files cannot be played
      * 434101 : [gsm] doesn't link against libgstbase-0.10

Changes since 0.10.3:

      * V4L2 source element moved to Good plugins
      * Many improvements in Quicktime playback
      * Xvid encoding and decoding improvements
      * FAAD decoder fixes
      * New element: alsaspdifsink for IEC958 output
      * Spectrum FFT analysis element ported
      * New element: h264parse. H.264 Parser
      * Fixes in bz2 support
      * New element: theoraexpdec. Libtheoraexp based Theora decoder
      * New element: wavpackenc. Wavpack decoder
      * Improvements in the libneon based http source
      * gstfilter ported to 0.10
      * mpeg2enc ported to 0.10
      * New element: nsfdec. NSF decoder
      * New element: spcdec. libopenspc based SPC decoder
      * videocrop ported/re-written from 0.8
      * cdaudio element ported to 0.10
      * New element: rganalysis. ReplayGain analysis element
      * New element: dvbsrc. DVB source element (disabled by default)
      * deinterlace (Simple deinterlacer) ported from 0.8
      * New element: nuvdemux. NUV video demuxer
      * Fixes in the DirectDraw output elements
      * New elements: multifilesrc, multifilesink
      * y4mencode ported from 0.8
      * rfbsrc, librfb based capture source ported from 0.8
      * New element: jackaudiosink. JACK audio output element
      * Many other fixes and improvements

Bugs fixed since 0.10.3:

      * 379261 : crash in Movie Player: Trying to play a partial...
      * 151192 : [PATCH] nsf decoder
      * 124580 : [jacksink] plugin needs a maintainer/love/to be updated
      * 330632 : [qtdemux] MP3 stream in MP4 container not playable
      * 335507 : [FAAD] blur_warhammer.mp4 movie doesn't transcode
      * 339462 : [PATCH] xvid plugin to support more capabilities of XviD ...
      * 340638 : New plugin: h264 parse element
      * 341231 : [qtdemux] [faad] audio in some superman trailers doesn't ...
      * 341461 : gst-plugins-bad missing -no-undefined again
      * 341563 : [faad] fails to decode middle of file, should just skip o...
      * 343031 : v4l2src caps negotion is faulty
      * 343131 : [wavpack] add wavpack encoder
      * 343184 : [mpeg2enc] ported to 0.10
      * 343866 : cygwin fixes
      * 344472 : [wavpackdec] should post audio codec tag and extract bitrate
      * 344821 : [pitch] controllable properties
      * 344944 : AAC Support crashes with some files
      * 345182 : [neonhttpsrc] fails to compile with libneon 0.26.x
      * 345336 : modplug plugin doesn't work on AMD64
      * 345653 : [videocrop] port to 0.10, support all common formats
      * 346853 : [PATCH] ported gstfilter elements to 0.10
      * 347079 : [qtdemux] plugin doesn't decode Year
      * 347443 : [wavpack] port parser/decoder to official API and random ...
      * 347935 : [nsf] warning when building RPM
      * 348220 : New libopenspc-based SPC playback plugin
      * 348976 : [xviddec] crashes after invalid unit size warning
      * 350399 : [qtdemux] extract multiple redirect locations and require...
      * 350741 : [faac] Wrong bitrate set
      * 351495 : [wavpackparse] add support for push-based mode
      * 351557 : [wavpackparse] resync in push mode if sync was lost
      * 357069 : [rganalysis] New element: ReplayGain analysis
      * 357212 : [glimagesink] crashes if no DISPLAY
      * 361260 : New element: nuvdemux
      * 362626 : Fixes compiling with forte: warning clean up (part 5)
      * 376106 : Port rfbsrc to gst 0.10
      * 378613 : [qtdemux] non-working redirect ('alis' redirect reference...
      * 382203 : ladspa element needs to be enabled
      * 384294 : [modplug] returns position query results in attoseconds
      * 385048 : [qtdemux] Crash on a mp4 file in qtdemux_parse_trak
      * 385788 : [SECURITY] buffer overflows in modplug
      * 387076 : [wavpack] Wrong include
      * 387122 : [qtdemux] regression: crash in parse_trak
      * 387160 : [qtdemux] posts buffering message which can cause hangs
      * 351659 : [wavpackparse] fix resync in push mode, implement it in p...
      * 351663 : [wavpackenc] doesn't set correct caps on source pad
      * 352476 : [wavpack] documentation, unit tests, memleak fix
      * 366523 : [directdraw] fix playback and vs8 fixes
      * 369539 : [wavpackenc] More sensible values for GstEnums, don't sen...
      * 384140 : [neonhttpsrc] id3demux autoplug loop streaming mp3 with I...
      * 387137 : Regression: qtdemux paletted image handling
      * 349916 : [gdp] raw audio saved in gdp, when depayloading  complain...
      * 346723 : gstneonhttpsrc fails for URL
      * 347439 : [qtdemux] seeks poorly in files with slideshows
      * 349204 : [gdp] raw audio saved in gdp does not depayload correctly
      * 351825 : [qtdemux] doesn't set proper caps for RGB video
      * 367696 : [qtdemux] No support for QuickTime Animation (RLE).
      * 372243 : [PATCH] yuv4mpeg (v2) encoder ported to 0.10
      * 380610 : [rganalysis] Incorrect event handling
      * 383471 : cannot link 1 ch raw 24-bit PCM audio
      * 344987 : [PATCH] [dvbsrc] [ts-tools] gstreamer 0.10 port

There was no 0.10.2 release

Changes since 0.10.1:

      * FAAD/AAC decoder improvements
      * Better QuickTime support
      * Plugins ported from 0.8: modplug, v4l2src, Musicbrainz TRM
      * New plugins: Xing muxer, libsoundtouch, AMR-WB, theora-exp
      * Musepack decoder improved
      * libneon based http input now supports iradio mode
      * More uniform plugin descriptions
      * Many bug fixes

Bugs fixed since 0.10.1:

      * 334700 : [qtdemux] Memory leaks
      * 333307 : AmrWB Plugin
      * 330317 : New xingmux element  for writing Xing headers
      * 304795 : [ximagesrc] port to 0.9 [PATCH]
      * 154906 : [qtdemux] A/V Synch problem + crackling sound
      * 167129 : [qtdemux] eats last chunk
      * 173007 : [faad] Failed to decode buffer: Channel coupling not yet ...
      * 302606 : [qtdemux] Movie playback too fast (quicktime mov, H.263 c...
      * 321351 : extracted AAC output is played too slow
      * 324082 : [qtdemux] [faad] playback issues with quicktime videos
      * 327075 : [qtdemux] add support for palettized SMC videos
      * 327355 : gst-plugins-bad CVS compilation breaks on gcc 4.1
      * 331335 : New Element: libsoundtouch based pitch shifter
      * 331909 : support for more fourccs in qtdemux
      * 332066 : [qtdemux] doesn't extract Disc Number field from some files
      * 332155 : Seeking problems in .mov files
      * 332402 : quicktime file will not play
      * 332598 : port modplug to 0.10
      * 332892 : [faad] 'Negative scalefactor found' and 'Maximum number o...
      * 333283 : [xviddec] Fix build with gcc 2.95
      * 333501 : [patch] taglib element
      * 334123 : [taglibmux] fixes for TPOS and TCOP
      * 334417 : autogen.sh bit rot
      * 334748 : [faad] doesn't take sampling rate from demuxer
      * 335585 : xvidenc does not mark key-frame/delta-units
      * 336898 : Port musicbrainz/trm plugin to 0.10
      * 337263 : plugins need better/unified descriptions
      * 338233 : theora-exp api out of sync
      * 339041 : qtdemux : Floating point exception
      * 339074 : Thumbnail generation fails on the following file
      * 337436 : Sound is very jerky on this .mov file
      * 338935 : [qtdemux] floating point exception parsing trac header

Changes since 0.10.0:

      * Parallel installability with 0.8.x series
      * Threadsafe design and API
      * Lots of fixes for the QT/MOV demuxer, including restoring 
        the ability to play web streams, and more codecs supported
      * AAC decoder fixes
      * MMS source fixes
      * DirectFB plugin updated
      * New plugins ported to 0.10: swfdec, XVid, dtsdec, glimagesink
      * New libneon based http source filter
      * APE tag reader moved to gst-plugins-good module

Bugs fixed since 0.10.0:

      * 303167 : Add bzip2 support
      * 322973 : [wavpack] erroneous sampling rates range
      * 326524 : Support for Indeo 3-encoded QuickTime files
      * 327133 : [qtdemux] QuickTime with 8-bit audio
      * 328854 : AAC+ stream not working with FAAD plugin
      * 330089 : [bz2] Wrong mimetype and no typefinding
      * 331302 : bz2 plugin source files lack copyright notices
      * 331543 : crash on iTunes MPEG v4 AAC-LC files
      * 331582 : [qtdemux] protect log statement against invalid memory access

Bugs fixed since 0.9.7:
    
      * 322962 : wavpack plugins don't get built

Changes since 0.9.6:

      * wavpack ported
      * libmms ported

Changes since 0.9.5:
    
      * Fractional framerates

Bugs fixed since 0.9.5:
    
      * 320532 : [faac] set output samplerate and number of channels
      * 321903 : [qtdemux] does not know fourcc DX50, as produced by DivX 5

Changes since 0.9.4:
    
      * Parallel installability with 0.8.x series
      * Threadsafe design and API
      * qtdemux supports custom genre tags
      * tremor integer vorbis decoder ported
      * directfb video sink ported (with examples and documentation!)

Bugs fixed since 0.9.4:
    
      * 321241 : faad compile fix

Bugs fixed since 0.9.3:

      * 317438 : [speed] fix 0.9 port
      * 318659 : [faac] problem with float capabilities
      * 318660 : [faac] missing unrefs

Changes since 0.9.1:

      * ported gsm, tta, sdlvideosink
