This is GStreamer Plugins 0.8.5

Changes since 0.8.4:

      * New translation in this release: Oriya
      * licensing corrections
      * new element: mngdec
      * pixel aspect ratio conversion fixes
      * 64 bit fixes
      * NEW_MEDIA fixes
      * ogm support added
      * matroska fixes
      * playbin fixes
      * alsamixer fixes
      * gnomevfssrc fixes
      * ogg fixes
      * multifdsink fixes
      * multifilesink fixes
      * qtdemux fixes
      * avidemux fixes
      * asfdemux fixes
      * wavenc fixes
      * flac fixes
      * fli/flx fixes
      * mpeg fixes
      * speex now actually works

Bugs fixed since 0.8.4:

      * 119376 : Playback out of sync for mpeg videos from DVB
      * 126922 : [qtdemux] demuxes incorrectly
      * 135528 : [ximagesink] crashes on resize
      * 137748 : [ffdec_wmav2] jaggy video for homeShopping.asf
      * 139194 : [gstplay] doesn't play media with only video
      * 139588 : In Alsa tab, binary value options appear as a slider and ...
      * 142268 : avidemux forwards flush events event when not seeking
      * 147441 : typefind recognizes ELF files as audio/mpeg
      * 148283 : ** ERROR **: file gst-register.c: line 138 (main): assert...
      * 148993 : Gstreamer fails to play Faac created aac file
      * 149742 : [asfdemux] Can't play Shania Twain - Up.wma
      * 150589 : dirac plugin does not compile with dirac-0.4.0
      * 151416 : [PATCH] Fix CVS jhbuild build failure of gstadder.c
      * 151419 : [PATCH] Fix CVS jhbuild build failure of progressreport.c
      * 151420 : [PATCH] matroska-demux.c build failure on x86_64
      * 151421 : [PATCH] playback/test3.c build failure on x86_64
      * 151877 : [PATCH] Fix bad casts in ximagesink.c
      * 151879 : [PATCH] fix bad pointer casts in xvimagesink.c
      * 151881 : [PATCH] Fix format strings for amd64 in seek.c
      * 151882 : [PATCH] Fix format string warnings in spider_seek.c
      * 151883 : [PATCH] fix cdplayer.c warnings on amd64
      * 151884 : [PATCH] Fix format string warnings in cdparanoia.c
      * 151886 : [PATCH] Fix format string warnings in vorbisfile.c
      * 151887 : [PATCH] Fix format string warnings in player.c
      * 152091 : aspect-ratio fixes
      * 152102 : wavenc leaks events
      * 152289 : wavparse pushes buffers on unusable source pad
      * 152341 : patch for ivorbis compile failure
      * 152671 : file not playing back with BBB's gst-player
      * 152692 : Compile error with gcc 2.95
      * 152757 : playes this file in slow motion while other media players...
      * 152805 : [sunaudiosink] Deselects other input ports
      * 152806 : [sunaudiomixer]  Mute functionality is broken
      * 153388 : Mpeg makes Totem hang
      * 153818 : AVI plays back extremely slowly
      * 154056 : Small leak in wavparse
      * 154301 : typefind and rmdemux don't use the same mime type for rea...
      * 154375 : avi index massaging is slow
      * 154518 : gst-plugins speex support not compatible with speex-1.0.x...

Changes since 0.8.3:

      * New translation in this release: Albanian
      * licensing corrections
      * fixes for compiling with G_DISABLE_ASSERT
      * pixel aspect ratio conversion fixes
      * tcpserversink fixes and additions
      * multifdsink can use poll now as well
      * interleave fixes
      * audioscale fixes
      * videotestsrc fixes
      * v4lsrc fixes
      * theoradec, theoraenc fixes
      * lame fixes
      * flac fixes
      * ximagesink, xvimagesink fixes
      * sunaudio fixes

Bugs fixed since 0.8.3:

      * 135407 : [xviddec] shows green frames when decoding packed bitstre...
      * 140432 : Osssink and alsasink broken on nforce2 (intel8x0) soundcard
      * 140897 : Incorrect segment duration in files created with matroska...
      * 140898 : No writing application specified in matroska files create...
      * 141554 : vorbis in matroska files makes the vorbisdec plugin segfault
      * 144091 : [Solaris] audio mixer element
      * 144616 : Infinite loop in wavparse.
      * 148711 : typefind function for TTA audio files
      * 148950 : matroskademux doesn't set buffer duration
      * 148951 : matroskademux misses the tta codec in its codec list
      * 151232 : [lame] doesn't build with lame-3.90
      * 151236 : [v4l] compile failure
      * 151410 : Memory leaks in multifdsink
      * 151462 : theora plugin Makefile broken

Changes since 0.8.2:

      * New translation in this release: Czech
      * New translation in this release: Hungarian
      * pixel aspect ratio conversion
      * tcpserversink fixes and additions
      * oggdemux fixes
      * theoraenc and theoradec fixes
      * ximagesink and xvimagesink fixes
      * ladspa fixes
      * videoscale and ffmpegcolorspace fixes for stride
      * mpeg and dvd fixes
      * win32 project file additions
      * new elements: playbin and decodebin
      * new element: multifdsink
      * new element: pngdec
      * new element: alpha
      * new element: multifilesink

Bugs fixed since 0.8.2:

      * 141906 : hang on removing ximagesink from a pipeline
      * 142432 : Wrong sink MIME type in shout2send
      * 143222 : [oggdemux] Optimize tag reading
      * 143548 : Please update libtool to fix build on arm
      * 143703 : duration always 0 for some (gst produced) .ogg files
      * 144624 : wavenc doesn't close file properly
      * 144753 : libgstinterfaces should be split, or: 'volume' should not...
      * 144815 : [alsasink] gst_element_set_time_delay() assertion failure...
      * 144866 : [flac] seeking broken, duration not set on buffers [PATCH]
      * 144941 : alsasink assertion failure on ctrl+z and fg
      * 145031 : totem CVS won't compile because of gst-play ...
      * 145088 : gnome-volume-control has unlocalized volume names.
      * 145118 : Compile error (gcc 2.95, alsa)
      * 145336 : pipeline broke-stonecold
      * 147969 : LADSPA plugin should sanitize the info from the .so's to ...
      * 148021 : Bug in lib-riff
      * 148023 : [ximagesink] doesn't work with Xnest
      * 148043 : audioconvert
      * 148289 : mad plugin crashes on Sun
      * 148505 : [level] for silence peak is reported wrongly
      * 148986 : [lame] bug in negotiation

Changes since 0.8.1:

      * New translations in this release: Ukrainian, British
      * id3 fixes
      * asf fixes
      * qt demux fixes
      * dv fixes
      * auparse fixes
      * wavparse seeking/querying fixes
      * alsa fixes for mixing and device releasing
      * categorisation fixes
      * v4lsrc fixes for webcams
      * streamheader fixes
      * Portability fixes
      * new element: DTS decoder
      * new element: libvisual
      * new element: theoraenc
      * new element: oggmuxer
      * new element: rawvorbisenc
      * new elements: audiorate and videorate
      * new elements: TCP server/client src/sink
      * new element: pixbufscale
      * new element: osxaudiosink
      * new element: sunaudiosink
      * new element: videomixer
      * new elements: multipartmux/multipartdemux
      * new elements: smokeenc/smokedec
      * new element: vorbisparse

Bugs fixed since 0.8.1:

      * 132440 : configure botches DVDNAV_CFLAGS
      * 133002 : configure should check for dvdnav header
      * 134007 : [alsasink] assertion failure in alsalib snd_pcm_plug_hw_p...
      * 135145 : [asfdemux] Can't play randomfile.wma
      * 135862 : [wavparse] add ADPCM support
      * 135989 : v4l-conf called even when not present
      * 136392 : [v4lsrc] buggy wit qc-usb driver
      * 136572 : [esdsink] blocks other esd apps in PAUSED state
      * 137711 : [oggdemux] jump or move depends on uninitialised value
      * 137724 : [qtdemux/ffdec_mpeg4/faad] MPEG-4 video/audio esds atoms
      * 137750 : Gst-player not able to seek in wav file
      * 138251 : [mad] Can't play bad1.mp3, bad2.mp3
      * 139524 : ogg muxer needed
      * 139658 : [alsasrc] probes inexistant playback device on capture on...
      * 140064 : [speed] can't negotiate
      * 140138 : media file makes totem-gst go nuts
      * 140265 : ffmpegcolorspace and gnomevfs fail to build buildable
      * 140268 : ximagesink and xvimagesink do not build under FreeBSD
      * 140384 : Incorrect library dependency in SDL plugin
      * 140640 : [asfdemux] segfault
      * 140668 : gst-plugins-0.8.1 does not compile
      * 140844 : icecastsend (shout) doesnt even try to connect to server
      * 140878 : ima adpcm encoded wavs are not supported
      * 141176 : [mad] Can't play ...Faithfulness.mp3
      * 141188 : monoscope plugin doesnt work as intended
      * 141258 : mp3 file seek problem
      * 141318 : ffmpegcolorspace doesn't compile on Solaris
      * 141821 : kdemacros.h
      * 142044 : m4a typefinds to x-m4a instead of quicktime
      * 142084 : mad and level plugins dont like each other (caps related ...
      * 142107 : build error under mdk 10.0
      * 142127 : GstPlay's time_tick event does not return the right time ...
      * 142193 : Patch for plugins Codecs klassifications
      * 142205 : return type of gst_audio_clock_id_wait_async is wrong
      * 142211 : alsasink broken due to mixer device
      * 142262 : shout2send not compiling or working (fix attached)
      * 142272 : qtdemux doesn't work with sources that cannot seek
      * 142286 : The au plugin cannot play au files encoded with ulaw
      * 142320 : [ffmpeg - ima-adpcm-ws/wsaud] scheduler issues
      * 142493 : default fragment size in osssink is too small
      * 142507 : [PATCH] id3tag plugin does not correctly set buffer offset
      * 142555 : wavparse doesn't handle truncated files gracefully
      * 142566 : Certain mp3s don't get played correctly
      * 142585 : gstresample makes wrong assumption about buffer sizes (se...
      * 142586 : alsasink resync is broken
      * 142664 : v4l2_buffer redeclaration : won't compile with -Werror
      * 142764 : ogg that caueses error
      * 142797 : Mac OS X Audio Sink and Src
      * 142851 : gstid3tag sends wrong offset on discont events
      * 142954 : [patch] adding a connection problem signal to shout2send
      * 142962 : Error converting wav file to ogg/vorbis
      * 143032 : [adder] crash on certain errors
      * 143130 : [mixmatrix] returns garbage pointer as request pad
      * 143146 : [patch] gst/tcp plugin doesnt compile on OSX
      * 143153 : [patch] osxaudio - fix warnings
      * 143262 : rifflib does not know several fourccs
      * 143283 : [PATCH] Property accessors for the mixer interface
      * 143454 : [alsasink] outputs silence on sync problem
      * 143749 : tcp plugin dosn't compile on FreeBSD
      * 143861 : OSS elements portability on BSD (soundcard.h location)
      * 144240 : [cdparanoia] sets wrong timestamps on buffers [patch]
      * 144425 : Invalid read of size 4in riff-read.c [patch]

This is GStreamer Plugins 0.8.1

Bugs fixed since 0.8.0:
      * 120883 : osssink advertises more rates than it handles
      * 125732 : v4l2src don't support all YUV formats
      * 134301 : gst-plugins should depend on X
      * 135919 : Mandrake 10
      * 136477 : [PATCH] gst-launch-ext does not support .mov
      * 136527 : gdk_pixbuf makefile tried to execute targets contrains in...
      * 137348 : media-info .pc file lacks a 'Version:' line
      * 137448 : mpegaudioparse: crash (bus error)
      * 137504 : mpeg2dec fails on 422 encoded material
      * 137556 : Ogg Vorbis playback has poor spatialization
      * 137588 : ffmpegcolorspace gives critical when it should throw error
      * 137722 : Quicktime audio parsing is broken
      * 138105 : [mpeg1videoparse] Hangs while decoding everest.m1v
      * 138168 : id3tag using gst_event_new_discontinuous incorrectly?
      * 138169 : matroska-demux using gst_event_new_discontinuous without ...
      * 138635 : two GLib-GObject-CRITICAL Messages when running gst-regis...
      * 138846 : all of the ladspa-wrapped source-plugins fail to go to pl...
      * 138914 : gstgdkanimation.h is missing from gst-plugins-0.8.0
      * 139034 : Non-standard test(1) operator used in configure script
      * 139035 : Non-standard regex used as libtool argument
      * 139382 : mad decoder can resync wrongly after seek and does explic...
      * 139532 : gstcolorspace crashes when after v4lsrc (ffmpegcolorspace...
      * 139926 : id3tag's caps cause it to be plugged more than once by sp...
      * 139958 : Leak in avidemux
      * 140058 : [msmpeg4] file with broken qscale/header does not play

Changes since 0.8.0:

      * New translations in this release: Swedish, Afrikaans, Azerbeaijani
      * Updated osssink: now does probing of possible output properties
      * Updated qtdemux: fixes for MACE audio
      * New debug element: quasirandom byte changes
      * New element: dvddemux
      * New element: kiosrc, a KIO-slaves source
      * Various memleak and buffer overflow fixes

Bugs fixed since 0.7.6:
                                                                                
      * 126999 : [API]: "gstreamer-libs-0.7.pc" should be renamed
      * 129299 : complied errors in alsa-lib-1.0.0-0.rc2
      * 131270 : pkg-config-ification patch (alsa, esd, shout2, ogg, speex, .
      * 135921 : speexenc support won't compile with 1.1.x
      * 136590 : mod plugins doesn't work atm
      * 137044 : GConf schemas unreadable

Changes since 0.7.5:

      * uses 0.8 as the major/minor number
      * dist fixes for generated files
      * MPEG video playback fixed
      * error call fixes
      * videodrop fixes
      * alsa oss emulation mixer fixes
      * audioconvert fixes
      * gconf versioning fixes
      * mad xing header fixes
      * vorbisdec fixes
      * mad leak and stream reporting fixes
      * media-info fixed
      * buffer leak fixes
      * osssink timing fixes
      * NAS fixes
      * cdparanoia error

Bugs fixed since 0.7.5:
                                                                                
      * 114560 : rfc2250enc produces empty buffers
      * 122279 : goom's first timestamp is broken
      * 131128 : aasink and sdlvideosink are broken
      * 133541 : int2float and int2floatnew conflict should be resolved
      * 133783 : remove deprecated plugins
      * 135597 : make gstosselement properly deal with symlinks
      * 136334 : udpsrc pads / caps error
                                                                                
Changes since 0.7.4: 
    
      * Compatible with gstreamer 0.7.5
      * ffmpeg plugin moved to gst-ffmpeg module
      * DV fixes
      * mikmod fixes
      * OSX build fixes
      * jpeg fixes
      * gdk_pixbuf fixes
      * automake 1.8 underquotedness fixes
      * rfb server/port addition
      * colorspace fixes
      * liboil usage in videofilter and videotestsrc
      * better LADSPA classification
      * ALSA xrun recovery fixes
      * switch fixes
      * xvimagesink fixes
      * moved out MAS sink
      * experimental xine lib plugin
      * intfloat and oneton removed in favour of audioconvert and interleave
      * only export gst_* from plugins
      * lame tag writing fixed
      * added reporting of codecs used
      * version gconf schemas and install locations
      * qtdemux fixes
      * gamma correction fixes

Bugs fixed since 0.7.4:
    
      * 129740 : MP4/M4A files not recognized properly
      * 130507 : Silence/sine don't have a sync property
      * 131050 : avi-demux plays audio, but funky colors as video
      * 131534 : jhbuild build failure with Debian sid
      * 131948 : xoverlay and gstplay sample fails to build - missing include
      * 133219 : missing include in ./gst/effectv/gstedge.c
      * 133316 : gst/vbidec/vbiscreen missing cast
      * 133410 : gstid3tag doesnt handle track-count
      * 133508 : [oggdemux] Can't play files with multiple streams
      * 133528 : sincesrc seems not to register its dparams correctly
      * 133562 : Build breaks on dvdec
      * 133663 : ext/ladspa categorises all plugins as Filter/Effect
      * 133886 : libtool error while compiling alsamixer plug-in
      * 134255 : vbidec won't compile
      * 134318 : GConf schemas should be in versioned files, and install in v
      * 134322 : gst/intfloat/gstint2float.c forgets to include "inttypes.h"
      * 134612 : ext/gdk_pixbuf/Makefile: error in target install-loaderLTLIB
      * 134750 : Problem building gst-plugins on Solaris
      * 134894 : vorbisdec signals tags with bitrate < 1 (ie not set)
      * 135038 : port gst-shorten to the new caps system
      * 135042 : fix tag writing in lame
      * 135116 : gstflacenc.c fails to build in NetBSD
