This is GStreamer Ugly Plugins 1.0.3

Changes since 1.0.2:

      * cdio: try to handle CD-TEXT in non-UTF8 encodings
      * xingmux, siddec, dvdlpcmdec and dvdsubdec fixes

Bugs fixed since 1.0.2:

      * 686931 : siddec does not reset total_bytes when state is set to stopped
      * 687192 : dvdsubdec: allocates buffer 4 times the size needed
      * 687927 : xingmux: doesn't compute the right number of frames

Changes since 1.0.1:

      * dvdreadsrc: correctly set next cell when seeking to sector
      * dvdreadsrc: update dvd event to enhanced approach as used in mpegpsdemux
      * dvdsubparse: send src caps when receiving sink caps

Bugs fixed since 1.0.1:

      * 686748 : Makefile.am: Fix build script typo for generating the Android.mk file

Changes since 1.0.0:

      * x264enc: encoder latency fixes
      * mpeg2dec: ignore transient decoding errors

Bugs fixed since 1.0.0:
     
      * 685107 : Unexpected error return from mpeg2dec

New features in 1.0.0:

      * Parallel installability with 0.10.x series
      * See release notes for more details
