This is GStreamer Good Plug-ins 0.10.17, "They used to sparkle"

Changes since 0.10.16:
    
      * RTP improvements
      * Support automatic cropping in videobox
      * Add TTL multicast UDP property
      * AVI demux push mode fixes and performance improvements
      * Support large and unusual chunks sizes in wav
      * Quicktime demuxer improvements
      * JPEG decode fixes and speedups
      * Support interlaced Y4M file output
      * DV demuxer improvements
      * Pulseaudio fixes and improvements
      * Support Pulseaudio PLAY/PAUSE requests
      * speexdec improvements
      * FLV demuxer improvements
      * Fix audio noise in the Equalizer plugin, and other improvements
      * Fix compilation on OS/X Snow Leopard
      * AVI muxer fixes
      * Support MPEG V4L2 devices and improve timestamping
      * Better jpeg2k support
      * Many other bug fixes and improvements

Bugs fixed since 0.10.16:
     
      * 597848 : " Media Player Classic " won't play certain files produced by avimux.
      * 588245 : TTL is never applied with udpsink/udpmultisink
      * 368681 : avimux + vbr lame  always out of sync
      * 458629 : [avidemux] high memory usage for many index entries
      * 561825 : Problem with RTCP thread using freed objects
      * 581334 : [qtdemux]  Add support for embedded subtitles
      * 582238 : [videobox] Add support for autocrop to caps
      * 590362 : [v4l2src] x264enc ! qtmux fails because of missing frame duration
      * 591713 : [y4menc] interlaced support
      * 593354 : rtpjitterbuffer sometimes outputs packets with timestamps in the past
      * 593391 : [rtpsession] : rtp_session_on_timeout : Invalid read of size 4
      * 593688 : effectv can no longer be compiled with gcc 3
      * 593757 : [qtdemux] Lack of support for QualComm PureVoice
      * 593764 : [v4l2src] format ordering: put emulated formats behind native formats
      * 593955 : rtpjitterbuffer: clock_rate can change between its check and its use
      * 594039 : missing unref in rtpsource / leak
      * 594133 : [rtspsrc] leaks authentication info
      * 594247 : missing math.h include in rtpjpegdepay
      * 594248 : Use locked-state on internal rtp-bin to avoid shutdown-state-race
      * 594251 : Avoid throwing out reordered packets with the same timestamp
      * 594253 : jitterbuf: Only post a warning of clock-rate changed if it is changed from something initialized
      * 594254 : propagate the pt-type-changed signal
      * 594283 : rtpbin: make free_session() remove dangling stream references
      * 594298 : Check if libsoup has SSL support before running HTTPS test in souphttpsrc testsuite
      * 594490 : gstrtpbin always uses pt to demux
      * 594520 : multipartmux: mark data buffer as delta-unit
      * 594599 : videobox: converts AYUV to I420 incorrectly
      * 594663 : Patch for multifilesink
      * 594691 : rtph263pay: leak
      * 595029 : pulse elements fail to connect to pulse 0.9.9
      * 595220 : gstreamer crashes on pulseaudio latency change
      * 595231 : [pulsesink] Lowers volume after every new track
      * 595888 : qtdemux plugin should not return value from void function
      * 595897 : Problem linking videomixer
      * 595942 : [qtdemux] issue with corrupted 3gp file
      * 596319 : [qtdemux] fails to parse pixel aspect ratio data
      * 597091 : [flvdemux] not outputting no-more-pads causes playbin2 to fail badly on streamed single-stream flv
      * 597214 : [avidemux] Fix printf formats to avoid warnings in avidemux
      * 597348 : [qtdemux] Cast variables passed to printf to avoid warnings about incorrect formats
      * 597351 : [jpegdec] segfaults on a specific picture
      * 597397 : equalizer is non deterministic
      * 597463 : [pulsesrc] has no lower bound for fragment size
      * 597601 : [pulsesink] needs to take control of minreq value
      * 597730 : osssrc rank should be secondary, just like osssink
      * 597847 : Windows Media Player won't play large files produced by avimux
      * 597867 : Plugins good do not build on Ubuntu Hardy (kernel 2.6.24)
      * 598377 : rtpmanager: only forward the lost event to the last seen payloadnumber
      * 598517 : [jpegdec] Regression supporting 4:2:2 jpeg videos
      * 598810 : wavenc: Fix buffer offset by moving length incrementation
      * 598933 : [pulse] Fix the StreamVolume interface not being advertised
      * 601381 : v4l2: Make sure to initialize variables before using them

Changes since 0.10.15:

      * Moved rtpmanager from -bad to -good
      * Implement SEEKING query in more demuxers and decoders (notably mkv, flv, flac)
      * avimux: adds support to WMA/WMV
      * cairo: Add cairo-based PDF/PS/SVG encoder element (cairorender)
      * dv1394src: fix element for live usage
      * effectv: new elements: rippletv, streaktv, radioactv, optv
      * flacdec: fix intermittent FLAC__STREAM_DECODER_ABORTED errors when seeking
      * flacenc: fix issue with broken duration / sample count into flac header in some cases
      * flvmux: lots of fixes and improvements
      * id3demux: fix parsing of unsync'ed ID3 v2.4 tags and frames
      * matroska: add kate subtitle support, add/improve WMA/WMV handling and read bluray PGS subpicture streams
      * multipartdemux: support more mime types, do proper flow aggregation
      * pulsesrc: cleanups, report real latency, set the default slave method to skew
      * qtdemux: support for agsm, misc. tag reading fixes
      * rtp: new QDM2 and CELT depayloaders; fix SVQ3 depayloader and make it autopluggable
      * souphttpsrc: Only assume seekability if the server provides Content-Length
      * v4l2: add v4l2sink element, open device in NULL->READY, optional gudev support
      * v4l2src: fix 'hang' with some cameras caused by bad timestamping if no framerate is available
      * videomixer: add RGB format support; fix I420 blending

Bugs fixed since 0.10.15:

      * 331420 : No PDF/PostScript/SVG encoder in GStreamer yet.
      * 499242 : [patch] workaround the broken tags encoding for mp3 files
      * 521625 : [plugin-move] move rtpmanager from -bad to -good
      * 560033 : [v4l2src] returns caps with a range where max == min
      * 564100 : [avidemux] premature EOS streaming mjpeg file with JUNK tags
      * 564501 : [rtph264pay] bytestream scan mode operation is not reliable
      * 567983 : [avidemux] SAMPLE.AVI fails to play in push mode
      * 577017 : Videomixer blend bgra and ayuv
      * 577318 : rtspsrc appears to be leaking memory
      * 578052 : gstavidemux: support seeking and duration query in default format
      * 578166 : libgstwaveform, gstwaveformsink.c " BYTE " instead of " byte " 
      * 578612 : [flacdec] seek on flac file sometimes triggers flac decoder ABORT
      * 580214 : Equalizer starts distorting the sound after a while.
      * 580732 : AVIMUX needs mappings for Windows Media codecs
      * 582153 : rtpmp4vpay does not payload mp4v stream depayloaded with rtpmp4vdepay
      * 582169 : [multipartdemux] Segmentation fault on empty content
      * 582462 : souphttpsrc should set caps for " audio/L16 " mime_type
      * 583593 : Updates for SunAudio plugin
      * 583640 : [v4lsrc/v4l2src] add support for better device detection with libgudev
      * 584455 : [flacenc] sometimes writes broken flac files
      * 584613 : rtpvrawpay seems to produce fixed-length packets padded with random data
      * 585205 : [rtpmp4gdepay?] Unable to play audio from one specific radio station stream
      * 585361 : [gstwaveformsink.c]  'byte' is not defined in MSVCRT
      * 585559 : buffer-list support for rtph264pay, rtpjpegpay and rtpmp4vpay
      * 585576 : [souphttpsrc] initially reports all servers as seekable
      * 585630 : [PATCH] Don't try to test flacdec if it's not build
      * 585699 : GNOME Goal: Remove deprecated glib symbols
      * 585757 : Remove deprecated GTK+ symbols from unused code
      * 585828 : audioamplify should support more formats
      * 585831 : audioamplify should support no clipping
      * 586397 : gstudpnetutils.h fails to build on FreeBSD
      * 587426 : non fast-start mov files fail to play from http locations
      * 587680 : rtp/ts does not repackage cleanly to rtp; mpegvideoparse/rtpmpvpay: timing issues
      * 587826 : gstavidemux.c: s/GST_DISABLE_DEBUG/GST_DISABLE_GST_DEBUG
      * 587982 : [udp] uninitialized variable in gst_udp_get_addr function
      * 587983 : [avidemux] assert format failed
      * 588148 : [id3demux] APIC tag not found mp3 file
      * 588349 : [effectv] Add new optv effect filter
      * 588359 : [effectv] Add radioactv effect filter
      * 588368 : [effectv] Add streaktv effect filter
      * 588483 : [flacenc] write padding metadata block
      * 588695 : [effectv] Add rippletv effect filter
      * 588777 : [souphttpsrc] don't try to authenticate if no username/password is set
      * 589056 : [qtdemux] no audio in videos from Aiptek camera
      * 589365 : [pulsesink] pa_stream_get_sink_input_info() failed: Invalid argument
      * 589423 : [flacdec] Implement SEEKING query
      * 589424 : [flvdemux] Implement SEEKING query
      * 589459 : [pulsesink] Fix a couple error messages that mentioned incorrect function names.
      * 590038 : pulsesink: pa_timing_info- > configured_sink_usec requires pulse 0.9.11
      * 590280 : [v4l2] add v4l2sink
      * 590401 : GstPulseSrc's pulse probe is not initialized correctly
      * 590447 : [flvmux] crashes when writing index with < = 128 entries
      * 590970 : [souphttpsrc] better fix for compiler warning fix
      * 591451 : [v4l2] causes hanging stream when VIDIOC_G_PARM is not supported
      * 591476 : Possible leak in rtpbin
      * 591712 : [dvdec] sets top field first not bottom field first on pal interlaced content
      * 591747 : [v4l2src] should clear formats list when it closes the device
      * 591951 : pipelines/simple-launch-lines check segfaults with libjpeg 7
      * 592232 : [qtdemux] QT style string tag extraction fails
      * 592530 : Get only glitches and noise trying to play a gsm file
      * 593015 : pa_stream_flush() seems to cause sync issues
      * 585911 : matroskademux seems to leak large amounts of memory when seeking (skipping)
      * 576378 : [matroskamux] add support for WMA2 and WMV2
      * 564437 : rtpjpegdepay was unable to handle frame dimensions greater than 2040
      * 582515 : Quicktime file with PCM audio does not play correctly
      * 583048 : [patch] jpegdec: support for larger pictures
      * 583371 : pulsesink: Print message on underflows
      * 583803 : pngdec: mismatched g_malloc/free
      * 584981 : Gstreamer wavparse Could not demultiplex stream
      * 585056 : regression: no more sound in my H.264+AAC clips
      * 585549 : Add RTP blocksize functionality to rtspsrc element
      * 585842 : Support for GstBufferList in gstmultiudpsink


Changes since 0.10.14:
    
      * Some fixes for seeking in wav and FLAC files
      * Faster seeking in Matroska and AVI files
      * RTSP and RTP improvements
      * directdrawsink moved to Bad
      * y4menc and flvmux/flvdemux moved from Bad
      * deinterlace2 moved from Bad, replacing deinterlace
      * Many bug fixes and improvements
      * Pulseaudio sink completely overhauled

Bugs fixed since 0.10.14:
     
      * 572551 : mpeg4videoparse fails to extract codec_data from this net...
      * 577318 : rtspsrc appears to be leaking memory
      * 576286 : [videomixer] Should accept/output non-alpha streams
      * 581333 : rtspsrc: request_pt_map in gstrtspsrc.c fails to return c...
      * 478092 : gstid3v2mux.cc:deprecated conversion from string constant...
      * 486915 : [videomixer] segmentation fault on gst-inspect
      * 509311 : [rtph263pay] rtph263pay does not follow rfc2190
      * 516031 : flac within ogg container can't be played on Jokosher
      * 537537 : [pulse] Latency issues
      * 537609 : RTSP - rtspsrc module  support for Scale header
      * 552650 : [rtspsrc] (partially) fails SETUP with MS RTSP servers
      * 562168 : Good plugins' configury overloads --disable-debug
      * 563574 : v4l2src should capture in non-blocking mode
      * 567140 : G726 Packetizer issue for 24kbps & 40 kbps datarate
      * 567857 : [udpsrc] loop on gst_poll_wait when POLLERR because of icmp
      * 570781 : [alawdec] spews ERROR debug messages on shutdown/seek/not...
      * 571153 : [pulsemixer] compiler warnings (on ARM)
      * 571321 : gconfvideo{src,sink} don't disconnect gconf notifications
      * 572256 : gst/avi/gstavidemux.c: Alignment trap in gst_avi_demux_pa...
      * 572358 : law encoders _getcaps ignore rate/channel if not both are...
      * 572413 : [jpegenc] crashes if no input format has been set
      * 573173 : Added Quicktime HTTP tunneling to the RTSP src element
      * 573342 : Unconditioned EAFNOSUPPORT in gstudpnetutils.c
      * 573343 : Type mismatches in gstdirectdrawsink.c
      * 573721 : [PLUGIN-MOVE] move directdrawsink back to -bad
      * 573737 : [PLUGIN-MOVE] Move FLV to -good
      * 574270 : [rtspsrc] Range request is wrong (should say: npt=now-)
      * 574275 : flacdec ! appsink with a seek seems to drop the first buffer
      * 577468 : [id3demux] Frames not extracted if tag is unsynchronised
      * 577609 : [id3v2mux] write RVA2 frames for peak/gain volume data
      * 577671 : [rtspsrc] deadlock on shutdown (locking order problem?)
      * 578052 : gstavidemux: support seeking and duration query in defaul...
      * 578135 : [qtdemux] missing 3gpp Asset metadata handling
      * 578310 : [matroskamux] - Should suppport speex
      * 579070 : [sunaudio] fix compiler warnings
      * 579422 : flacdec can block allocating before it sent a new-segment
      * 579808 : [jpegdec] Doesn't support additional 0xff before end marker
      * 580746 : [qtdemux] 3GPP classification entity byte order reversed
      * 580783 : [PLUGIN-MOVE] Move y4menc to -good
      * 580851 : rtspsrc: various; sanity of ranges, setting of base_time ...
      * 580880 : gstrtpjpegpay is not functioning properly; rtp jpeg paylo...
      * 581329 : rtspsrc: NAT dummy packets not being sent
      * 581568 : ability for replaygain plugin to post level messages
      * 581806 : [souphttpsrc] Should allow overriding the referer
      * 581884 : [PLUGIN-MOVE] Move deinterlace2 to gst-plugins-good
      * 582252 : rganalysis test broken by recent commit
      * 582281 : [rtp] Forgets to link to $(LIBM)
      * 582387 : [avidemux] Seeking regression
      * 582420 : flacdec unit test broken on PPC
      * 582661 : [deinterlace] Fix latency query to return unbound max lat...
      * 582715 : gcc warnings about unitialized
      * 582753 : flacdec check fails
      * 582794 : rganalysis unit test fails with git core
      * 568278 : [qtdemux] add support for vob subtitle streams
      * 569611 : GStreamer videobox element draws thin green lines on edge...
      * 571294 : [matroskamux] Should ignore framerate of 0/1
      * 574169 : avidemux/theoradec don't work well together
      * 575234 : Network interface selection for multicasting with the udp...
      * 576729 : [rtspsrc] perform EOS handling earlier
      * 578257 : Image problems using rtpjpeg(de)pay
      * 579069 : rtp h263pay build fixes
      * 580554 : PATCH: qtdemux: fix demuxing of m4v streams with ac-3 audio
      * 581432 : [multipartdemux] source pads are leaked
      * 581444 : [multipartdemux] free memory read of buffer timestamp
      * 582218 : Uninitialized variable may be used in gstavidemux.c
      * 575937 : udp/gstudpnetutils.c: ip_mreqn unavailable on Solaris (an...


Changes since 0.10.13:
    
      * Add autodetect source elements
      * Improvements in RTP payload/depayload and RTSP
      * Support float input in wav, and require depth == width
      * Support inverted RGB video in avi
      * Compilation fixes and smarter format selection in V4L2 support
      * Use libv4l when available
      * Don't install static plugin libraries any more
      * Matroska muxing: Add Dirac, fix AAC
      * Improve qtdemux segment handling
      * Add presets to equalizer
      * OS/X video and audio output improvements
      * Rework Pulseaudio audio output
      * Support basic and digest auth in souphttpsrc
      * Use libsoup-gnome instead of libsoup when available
      * DV demuxer fixes
      * New IIR and FIR base classes and echo filter in audiofx plugin
      * Improved spectrum analysis plugin
      * 8 bit greyscale support in v4l2src and videocrop
      * New aspectratiocrop element
      * Many other bug fixes and improvements

Bugs fixed since 0.10.13:
     
      * 561502 : Not-negociated error in udpsrc
      * 522183 : add preset suport to gstequalizer
      * 523813 : [autodetect] add autovideosrc and autoaudiosrc
      * 557709 : goom should have license headers in all source files
      * 560155 : segfault when trying to set tag to NULL with avimux
      * 527951 : [new element] aspectratiocrop
      * 529379 : RTSP seeks when pipeline is in STATE_PAUSED
      * 532409 : RTP payload/depayloader for G.729
      * 537539 : [pulse] Rhythmbox starts using 100% of CPU time when puls...
      * 537540 : [pulse] Causes a deadlock when the pulseserver dies
      * 537543 : [pulse] sink/src should have " volume " property (was GstMi...
      * 545033 : [v4l2src] Add support for camera specific formats
      * 552140 : [soup] use libsoup-gnome for proxy configuration if avail...
      * 556019 : Add the ability to make souphttpsrc act as a live source
      * 556484 : Implement getcaps in rtpL16pay
      * 556641 : rtpL16depay doesn't support multichannel audio
      * 556802 : Misspelled messages
      * 556955 : [videocrop] fails to renegotiate
      * 556986 : pulsesink deadlocks when raising an error
      * 557260 : [equalizer] Calculates coefficients for every buffer
      * 557293 : Argument type mismatch on Windows
      * 557294 : cross mingw32 gcc: getaddrinfo is not in ws2_32.dll befor...
      * 557710 : Memory leak related to matroskamux's request pads
      * 558427 : rtpmpapay/depay are too wide
      * 558638 : Compiler error on v4l2
      * 558711 : gst-plugins-good-0.10.11 compile fails
      * 559288 : [qtdemux] deadly embrace!
      * 559545 : rtspsrc could not receive data from RTSP server because o...
      * 559547 : Seek bugs when playing rtsp video in m.youtube.com
      * 560641 : rtp mp4 payloader doesn't flush the last frame upon EOS
      * 560756 : New Plugin: JPEG RTP Payloader
      * 561625 : Rtspsrc set segment's last_stop incorrectly
      * 561775 : souphttpsrc patch to support basic and digest authentication
      * 561802 : DLNA specific HTTP header missing
      * 561990 : qtdemux build fails on mingw due to missing definition of...
      * 562434 : [wavenc] Add support for a-law and mu-law encoded wav files
      * 562572 : multiudpsink handles errors in _render() too aggressively
      * 563414 : Fix for SunAudioMixer plugin
      * 563504 : add libv4l2 support to v4l2 gst plugin - required for mos...
      * 563509 : [rtp_data_test] Complains about negotiation errors with m...
      * 563510 : [videocrop] 1x1 unit test fails
      * 564437 : rtpjpegdepay was unable to handle frame dimensions greate...
      * 564948 : Fix and clean up osxaudio
      * 565850 : mov files can contain xvid, fmp4 and ac3 tracks
      * 566616 : v4l2src: b/w support
      * 566843 : [pulse] Terminating an audio stream hangs the application
      * 567577 : [audiofx] Add generic IIR/FIR audio filter elements
      * 567642 : spectrum element has undocumented arbitrary limitation on...
      * 567746 : fix for 547227 created a ref loop
      * 567794 : [PATCH] Rework pulse plugin
      * 567800 : Mp4 created by Avidemux don't play.
      * 567853 : osxaudiosrc does not build on 10.4
      * 567874 : [audiofx] Echo/Reverb filter
      * 567955 : [spectrum] Need compensation for rounding errors
      * 567992 : [videocrop] wrong mouse navigation commands while cropping
      * 568395 : [audiofx] Rename audioreverb to audioecho
      * 568780 : elements/videocrop check fails
      * 568809 : Patch needed for building gst-plugins-good 0.10.13 on Sol...
      * 569820 : In some cases v4l2src element does not return correct norm
      * 570343 : equalizer bands != specified parameters
      * 570435 : Read Title element of Matroska files
      * 571038 : [osxvideosink] build fail
      * 571150 : aspectratiocrop : Memory leak
      * 571153 : [pulsemixer] compiler warnings (on ARM)
      * 571204 : [pulsesink] PA assertion failure triggers abort
      * 570581 : osxvideosink: non-embedded mode is badly broken and shoul...
      * 341752 : [rtspsrc] 500 Internal Server Error response with tagessc...
      * 420658 : gconfaudiosink is not behaving normally
      * 558554 : [avidemux] avidemux not recognizing certain uncompressed ...
      * 561580 : GStreamer does not play a specific WAV file
      * 563056 :  " rtpjpegdepay ! jpegdec " doesnt works
      * 565441 : Smoke encoder doesn't set caps correctly
      * 567952 : videocrop: add b/w support

Changes since 0.10.12:

      * Fix bad autopoint substitution in the po subdir

Changes since 0.10.11:

      * Fix for security advisory TKADV2009-0xx

Changes since 0.10.10:

      * HDV capture support
      * Port flactag element to 0.10
      * Support FLAC in alternate bit-depths and more samplerates
      * Matroska muxing improvements
      * Support Google RTSP variant
      * Many other bug-fixes and improvements

Bugs fixed since 0.10.10:

      * 545433 : [wavparse] support tempo tag
      * 311586 : Matroska mux/demux don't support flac
      * 350830 : [raw1394] Add HDV support
      * 413841 : [flactag] needs porting to 0.10.x
      * 536067 : [matroska] Add support for real audio/video
      * 537361 : videomixer segment handler fail
      * 543101 : The udpsrc/udpsink/multiudpsink/dynudpsink elements may l...
      * 544956 : [videobox] segfault when changing properties at running p...
      * 545463 : autodetect plugin links to gconf, unnecessarily
      * 545710 : [rtspsrc] : create rtp/rtcp socket pair + same port for d...
      * 546465 : can't play m.youtube.com rtsp streams
      * 547075 : [speex] Encoder doesn't handle non-zero start timestamps ...
      * 547217 : Implement GstPropertyProbe interface on pulsesrc for dete...
      * 547227 : Implement GstPropertyProbe interface on pulsesink for det...
      * 547518 : pulsemixer probe fails after device property is set
      * 547519 : Add device-name property to pulsesrc
      * 548530 : wavenc allows audio depth of 25
      * 548831 : matroska demuxer setting incorrect timestamps
      * 549073 : buffer_alloc function from new basetransform sometimes fa...
      * 549090 : v4l2src has no property named norm but notifies it
      * 549551 : conversion of gst structure names to mime types in multip...
      * 549784 : Memory Corruption Probing v4l2src with Video4Linux1 device
      * 550015 : build failure: gstcmmlparser.c:115: error: format not a s...
      * 550791 : [flacenc] files are too big, mid-side-stereo=true should ...
      * 551048 : rtsp implementation sends PAUSE even when server doesn't ...
      * 551570 : plugin ximagesrc is memory leaking...
      * 551584 : Crash when modifying the videobox " top " and " left " live w...
      * 552213 : [qtdemux] map tiff fourcc to image/tiff caps
      * 553191 : udpsrc: bind() fails on OS X
      * 554771 : totem spins CPU 100% while allocating (infinitely) becaus...
      * 556010 : AVI muxer segfault
      * 556381 : [icydemux] test fails with latest core
      * 556424 : [avidemux] segmentation fault when creating indexes
      * 557085 : [videobox] support dynamically changing properties
      * 557610 : udpsrc fails to bind() on Mac OS X (IPv4 vs. IPv6 problem)
      * 547842 : Vorbis RTP RFC 5215 is out
      * 550288 : Sound not played - a quicktime file

Changes since 0.10.9:

      * Move the libcdio cddasrc element to -ugly, because of the GPL license

Bugs fixed since 0.10.9:

      * 413705 : [PLUGINS MOVE] gst-plugins-good contails GPL'ed libcdio p...

Changes since 0.10.8:

      * Replaygain elements moved from Bad
      * Interleave/Deinterleave elements moved from Bad
      * Pulseaudio plugin http://pulseaudio.org is now integrated
      * New simple Karaoke audio effect plugin
      * Improvements in v4l2src
      * Multi-channel FLAC file fixes
      * AVI and Quicktime reverse playback support
      * AVI and Matroska muxing improvements
      * New element for rendering SMPTE transitions into alpha channels
      * Many improvements in the Win32 directdraw elements
      * Error out cleanly for encrypted streams
      * RTP/UDP handling improvements
      * RTSP digest authentatication implemented.
      * New RTP Pay/Depay-loaders for Speex, G.729, DV & raw video/audio
      * Error concealment for Speex
      * Many other bug-fixes and enhancements

Bugs fixed since 0.10.8:

      * 541787 : incorrect timestamp
      * 413705 : [PLUGINS MOVE] gst-plugins-good contails GPL'ed libcdio p...
      * 345393 : Missing documentation
      * 400679 : [PLUGIN-MOVE] pulse-gst to -good
      * 422917 : G729 payloader/depayloader
      * 429322 : [matroska-demux] hangs if file starts at non-zero timestamp
      * 465146 : Add more complete negotiation to gstrtpbasepayload
      * 469917 : multiudpsink IPv6 and diffserv TOS/TC markup
      * 499318 : [osxvideosink] warnings on build (ppc, 64bit, 10.4)
      * 503288 : rtph264pay does not split multiple NAL units in incoming ...
      * 511489 : avimux muxed audio and video out of sync
      * 512345 : gstalpha: chroma-key should not set alpha to 0 if brightn...
      * 515962 : [udp] add ipv6 support to multiudpsink and udpsrc, add mu...
      * 516509 : gstid3v2mux.cc build failure on Solaris, CFLAGS not valid...
      * 519301 : avimux fails when going from NULL to playing a second time
      * 519460 : 8 bytes missing in AVI streamheader
      * 520092 : v4l2src proposed patches
      * 520885 : directdrawsink has some issues
      * 527865 : [PATCH] [matroskademux] uses wrong colourspace for palett...
      * 529454 : [udpsrc] generates false error on win32 due to ICMP dest-...
      * 529692 : [goom] fails to build on Windows with mingw32
      * 529707 : [rtp] fails to build on Windows with mingw32
      * 530886 : Support more mpeg2 variants in .mov files
      * 531532 : rtspsrc leaks filedescriptors when gst_rtspsrc_open fails
      * 531672 : [qtdemux] does not handle files with edit lists correctly...
      * 532295 : gconf setting default audio sink to video default visualizer
      * 532393 : [dvdec] Shouldn't be GST_RANK_PRIMARY
      * 532409 : RTP payload/depayloader for G.729
      * 532423 : RTP payload/depayloader for DV
      * 533264 : Make v4l2 compile without X
      * 533619 : udpsink dies when Linux fails (for no reason) sendto() wi...
      * 535121 : [videomixer] proper seek/segment handling
      * 535300 : [avidemux] missing support for reverse playback.
      * 535935 : [qtdemux] Missing metadata
      * 536228 : [PLUGIN-MOVE] Move interleave/deinterleave to gst-plugins...
      * 536317 : [v4l2src] Doesn't compile with latest git kernel
      * 536646 : v4l2src doesn't pick the optimal resolution
      * 536831 : v4l2src == non-experimental
      * 536903 : udpsrc now assumes one is using multicast
      * 537021 : [cdio] does not extract album title from CD-TEXT
      * 537031 : Enhancement to SunAudio mixer plugin
      * 537361 : videomixer segment handler fail
      * 537377 : Gstreamer avidemux fails on avi files with non-AV data st...
      * 537622 : [matroskademux] Doesn't export covers (file attachments)
      * 537675 : rtp vorbis/theora payloader static caps don't specify del...
      * 537832 : rtsp is broken
      * 539372 : udpsrc do not set port properly on anonymous binding
      * 539548 : [udpsrc] Fails to bind with permission denied when trying...
      * 540067 : souphttpsrc does not support http authentication
      * 540300 : [souphttpsrc] souphttpsrc does not seek ahead in http stream
      * 540940 : Quicktime demuxer does not handle dirac in QT files
      * 541081 : [v4l2src] Doesn't compile with on old kernel
      * 541384 : cross mingw32 gcc: making goom compile
      * 541412 : cross mingw32 gcc: making libgstrtp plugin compile
      * 541650 : udpsrc fails to parse URI with IPv6 address
      * 541956 : v4l2src only requests interlaced video 
      * 542410 : qtdemux not recognizing pcm 8bit streams correctly
      * 543054 : [osxvideosink] minor build issue
      * 543255 : -Wno-attributes does not exist in every gcc version
      * 543259 : warning in gstv4l2src.c due to an uninitialized variable
      * 543300 : [qtdemux] [PATCH] wrong depth in RLE video caps and wrong...
      * 544509 : [qtdemux] Regression in segment.stop
      * 539482 : [avidemux] Doesn't parse vprp ODML header
      * 544433 : Some -good plugins aren't buildable with MSVC
      * 536994 : Improve v4l2src negotiation a bit more
      * 329198 : GStreamer-CRITICAL: gst_pad_activate_pull: assertion `old...
      * 532065 : Implement RTSP Digest authentication
      * 533287 : Mapping of mime types to gst names in multipartdemux
      * 538891 : G.726 pay/depayloader is missing

Changes since 0.10.7:
    
      * The libsoup based http source moved from the -bad module and
        was raised to primary rank
      * GOOM visualisation plugin updated to Goom2k4
      * Fixes in UDP, RTSP, matroska, QT/mov, AVI, v4l2, OS/X, SunAudio,
        mulaw and wavpack
      * New gdkpixbuf output for snapshotting
      * Various other bug-fixes

Bugs fixed since 0.10.7:
     
      * 516509 : gstid3v2mux.cc build failure on Solaris, CFLAGS not valid...
      * 515978 : [ladspa] Should be removed from -good until it's ready to...
      * 516649 : [v4l2src] tries to VIDIOC_S_PARM without checking capabil...
      * 517237 : [rtspsrc] Better error when bandwidth is too small
      * 517933 : [tests] trivial C89 fix
      * 518188 : [spectrum] " message " property documentation unclear
      * 518213 : [goom2k4] artefacts on x86-64
      * 518564 : goom dies with illegal instruction
      * 519088 : gst_mulawdec_chain() may call gst_util_uint64_scale_int()...
      * 519417 : Unable to modify DEFAULT_VIDEOSRC in configure
      * 520073 : [goom] (goom2k4) shows mostly black frames
      * 520764 : double buffer unref in speexenc error handling
      * 520880 : audiofx doesn't build on Windows/MSVC
      * 520888 : udpsrc has some issues on Windows
      * 521102 : h.263+ rtp depayloader crashes on short payloads
      * 521875 : [osssrc] recording corrupts upon _get_caps
      * 522278 : Problem with " movq " at file gst-plugins-good/gst/goom/xmmx.c
      * 522767 : [goom] does not build on ppc
      * 523124 : [PLUGIN-MOVE] move souphttpsrc from -bad to -good
      * 523134 : osxvideosink does not stop when you control-C
      * 524593 : [sunaudio] fix mixer track range
      * 525359 : [alaw] [mulaw] Use gst_pad_alloc_buffer_and_set_caps to c...
      * 525833 : [halaudiosrc] unable to get mic USB working with gnome-so...
      * 525860 : [sunaudio] copyright fixes
      * 525946 : [gdkpixbuf] add gdkpixbufsink element
      * 526557 : [matroskademux] seeking regression in CVS
      * 527848 : [souphttpsrc] Give souphttpsrc PRIMARY rank
      * 527984 : Doesn't dist all m4 files needed by configure.ac
      * 527999 : [goom] Doesn't dist goomsl.h
      * 528143 : [goom] fails to build on 32-bit ppc
      * 528615 : Hide goom2k4 logo
      * 529268 : [goom] States unit test exposes some memory leaks

Changes since 0.10.6:
    
      * 8 months of frenetic development
      * Massive RTSP/RTP improvements
      * Fixes in pngdec, gdkpixbufdec, wavpackparse, wavpackdec, smokeenc,
        mulawdec, alwdec, id3demux
      * More Fixes in matroskademux, udpsrc, apedemux, flacenc, avimux,
        dv1394src
      * V4L2 support improved
      * Fixes for OS/X and Windows video/audio sources and sinks
      * Support more formats in QT files
      * Elements moved from gst-plugins-bad: equalizer, lpwsinc (now
        audiowsinclimit), bpwsinc (now audiowsincband), spectrum,
        multifilesrc/sink
      * New audio effects: High/Low/Band-pass filters
      * Many, many other fixes

Bugs fixed since 0.10.6:
     
      * 415627 : [PLUGIN-MOVE] move equalizer to good
      * 463624 : [PATCH] avimux: mismatch in ODML tag numbering
      * 347848 : [id3v2mux] add support for DiscID tags
      * 348085 : [PLUGIN-MOVE] move spectrum to good
      * 351726 : [rtspsrc] Force to send on periodic time new rtsp play co...
      * 358841 : [dv1394src] should have property probe
      * 417420 : [autoaudiosink] add " caps " property to filter sinks by caps
      * 427573 : [osxaudiosrc] segmentation fault
      * 435435 : [alaw] use tables for ALAW (G.711) encoding and decoding
      * 442034 : [avi] add support for subtitle streams (GAB2)
      * 447000 : [id3demux] add support for reading license URL from WCOP tag
      * 448278 : [v4l2src] several issues in cvs
      * 449747 : Function parameter mismatch breaks build on Solaris.
      * 450190 : [PATCH] v4l2src set_capture (parameters) fails
      * 450878 : Missing files in po/POTFILES.in
      * 451249 : Integer type mismatch in gstrtspsrc.c
      * 451388 : [v4l2src] Could not negotiate format
      * 453037 : rtpilbcpayloader encoding-name field mismatch
      * 453417 : [matroskademux] support palette info for VobSub stream
      * 453630 : Rtspsrc invokes GST_ELEMENT_ERROR in eos when streaming o...
      * 455086 : [cairotextoverlay] ignores the size in font-desc property
      * 455808 : rtspsrc deadlocks on pause
      * 457097 : [faad] " setting caps on pad failed " with BMJ113 mov
      * 461600 : Some files missing from POTFILES.in
      * 464475 : the mode property if the caps of rtpilbc*pay should be of...
      * 464800 : [audiofx] New elements: chebyshev low/highpass and bandpa...
      * 465040 : [RTP] h263ppay should allow h263 caps on sink
      * 465774 : qt video does not play, but can be seeked
      * 467214 : Could not get buffers from device '/dev/video0'
      * 467666 : [ELEMENT-MOVE] Move lpwsinc and bpwsinc to gst-plugins-good
      * 470502 : Ricoh Webcam not working
      * 471364 : [gconf] Internal GStreamer error: state change failed on ...
      * 471823 : [v4l2src] Fails to negotiate capabilities with Macbook Pr...
      * 473670 : [qtdemux] invalid utf8 in tags causes warnings
      * 474616 : [rtph263pay] RTP headers are wrong for win32
      * 475424 : [v4l2] uvcvideo Macbook iSight webcam not working (regres...
      * 477199 : Linux-UVC webcams not working
      * 477456 : [v4l2src] my webcam is not working anymore
      * 479960 : qtdemux is missing fourcc for mpeg2 HDV streams (HDV2. HDV3)
      * 480557 : [v4l2src] Nasty segfault (with broken driver?)
      * 482495 : avimux does not accept audio/aac
      * 484998 : [mulawdec] not-negotiated error playing a sun audio (au) ...
      * 485828 : [v4l2src] Fixates to lowest resolution on new kernels
      * 487488 : udpsrc errors
      * 487563 : Payloader for H264 not marking packets
      * 488112 : [id3demux] extract ID3v2 WOAF frame
      * 488844 : Free GstBuffer with gst_buffer_unref() in gst_rtp_mp4v_pa...
      * 488879 : [videomixer] implement GstChildProxy interface
      * 489940 : [gdkpixbufdec] gst_value_set_fraction: assertion 'denomin...
      * 490034 : [v4l2src] " could not get buffers from device " 
      * 490283 : [multifilsrc] move to -good
      * 491323 : Extend RTP MPEG-TS payloader to handle large RTP payload ...
      * 492388 : Build issues on Windows/MSVC
      * 496752 : [rtspsrc] leaks memory
      * 496773 : [rtspsrc] leaks SDP messages
      * 496983 : [PATCH] rtspsrc leaks pads
      * 497007 : [PATCH] rtspsrc leaks RTSP messages in SETUP
      * 497017 : [PATCH] H.264 RTP depayloader leaks memory in setcaps
      * 497292 : gsttextoverlay compile problem in MSVC
      * 497293 : gsttimeoverlay compile error in win32
      * 498181 : Recent change to gst-plugins-base breaks gst-plugins-good
      * 498297 : [v4l2src] put real supported resolutions in caps instead ...
      * 498395 : [pngenc] leaks buffer data memory
      * 498715 : GStreamer fails to decode MPEG1 Video RTP streams when gs...
      * 499178 : unexpected not negotiated and other weird beharviours
      * 499239 : gstrtpmp4adepay
      * 499383 : [rtph263depay] Doesn't read I-frame information from rtp ...
      * 500403 : [PATCH] videobox element doesn't init liboil
      * 501775 : [wavparse] regression in CVS: seeking is broken
      * 502655 : [avimux] creates corrupt avi files (wrong stream numbering)
      * 502814 : Adds profile (hex string), sps and pps (base64 encoded) i...
      * 502966 : GStreamer segfaults when videobox is introduced into a sp...
      * 503023 : Let multipartdemux work in live mode.
      * 504018 : flacdec emits newsegment before being able to respond to ...
      * 504081 : [matroskamux] support for live sources (calculate duratio...
      * 504895 : Build fails:  gst/check/gstcheck.h: No such file or direc...
      * 505745 : [avidemux] warning: 'res' may be used uninitialized in th...
      * 506025 : RTSPsrc doesn't handle redirects.
      * 506715 : [PATCH] [flacdec] PICTURE blocks should be retrieved as m...
      * 507642 : v4l2src Crash - Size 4156 is not a multiple of unit size ...
      * 508644 : The clockrate for theora payloading should always be 90000
      * 509298 : Compilation errors in gstavisubtitle.c and gstrtspsrc.c w...
      * 509301 : [flacdec] CVS does not compile against flac-1.1.2
      * 509531 : Make the auto-join/auto-leaving of a multicast group opti...
      * 510505 : changes to make v4l plugin build on solaris
      * 510592 : Race condition in WAVE parser
      * 513628 : [flacdec] Decoding of PICTURE blocks is always disabled b...
      * 514397 : matroskademux does not mark delta units
      * 514573 : multipartmux memory leak
      * 514889 : Bogus output from RTP data test
      * 514965 : Possible buffer leaks if last_write_result != GST_FLOW_OK...
      * 515457 : [audiofx] Element long descriptions are broken
      * 515562 : [avidemux] Seeking broken in 0.10.6.2
      * 515697 : [multifile] Several memory leaks exposed by unit test
      * 515701 : [smoke] Several valgrind warnings exposed by unit test
      * 515703 : [avisubtitle] Several valgrind warnings with unit test (g...
      * 515704 : [gconf] Memory leak when creation of pipeline fails
      * 515706 : [ximagesrc] Memory leak when XDamage support is available
      * 515905 : gst-error.m4 needs no%E_MACRO_REDEFINED on Solaris
      * 515979 : [efence] Doesn't chain up finalize properly
      * 515980 : [directdraw] Does not chain up finalize functions properly
      * 515984 : [v4l] Does not chain up finalize functions properly
      * 515985 : [ximagesrc] regression when using damage
      * 516371 : does not build without xml usage
      * 516524 : uninitialized variables
      * 517386 : [alpha] Doesn't link with libgstbase
      * 508291 : [id3demux] must check if language code in id3v2 COMM fram...
      * 491811 : Rename audiochebyshevfreq* to audiocheb*
      * 447961 : [rtsp] do not store a reference to the result from inet_n...
      * 475784 : rtspsrc has race condition between loop_interleaved() and...
      * 478244 : rtpamrdepay make no playable stream
      * 480707 : Memory leak : gstrtpmp4vpay :  config buffer is leaked
      * 502187 : flacdec doesn't send newsegment from the streaming thread
      * 509329 : [rtspsrc] use atoll when parsing rtptime
      * 512544 : preallocate output buffer in pngenc

Changes since 0.10.5:

      * Much improved RTSP/RTP and V4l2 support
      * New plugins - audiopanorama, audioinvert, audiodynamic, audioamplify
      * OSX and Windows video/audio support elements moved from Bad Plugins
      * qtdemux, videocrop and wavpack elements moved from Bad Plugins
      * Fixes in avi and matroska muxing
      * Fixes in wavparse, sunaudio, AVI demuxing, ID3 tag handling
      * gamma element ported to 0.10
      * Parallel installability with 0.8.x series
      * Threadsafe design and API

Bugs fixed since 0.10.5:

      * 392189 : [esdsink] pipeline hung in state change from PAUSED to PL...
      * 407590 : crash using gconfaudiosink
      * 439255 : [rtspsrc] crash on unsupported transport
      * 441118 : Incorrect caps in G.711 RTP depayloaders
      * 323471 : [PLUGIN-MOVE] osxaudio
      * 407780 : avimux does not handle video/x-h264
      * 316203 : MinGW: udp and rtsp plugin should be disabled on windows
      * 340362 : [PATCH] new plugin - hardlimiter
      * 342463 : [ximagesrc] performance improvement
      * 347806 : [v4l2src] try_capture(): Error getting buffer information...
      * 350296 : [udpsrc] add property to remove extra headers from buffers
      * 354007 : [PLUGIN-MOVE] videocrop should be moved to -good
      * 356692 : wavparse drops final sample in most files
      * 358040 : Fix speex rtp (de)payloader
      * 362566 : [dv1394src] Random segfault and kernel oopses
      * 374489 : rtspdec never sends out RTCP Receiver reports
      * 377306 : [sunaudiomixer] mixer track labels not localized
      * 379298 : [avimux] allow multiple audio streams
      * 392620 : gnome-sound-record can not be started on sunray client on...
      * 393427 : error/warnings when compiling with mingw
      * 395688 : playbin is unable to play rtsp stream for 3gp from Darwin...
      * 396057 : [audiofx] New audioinvert element
      * 397162 : [audiofx] New element audioamplify
      * 397946 : [audiopanorama] another trivial docs fix
      * 398299 : [smpte] crashes if fed empty buffers from fakesrc
      * 398325 : [smpte] Segfaults with big width/height
      * 399338 : Hang in PREROLLING when trying to play a specially crafte...
      * 399825 : Tags don't work properly for shout2send plugin
      * 406042 : [v4l2src] fails with radio chips
      * 407369 : [v4l2src] Wrong way of EIO error handling
      * 407793 : memory leaks of sdpmessage.c
      * 407797 : bug of rtsp_url_parse() in gst/rtsp/rtspurl.c
      * 408544 : totem crashed with SIGSEGV to rtsp_ext_wms_configure_stre...
      * 410997 : Fails to build with -z defs
      * 412597 : Simplify GstSunAudioSrc
      * 412608 : [avidemux] flow return aggregation can ignore errors
      * 414168 : Mixes spaces and tabs in Makefile.am defs
      * 416445 : [avidemux] seeking regressions
      * 416727 : [v4l2src] typo in printf format string
      * 416728 : [v4l2src] typo in translated strings
      * 417729 : [autoaudiosink] plugs alsaspdifsink, breaking playbin
      * 419338 : [wavparse] critical warning from plugin viewer
      * 420208 : Probably typo
      * 426044 : [flacenc] broken files when used with oggmux
      * 427990 : [rtph264depay] sprop-parameter-set erros
      * 428611 : [ximagesrc] segfaults when used from a non-X terminal
      * 428901 : [icydemux]  broken tags for non-UTF-8/ISO-8859-1-using ra...
      * 429319 : [alphacolor] distorts png images without alpha channel
      * 429666 : [goom] totem skips mp3 (while Rhythmbox doesn't)
      * 430228 : [sunaudio] copyright bug
      * 430632 : memory problem
      * 430804 : [PATCH] navseek only seeks (sort-of) partially
      * 431282 : broken RTP depayloaders
      * 433119 : wavparse causes skipping for MPEG-encoded RIFF Wav files ...
      * 433135 : [wavparse] regression in CVS with mp3-in-wav
      * 433530 : udpsrc read of size 0
      * 434824 : rtp mp4 payloader doesn't handle newsegments and flush ev...
      * 436910 : [videomixer] wrong strides with odd input width
      * 437499 : [wavparse] can't handle WAV file with 'LIST'  header chunk
      * 437670 : Improvements for rtsptransport.[ch]
      * 437692 : Some more fixes for the RTSP support
      * 438926 : invalid comparison of pointer with string literal
      * 438940 : [rtph263ppay] Support for Segment Fragmentation based on ...
      * 440127 : Autoaudiosink does extra switching between null and ready...
      * 440203 : Support multiple RTSP headers of the same type
      * 440928 : Improved RTSP version support, and added Date header
      * 441408 : speexdec plays incorrectly files made with nframes=4
      * 442535 : [wavenc] Doesn't handle width!=depth files with audio/x-r...
      * 442677 : WideBand AMR payloaders
      * 443081 : [wavparse] fails to post error on FLOW_NOT_LINKED
      * 445905 : ximagesrc disregards display_name property
      * 446981 : error during the compilation of rtspconnection.c
      * 447210 : wrong length calculation for codec_data
      * 447458 : [qtdemux] export AMRSpecificBox as codec_data
      * 385887 : [flac] make work with libflac-1.1.3
      * 404646 : [audiofx] Compressor/Expander element
      * 424527 : [auparse] don't convert non-native endianness floats in t...
      * 387121 : [matroskamux] Can't mux raw audio
      * 392855 : [matroska] plugin must link against zlib (error with MinGW)
      * 394851 : [audiopanorama] Some trivial docs fixes
      * 394859 : [audiopanorama] New simple method for adjusting the panorama
      * 398086 : [smpte] crashes if input dimensions differ
      * 406018 : 64bit uncleanness in gstavimux.c
      * 407057 : [wavparse] leaks contents of every buffer pushed when in ...
      * 407349 : [id3demux] wrongly interprets TDAT as year
      * 350278 : [rtpmp2tdepay] Add support for proprietary headers
      * 380895 : A couple of corrections and improvements for the RTSP sup...
      * 380944 : [dvdec] Doesn't set pixel-aspect-ratio
      * 394977 : multipartmux not honoring flow return
      * 403956 : Add float32 support for " level " element
      * 405213 : mp3 plays too fast in totem or rhythmbox
      * 407006 : [goom] odd adapter behaviour
      * 412704 : [PATCH] gamma filter ported to 0.10
      * 414887 : [gconf] gconfaudiosink doesn't set GST_ELEMENT_IS_SINK un...
      * 415446 : [avidemux] fails parsing mjpeg file from digital camera
      * 417792 : rtp depayloader for AAC
      * 423304 : file descriptor closed in udpsrc and dynudpsink
      * 423782 : Code for H264 payloader
      * 428182 : Current CVS generates compiler warnings
      * 429329 : [videobox] add support for AYUV input
      * 442874 : Multipartmux assumes caps == mime

Changes since 0.10.4:

      * Parallel installability with 0.8.x series
      * Threadsafe design and API
      * RTP/RTSP improvements
      * Fixes in OSS support
      * Addition of the audiopanorama element
      * Improvements in AVI playback
      * Annodex playback fixes
      * Support FLAC in OGG and Matroska
      * Fixes in the Speex decoder
      * V4L2 source moved from Bad Plugins
      * SMPTE element ported to 0.10
      * GStreamer Data Protocol (GDP) Payloader and Depayloader elements added
      * Many other bug-fixes

Bugs fixed since 0.10.4:

      * 336465 : [patch] Streaming support for avidemuxer
      * 349207 : [PLUGIN-ADD] audiopanorama
      * 341278 : [autoaudiosink] should fallback to fakesink
      * 342950 : Implement device profiles in autoaudiosink/autoaudiosrc
      * 348233 : dv1394src crashes with libavc1394 0.5.3 - cause known
      * 349015 : [sunaudio] open source with O_NONBLOCK
      * 349894 : RTSP Multicast
      * 351347 : --disable-schemas-install now works too well
      * 351794 : [id3demux] try harder to extract wrongly marked strings
      * 352577 : [avidemux] regression in CVS with Elephant's Dream
      * 355210 : Sample pipeline from the documentation doesn't work properly
      * 356142 : GST Sun Audio Mixer doesn't set only Output Track as Mast...
      * 356147 : [avimux] duration in header not correct for big avi ( > 2 ...
      * 357592 : Avoid compiler warnings with uClibc and -Werror
      * 361637 : h263 variant missing from RTP (de)payloaders' caps
      * 361639 : MPA payloader's payload number is incorrect
      * 362603 : Fixes compiling with forte: warning clean up (part 4)
      * 362673 : Playback with 4Front OSS driver not working due to blocki...
      * 366492 : add windows vs8 project files
      * 369621 : [avidemux] Out-of-sync playback with VBR MP3 audio
      * 372021 : flxdec has wrong classification
      * 374213 : Seeking with LADSPA plug-ins fails
      * 374479 : [PATCH] videomixer memleak fix and enhancement
      * 374737 : [matroskademux] doesn't recognise opaque " A_AAC " codec ID
      * 376594 : id3demux crashes when reading compressed ID3 frames
      * 379433 : [PATCH] avidemux audio pad reports wrong position upon query
      * 379792 : Remove memcpy in multipartmux and fix RFC compliance
      * 379918 : Doesn't compile with newer libcaca versions (0.99.beta4+)
      * 380199 : [matroskademux] Wrong framerate conversion
      * 380825 : make avimux accept video/mpeg in versions 1, 2 and 4
      * 381857 : [id3v2mux] crashes trying to write empty frames
      * 382179 : Videomixer shouldn't reset position to 0 when the caps ar...
      * 382277 : multipartmux modifies buffer timestamp
      * 382982 : [apedemux] Fails to read track gain or other doubles
      * 383001 : [PATCH] if using multicast in udpsrc, bind to the multica...
      * 383043 : Videomixer can crash when adding/removing pads  while pla...
      * 383596 : mixer doesnot work if set AUDIODEV on solaris
      * 384587 : libcaca check breaks cross-compile
      * 385031 : [id3demux] autoplug loop if first buffer has nonzero offs...
      * 385623 : [quarktv] crash when plugged dynamically into a pipeline
      * 343348 : [matroska] add support for vobsub subtitles
      * 345449 : [icydemux] Internet radio hangs when connecting to radio....
      * 348762 : [ID3v2] comment frame extraction/writing doesn't retain d...
      * 351116 : 'make check' tries to run annodex unit tests even if anno...
      * 352110 : [flacdec] no support for ogg flac
      * 366155 : [matroskademux] Several problems in encoding handling code
      * 374658 : [matroskamux] add tag writing support and implement relea...
      * 378184 : g-s-p crash due to incorrect free from do_toggle_element
      * 360673 : [PATCH] Stuttering with SunAudio Sink
      * 349068 : multipart demuxer improvements
      * 350006 : [LADSPA] after changing state from PLAYING to READY/NULL,...
      * 350340 : CMML test cases and small fixes
      * 350785 : [ossmixer] provides no way to set mixer device
      * 353908 : Error seeking at the beginning of a CMML file
      * 356596 : [wavparse] Does not support GSM encoded audio
      * 358156 : in udpsrc.c gst_udpsrc_create function read command could...
      * 361252 : Memory leak in udpsrc
      * 364958 : [avidemux] broken timestamping in streaming mode
      * 367221 : [PATCH] videomixer does not mix for some framerate combin...
      * 368162 : iLBc rtp payloaders and depayloaders not compiled
      * 377792 : rtspsrc tries to stream application/x-wms-rtx
      * 383323 : smpte doesn't handle sink1 and sink2 correctly
      * 383726 : [audiopanorama] only transforms half of the samples in fl...
      * 349901 : [LADSPA] gst_element_class_add_pad_template: assertion `g...
      * 375476 : v4l2src cannot close /dev/video0

Changes since 0.10.3:

      * added apev2mux element
      * use libiec61883 for Firewire

Bugs fixed since 0.10.3:
    
      * 345930 : [id3demux] segfaults with file containing only ID3v1 tag
      * 347529 : wavparse error
      * 321191 : rtpamrdec isn't a subclass of GstBaseRtpDepayload
      * 340027 : [patch] wavparse fails for several files
      * 318563 : offer support for new raw1394_iso api in dv1394src
      * 330623 : [avidemux] only the beginning of big avi files gets played
      * 334375 : [id3demux] [id3v2mux] ID3 tag rewriting is lossy
      * 337076 : Problem with broken matroska files containing non-UTF8 su...
      * 339704 : [id3demux] read images from ID3 tags
      * 340282 : Goom visualization is unusable at 'Normal' size and higher
      * 340623 : [matroskademux] small memory leak
      * 340699 : [flacdec] should not send EOS when doing segment seeking
      * 340859 : [avimux] produces index with all frames marked as keyframes
      * 340946 : raw1394 plugin uses deprecated functions
      * 340979 : [id3demux] mp3 id3v2 TCON tag possible bug?
      * 341489 : gst-plugins-good wavparse Cygwin fix
      * 341774 : Fails to read tags in file
      * 341818 : [matroskademux] poor concurrent performance
      * 342029 : [id3demux] overflow of titlenumbers
      * 342097 : [jpegdec] crash with attached JPEG file
      * 342448 : [matroska] support for muxing/demuxing Theora video
      * 342526 : [avimux] dml index support, codec_data support, cleanups
      * 342592 : dvdemux doesn't post segment-done right
      * 342734 : [matroskamux] might block on state-change
      * 343051 : [autoaudiosink] doesn't try esdsink
      * 343055 : README mentions 0.9.6
      * 343117 : jpegdec, mjpeg avi's and flush seeks
      * 343122 : [taglib] new apev2mux element
      * 343123 : [apedemux] add support for GST_TAG_LOCATION
      * 343127 : [apedemux] extract track count, clean up parsing
      * 343602 : configure --disable-external fails
      * 343603 : need to add -lm to build tests/examples/level
      * 343678 : configure.ac incorrectly uses $(SED) rather than $SED
      * 343837 : [wavparse] can't handle WAV file with 'bext' header chunk
      * 344100 : --disable-schemas-install not honored
      * 344101 : SunAudio mixer fixes
      * 344120 : dv1394src should now require libraw1394 > = 1.1.0
      * 344605 : [id3demux] set picture type on image buffers
      * 345232 : [wavparse] reads beyond end-of-file (in pull mode)
      * 345288 : [udp] make work on Windows
      * 345713 : ximagesrc uses XFixesCursorImage incorrectly and will seg...
      * 346066 : [sunaudiosink] don't override user setting and switch on ...
      * 346259 : [sunaudio] move monitor to input tab in mixer
      * 347234 : streaming UDP (MPEGTS) shows only one frame of video
      * 347258 : [wavparse] internal stream error reading gnome-game gnibb...
      * 347898 : [id3v2mux] write GST_TAG_ENCODER and GST_TAG_ENCODER_VERSION
      * 347972 : [cdiocddasrc] core dumps if device is not found
      * 348644 : [id3demux] Gets the wrong part of binary blob for ID3 v2....
      * 348752 : [udpsrc] add property to set buffer size for udp socket
      * 348913 : [id3v2mux] tagging utf-8 text may be converted to iso-8869-1
      * 349155 : [smokeenc] does not set caps on it's buffers
      * 349189 : LADSPA gstsignalprocessor.c: line 408: assertion failed: ...
      * 349907 : multiudpsink messes up multicast addresses
      * 350433 : [rtph263pdepay] h.263plus depayloader does not work
      * 340492 : [flacdec] support push-based operation (and thus flac-ove...
      * 345679 : fix to avoid goom core dumping
      * 317470 : [GstCheck] gst_check_teardown_element asserts wrong refcount
      * 340980 : [pixbuf,wavparse] fix build with gcc 2.95
      * 343661 : Jpeg image crashes gstreamer
      * 344923 : New SunAudio source plugin, and mixer now supports stereo...
      * 345301 : [PATCH] gst-plugins-good rtsp for Windows
      * 346921 : gstmultiudpsink multicast support is broken
      * 344136 : More accurate list of plugins which will/will not be buil...

Changes since 0.10.2:

      * Annodex/CMML support
      * RTSP and RTP enhancements
      * HAL configured audio device support
      * FLAC, Matroska, AVI, WAV, ID3, APE, DV and JPEG plugin improvements
      * Recognise SSA/ASS and USF subtitles in Matroska files
      * Fixes for ESD and SunAudio output plugins
      * More uniform plugin descriptions
      * IceCast metadata reading plugin added
      * New plugins ported from 0.8: OSX audio, AVI muxer, X-Windows input, 
         WAV encoder, Gdk-Pixbuf image decoder, Smoke decoder, 
         Video colour balance
      * Lots of bug fixes

Bugs fixed since 0.10.2:

      * 335067 : RTSP src not working with WMServer servers
      * 333657 : Replacing icy demuxing in gnomevfssrc
      * 329106 : HAL sound device wrapper plugins
      * 337749 : totem (gstreamer) crashes when playing an avi file
      * 330885 : avidemux does not handle eos at end of seek-region
      * 337364 : faulty GObject macros
      * 337625 : [patch] Streaming support for wavparse
      * 150363 : [pngdec] doesn't handle grayscale or paletted
      * 154744 : Time slider does not work with avi videos from Cannon SD100
      * 161712 : [auparse] .au files don't play in playbin
      * 313266 : [wavparse] will not play DTS stream in malformed WAV
      * 319183 : rtspsrc filter sometimes uses an odd port for rtp
      * 319986 : annodex decoding and encoding support
      * 323721 : [id3demux] read in replaygain information from RVA2 frame...
      * 323880 :  " Seek in ready " for dvdemux
      * 325191 : problem with auparse or mulawdec, choppy esd playback
      * 326160 : videobalance not ported to new GstVideoFilter
      * 327658 :  " Seek in ready " support for wavparse plugin
      * 328327 : gst-plugins-good fail to compile with gcc 4.1
      * 329107 : Profile support for gconfaudiosink
      * 330239 : Crash playing any song from a particular album over rhyth...
      * 330678 : Unable to play .fli files
      * 331253 : Critical warnings when using cddacdiosrc
      * 331368 : Gstreamer doesn't recognise tags
      * 331385 : [alpha] state change function returns a constant
      * 331672 : Another file that gstreamer can't read the tags on
      * 331905 : [jpeg] smokedec not ported
      * 331917 : [pngdec] does not support files with png streams
      * 332031 : [PATCH] avimux ported to 0.10
      * 332547 : [wavparse] does not support multichannel wavs
      * 333070 : [id3demux] reads unicode tags incorrectly where .8 did it...
      * 333302 : [apedemux] some WavPack files with APE tags fail to play ...
      * 333392 : [sunaudio] unused variables break CVS build with -Werror
      * 333512 : [PATCH] Fix gst_pad_new_from_template (gst_static_pad_tem...
      * 333624 : invalid get_times implementation in gstdynudpsink
      * 333784 : [patch] unref the result of gst_pad_get_parent
      * 334083 : [jpegdec] wrong durations set on buffers after seeking in...
      * 334522 : avi of mpeg4 video and adpcm audio from digital camera re...
      * 334732 : [id3demux] mp3 fails to play because typefinding thinks i...
      * 334995 : [goom] zoom filter leaked
      * 335231 : [wavparse] incorrect way to calculate seek position with ...
      * 335755 : rhythmbox import crasher - png?
      * 335858 : Video playback out of sync
      * 335958 : [speexenc] doesn't work
      * 336110 : move taglib-based ID3 muxer to -good
      * 336602 : plugins need better/univied descriptions
      * 336756 : move ximagesrc to gst-plugins-good
      * 336889 : [avidemux] index creation might fail with some non-indexe...
      * 336904 : Problem playing some AVI file when splitting large chunks...
      * 337033 : [speex] can't seek in speex-encoded audio
      * 337183 : [matroska] " caps not real subset " when playing audio files
      * 337294 : AVI files downloaded from vidoe.google.com won't play
      * 337421 : [sunaudiosink] some fixes
      * 337609 : [flacdec] can't play .flac files where header says total_...
      * 338290 : [flacdec] segment seek not supported
      * 338713 : [id3demux] TCO genre tags (id3v2.2) don't get read by gst...
      * 338715 : [shout2send] fix crash on error and tags received before ...
      * 338716 : [wavenc] " not negotiated " error with CVS core
      * 338810 : [matroskademux] blocks on segmenting seek (and other seek...
      * 339446 : [matroska] can't play file if details come before type in...
      * 339451 : [matroska] enhancement for VfW compatibility cases
      * 339678 : [matroskamux] wrong timestamps of B-frames
      * 340346 : [matroskamux] blocks upon muxing video and vorbis-audio
      * 319884 : rtpamrdec discards non-transmitted frames

Changes since 0.10.1:
      * New libcdio based CDDA reading element
      * APE tag reader ported
      * ID3 tag reading fixes
      * Sun Audio Sink fixes
      * GOOM and gconf element fixes
      * lots of bug and leak fixes

Bugs fixed since 0.10.1:
      * 328336 : silence warings which make dvdec / dvdemux unusable
      * 315557 : Internal event problem with MP3s from vgmix.com
      * 323327 : [cdio] port cddasrc to 0.10
      * 325148 : Bugs in G711 RTP packetization logic
      * 325649 : apetag plugin needs porting to 0.10
      * 326446 : check that all elements in -good pass queries they can't ...
      * 326602 : id3demux is not compiling without ZLIB
      * 326683 : build problem caused by AS_LIBTOOL_TAGS([CXX])
      * 326736 : gconf(audio|video)sink response to key changes
      * 326864 : [wavparse] time to bytes format conversion broken
      * 327009 : [esdsink] won't compile with includes in non-standard prefix
      * 327765 : [sunaudio] fixes for mixer and stuttering mp3 playback
      * 327825 : [matroskamux]  Matroska muxer deadlock
      * 327871 : [videobox] crash when cropping
      * 328241 : id3demux emits NULL date for year tags
      * 328264 : Fix build with gcc 2.95
      * 328531 : [matroskamux] doesn't send newsegment event, critical war...
      * 329181 : totem crash when using goom effect
      * 329810 : Fails to read ID3 tag
      * 330005 : Please use the autodetect sinks by default
      * 317658 : [cdio] support for cd-text and cd-g

Changes since 0.10.0:
    
      * new id3 demuxer (replaces the mad one in gst-plugins-ugly)
      * memleak fixes in avidemux, wavparse, level, smoke
      * ports of multipart, 
      * fixes in flacdec, flxdec, rtp
      * documentation updates on videomixer 
      * added new sunaudiosink, gconfaudiosrc and gconfvideosrc elements

Bugs fixed since 0.10.0:
    
      * 321269 : add sunaudio to 0.9
      * 322769 : The ID3 tag of this file is a segfaulter
      * 323021 : sockfd property to udpsrc/dynudpsink elements
      * 322975 : erroneous audio specs in flac plugin
      * 323226 : block/crash on id3 v2 tags when using big blocksize
      * 323717 :  < netinet/in.h > inclusion necessary on some systems
      * 323718 : [oss] does not build on OpenBSD 3.8 because of hardcoded ...
      * 323896 : pngdec/videomixer negotation problem in 0.10
      * 324011 : Invalid payload type definition for some rtp payloaders
      * 324012 : Invalid caps on rtpspeexpay element
      * 325504 : [flacdec] gst_flac_dec_convert_src [mis]uses g_assert
      * 325974 : [gst0.10] doesn't correctly gets the tags on a mp3
      * 326612 : Serious memory leak in level plugin
      * 326618 : memleak fix in smokeenc

API added since 0.10.0:
     
      * device-name property on ossmixer subclasses
      * GstUDPSrc::sockfd property

Changes since 0.9.6:
    
      * Parallel installability with 0.8.x series
      * Threadsafe design and API
      * effectv elements ported
      * videoflip updated
      * multipart ported
      * dv seeking fixed
      * rtp elements renamed

Bugs fixed since 0.9.6:
    
      * 322377 : udpsrc leaks sockets
      * 322643 : Incorrect matroska frame default duration
      * 322645 : Matroska muxer: wrong pixel aspect ratio
      * 322667 : [jpegenc] leaks input buffer
      * 322794 : udp plugin linked against gstnet instead of gstnetbuffer
  
Changes since 0.9.5:
    
      * added speex RTP payloader/depayloader
      * ported cutter
      * fractional framerates
      * more video filters now use BaseTransform

Bugs fixed since 0.9.5:
    
      * 319184 : rtspsrc: invalid read in sdp_message_parse_buffer ()
      * 321001 : [matroskademux] should seek to nearest preceding index en...
      * 321430 : goom fails to register on amd64

Changes since 0.9.4:
    
      * matroskamux fixes
      * wavenc fixes
      * cairotextoverlay ported

Bugs fixed since 0.9.4:
    
      * 315194 : Licence information inconsistency of gst-plugins-good/gst...
      * 319731 : [matroska] SimpleBlock support for muxer and demuxer
      * 320308 : [matroska] set timestamps for buffers with ebml elements
      * 320920 : [osssink] tries to reuse a bad file descriptor
      * 321136 : [matroska-mux] avoid reading from unref'ed buffer

Changes since 0.9.3:

      * DV/Firewire fixes
      * speexenc, cairotimeoverlay, matroska, pngdec, flxdec, videomixer,
        alphacolor ported

Bugs fixed since 0.9.3:

      * 316204 : MinGW compilation: smtpe plugin has undefined symbols fro...
      * 316205 : Debug category for wavenc is not defined
      * 318847 : Matroska muxer port to 0.9

Changes since 0.9.1:

      * Parallel installability with 0.8.x series
      * Threadsafe design and API

Bugs fixed since 0.9.1:

      * 316202 : MinGW compilation: undefined autoconf macro GST_DOC
      * 317338 : [osssink] can't handle mono
