This is GStreamer Good Plug-ins 0.10.8, "One For The Money"

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
