+=== release 0.10.25 ===
+
+2010-09-02 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * configure.ac:
+ releasing 0.10.25, "Woe to You Oh Earth and Sea"
+
+2010-09-02 23:12:48 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/plugins/gst-plugins-good-plugins.hierarchy:
+ * docs/plugins/inspect/plugin-1394.xml:
+ * docs/plugins/inspect/plugin-aasink.xml:
+ * docs/plugins/inspect/plugin-alaw.xml:
+ * docs/plugins/inspect/plugin-alpha.xml:
+ * docs/plugins/inspect/plugin-alphacolor.xml:
+ * docs/plugins/inspect/plugin-annodex.xml:
+ * docs/plugins/inspect/plugin-apetag.xml:
+ * docs/plugins/inspect/plugin-audiofx.xml:
+ * docs/plugins/inspect/plugin-auparse.xml:
+ * docs/plugins/inspect/plugin-autodetect.xml:
+ * docs/plugins/inspect/plugin-avi.xml:
+ * docs/plugins/inspect/plugin-cacasink.xml:
+ * docs/plugins/inspect/plugin-cairo.xml:
+ * docs/plugins/inspect/plugin-cutter.xml:
+ * docs/plugins/inspect/plugin-debug.xml:
+ * docs/plugins/inspect/plugin-deinterlace.xml:
+ * docs/plugins/inspect/plugin-dv.xml:
+ * docs/plugins/inspect/plugin-efence.xml:
+ * docs/plugins/inspect/plugin-effectv.xml:
+ * docs/plugins/inspect/plugin-equalizer.xml:
+ * docs/plugins/inspect/plugin-esdsink.xml:
+ * docs/plugins/inspect/plugin-flac.xml:
+ * docs/plugins/inspect/plugin-flv.xml:
+ * docs/plugins/inspect/plugin-flxdec.xml:
+ * docs/plugins/inspect/plugin-gconfelements.xml:
+ * docs/plugins/inspect/plugin-gdkpixbuf.xml:
+ * docs/plugins/inspect/plugin-goom.xml:
+ * docs/plugins/inspect/plugin-goom2k1.xml:
+ * docs/plugins/inspect/plugin-gstrtpmanager.xml:
+ * docs/plugins/inspect/plugin-halelements.xml:
+ * docs/plugins/inspect/plugin-icydemux.xml:
+ * docs/plugins/inspect/plugin-id3demux.xml:
+ * docs/plugins/inspect/plugin-imagefreeze.xml:
+ * docs/plugins/inspect/plugin-interleave.xml:
+ * docs/plugins/inspect/plugin-jpeg.xml:
+ * docs/plugins/inspect/plugin-level.xml:
+ * docs/plugins/inspect/plugin-matroska.xml:
+ * docs/plugins/inspect/plugin-mulaw.xml:
+ * docs/plugins/inspect/plugin-multifile.xml:
+ * docs/plugins/inspect/plugin-multipart.xml:
+ * docs/plugins/inspect/plugin-navigationtest.xml:
+ * docs/plugins/inspect/plugin-oss4.xml:
+ * docs/plugins/inspect/plugin-ossaudio.xml:
+ * docs/plugins/inspect/plugin-png.xml:
+ * docs/plugins/inspect/plugin-pulseaudio.xml:
+ * docs/plugins/inspect/plugin-quicktime.xml:
+ * docs/plugins/inspect/plugin-replaygain.xml:
+ * docs/plugins/inspect/plugin-rtp.xml:
+ * docs/plugins/inspect/plugin-rtsp.xml:
+ * docs/plugins/inspect/plugin-shapewipe.xml:
+ * docs/plugins/inspect/plugin-shout2send.xml:
+ * docs/plugins/inspect/plugin-smpte.xml:
+ * docs/plugins/inspect/plugin-soup.xml:
+ * docs/plugins/inspect/plugin-spectrum.xml:
+ * docs/plugins/inspect/plugin-speex.xml:
+ * docs/plugins/inspect/plugin-taglib.xml:
+ * docs/plugins/inspect/plugin-udp.xml:
+ * docs/plugins/inspect/plugin-video4linux2.xml:
+ * docs/plugins/inspect/plugin-videobox.xml:
+ * docs/plugins/inspect/plugin-videocrop.xml:
+ * docs/plugins/inspect/plugin-videofilter.xml:
+ * docs/plugins/inspect/plugin-videomixer.xml:
+ * docs/plugins/inspect/plugin-wavenc.xml:
+ * docs/plugins/inspect/plugin-wavpack.xml:
+ * docs/plugins/inspect/plugin-wavparse.xml:
+ * docs/plugins/inspect/plugin-ximagesrc.xml:
+ * docs/plugins/inspect/plugin-y4menc.xml:
+ docs: update docs for release
+
+2010-09-02 23:07:36 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * po/LINGUAS:
+ * po/es.po:
+ * po/gl.po:
+ * po/lt.po:
+ * po/nl.po:
+ * po/ro.po:
+ * po/sv.po:
+ po: update translations
+
+2010-08-25 19:01:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * configure.ac:
+ * po/af.po:
+ * po/az.po:
+ * po/bg.po:
+ * po/ca.po:
+ * po/cs.po:
+ * po/da.po:
+ * po/de.po:
+ * po/el.po:
+ * po/en_GB.po:
+ * po/es.po:
+ * po/eu.po:
+ * po/fi.po:
+ * po/fr.po:
+ * po/hu.po:
+ * po/id.po:
+ * po/it.po:
+ * po/ja.po:
+ * po/lt.po:
+ * po/lv.po:
+ * po/mt.po:
+ * po/nb.po:
+ * po/nl.po:
+ * po/or.po:
+ * po/pl.po:
+ * po/pt_BR.po:
+ * po/ru.po:
+ * po/sk.po:
+ * po/sl.po:
+ * po/sq.po:
+ * po/sr.po:
+ * po/sv.po:
+ * po/tr.po:
+ * po/uk.po:
+ * po/vi.po:
+ * po/zh_CN.po:
+ * po/zh_HK.po:
+ * po/zh_TW.po:
+ 0.10.24.5 pre-release
+
+2010-08-22 21:15:07 -0700 David Schleef <ds@schleef.org>
+
+ * gst/deinterlace/gstdeinterlace.c:
+ deinterlace: use separate buffer metadata for fields
+ Call gst_buffer_make_metadata_writable() on buffers that are
+ duplicated into fields. Fixes #627689.
+
+2010-08-21 21:41:36 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * configure.ac:
+ * gst/deinterlace/tvtime-dist.c:
+ * gst/deinterlace/tvtime-dist.h:
+ * gst/videobox/gstvideoboxorc-dist.c:
+ * gst/videobox/gstvideoboxorc-dist.h:
+ * gst/videomixer/blendorc-dist.c:
+ * gst/videomixer/blendorc-dist.h:
+ * po/af.po:
+ * po/az.po:
+ * po/bg.po:
+ * po/ca.po:
+ * po/cs.po:
+ * po/da.po:
+ * po/de.po:
+ * po/el.po:
+ * po/en_GB.po:
+ * po/es.po:
+ * po/eu.po:
+ * po/fi.po:
+ * po/fr.po:
+ * po/hu.po:
+ * po/id.po:
+ * po/it.po:
+ * po/ja.po:
+ * po/lt.po:
+ * po/lv.po:
+ * po/mt.po:
+ * po/nb.po:
+ * po/nl.po:
+ * po/or.po:
+ * po/pl.po:
+ * po/pt_BR.po:
+ * po/ru.po:
+ * po/sk.po:
+ * po/sl.po:
+ * po/sq.po:
+ * po/sr.po:
+ * po/sv.po:
+ * po/tr.po:
+ * po/uk.po:
+ * po/vi.po:
+ * po/zh_CN.po:
+ * po/zh_HK.po:
+ * po/zh_TW.po:
+ 0.10.24.4 pre-release
+
+2010-08-19 18:30:05 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * ext/jpeg/gstjpegdec.c:
+ jpegdec: Prevent crash when reading image with problems
+ Check if we have data on the adapter and fail if not.
+ Fixes #627413
+
+2010-08-13 17:24:01 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * common:
+ Automatic update of common submodule
+ From 3e8db1d to ec60217
+
+2010-08-11 22:20:25 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/imagefreeze/gstimagefreeze.c:
+ imagefreeze: Send close segments when seeking only for non-flushing seeks and if we already sent a newsegment event
+ Fixes bug #626619.
+
+2010-08-11 16:50:42 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * configure.ac:
+ * docs/plugins/inspect/plugin-1394.xml:
+ * docs/plugins/inspect/plugin-aasink.xml:
+ * docs/plugins/inspect/plugin-alaw.xml:
+ * docs/plugins/inspect/plugin-alpha.xml:
+ * docs/plugins/inspect/plugin-alphacolor.xml:
+ * docs/plugins/inspect/plugin-annodex.xml:
+ * docs/plugins/inspect/plugin-apetag.xml:
+ * docs/plugins/inspect/plugin-audiofx.xml:
+ * docs/plugins/inspect/plugin-auparse.xml:
+ * docs/plugins/inspect/plugin-autodetect.xml:
+ * docs/plugins/inspect/plugin-avi.xml:
+ * docs/plugins/inspect/plugin-cacasink.xml:
+ * docs/plugins/inspect/plugin-cairo.xml:
+ * docs/plugins/inspect/plugin-cutter.xml:
+ * docs/plugins/inspect/plugin-debug.xml:
+ * docs/plugins/inspect/plugin-deinterlace.xml:
+ * docs/plugins/inspect/plugin-dv.xml:
+ * docs/plugins/inspect/plugin-efence.xml:
+ * docs/plugins/inspect/plugin-effectv.xml:
+ * docs/plugins/inspect/plugin-equalizer.xml:
+ * docs/plugins/inspect/plugin-esdsink.xml:
+ * docs/plugins/inspect/plugin-flac.xml:
+ * docs/plugins/inspect/plugin-flv.xml:
+ * docs/plugins/inspect/plugin-flxdec.xml:
+ * docs/plugins/inspect/plugin-gconfelements.xml:
+ * docs/plugins/inspect/plugin-gdkpixbuf.xml:
+ * docs/plugins/inspect/plugin-goom.xml:
+ * docs/plugins/inspect/plugin-goom2k1.xml:
+ * docs/plugins/inspect/plugin-gstrtpmanager.xml:
+ * docs/plugins/inspect/plugin-halelements.xml:
+ * docs/plugins/inspect/plugin-icydemux.xml:
+ * docs/plugins/inspect/plugin-id3demux.xml:
+ * docs/plugins/inspect/plugin-imagefreeze.xml:
+ * docs/plugins/inspect/plugin-interleave.xml:
+ * docs/plugins/inspect/plugin-jpeg.xml:
+ * docs/plugins/inspect/plugin-level.xml:
+ * docs/plugins/inspect/plugin-matroska.xml:
+ * docs/plugins/inspect/plugin-mulaw.xml:
+ * docs/plugins/inspect/plugin-multifile.xml:
+ * docs/plugins/inspect/plugin-multipart.xml:
+ * docs/plugins/inspect/plugin-navigationtest.xml:
+ * docs/plugins/inspect/plugin-oss4.xml:
+ * docs/plugins/inspect/plugin-ossaudio.xml:
+ * docs/plugins/inspect/plugin-png.xml:
+ * docs/plugins/inspect/plugin-pulseaudio.xml:
+ * docs/plugins/inspect/plugin-quicktime.xml:
+ * docs/plugins/inspect/plugin-replaygain.xml:
+ * docs/plugins/inspect/plugin-rtp.xml:
+ * docs/plugins/inspect/plugin-rtsp.xml:
+ * docs/plugins/inspect/plugin-shapewipe.xml:
+ * docs/plugins/inspect/plugin-shout2send.xml:
+ * docs/plugins/inspect/plugin-smpte.xml:
+ * docs/plugins/inspect/plugin-soup.xml:
+ * docs/plugins/inspect/plugin-spectrum.xml:
+ * docs/plugins/inspect/plugin-speex.xml:
+ * docs/plugins/inspect/plugin-taglib.xml:
+ * docs/plugins/inspect/plugin-udp.xml:
+ * docs/plugins/inspect/plugin-video4linux2.xml:
+ * docs/plugins/inspect/plugin-videobox.xml:
+ * docs/plugins/inspect/plugin-videocrop.xml:
+ * docs/plugins/inspect/plugin-videofilter.xml:
+ * docs/plugins/inspect/plugin-videomixer.xml:
+ * docs/plugins/inspect/plugin-wavenc.xml:
+ * docs/plugins/inspect/plugin-wavpack.xml:
+ * docs/plugins/inspect/plugin-wavparse.xml:
+ * docs/plugins/inspect/plugin-ximagesrc.xml:
+ * docs/plugins/inspect/plugin-y4menc.xml:
+ * win32/common/config.h:
+ * win32/common/gstrtpbin-marshal.c:
+ * win32/common/gstudp-enumtypes.c:
+ * win32/common/gstudp-enumtypes.h:
+ * win32/common/gstudp-marshal.c:
+ 0.10.24.3 pre-release
+
+2010-08-11 11:17:18 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/qtdemux/qtdemux.c:
+ qtdemux: prevent reading past avc1 atom when parsing
+ ... when one of the subatoms has a large/invalid size.
+ Fixes #626609.
+
+2010-08-10 23:37:23 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * configure.ac:
+ * docs/plugins/gst-plugins-good-plugins.args:
+ * docs/plugins/gst-plugins-good-plugins.hierarchy:
+ * docs/plugins/gst-plugins-good-plugins.interfaces:
+ * docs/plugins/inspect/plugin-1394.xml:
+ * docs/plugins/inspect/plugin-aasink.xml:
+ * docs/plugins/inspect/plugin-alaw.xml:
+ * docs/plugins/inspect/plugin-alpha.xml:
+ * docs/plugins/inspect/plugin-alphacolor.xml:
+ * docs/plugins/inspect/plugin-annodex.xml:
+ * docs/plugins/inspect/plugin-apetag.xml:
+ * docs/plugins/inspect/plugin-audiofx.xml:
+ * docs/plugins/inspect/plugin-auparse.xml:
+ * docs/plugins/inspect/plugin-autodetect.xml:
+ * docs/plugins/inspect/plugin-avi.xml:
+ * docs/plugins/inspect/plugin-cacasink.xml:
+ * docs/plugins/inspect/plugin-cairo.xml:
+ * docs/plugins/inspect/plugin-cutter.xml:
+ * docs/plugins/inspect/plugin-debug.xml:
+ * docs/plugins/inspect/plugin-deinterlace.xml:
+ * docs/plugins/inspect/plugin-dv.xml:
+ * docs/plugins/inspect/plugin-efence.xml:
+ * docs/plugins/inspect/plugin-effectv.xml:
+ * docs/plugins/inspect/plugin-equalizer.xml:
+ * docs/plugins/inspect/plugin-esdsink.xml:
+ * docs/plugins/inspect/plugin-flac.xml:
+ * docs/plugins/inspect/plugin-flv.xml:
+ * docs/plugins/inspect/plugin-flxdec.xml:
+ * docs/plugins/inspect/plugin-gconfelements.xml:
+ * docs/plugins/inspect/plugin-gdkpixbuf.xml:
+ * docs/plugins/inspect/plugin-goom.xml:
+ * docs/plugins/inspect/plugin-goom2k1.xml:
+ * docs/plugins/inspect/plugin-gstrtpmanager.xml:
+ * docs/plugins/inspect/plugin-halelements.xml:
+ * docs/plugins/inspect/plugin-icydemux.xml:
+ * docs/plugins/inspect/plugin-id3demux.xml:
+ * docs/plugins/inspect/plugin-imagefreeze.xml:
+ * docs/plugins/inspect/plugin-interleave.xml:
+ * docs/plugins/inspect/plugin-jpeg.xml:
+ * docs/plugins/inspect/plugin-level.xml:
+ * docs/plugins/inspect/plugin-matroska.xml:
+ * docs/plugins/inspect/plugin-mulaw.xml:
+ * docs/plugins/inspect/plugin-multifile.xml:
+ * docs/plugins/inspect/plugin-multipart.xml:
+ * docs/plugins/inspect/plugin-navigationtest.xml:
+ * docs/plugins/inspect/plugin-oss4.xml:
+ * docs/plugins/inspect/plugin-ossaudio.xml:
+ * docs/plugins/inspect/plugin-png.xml:
+ * docs/plugins/inspect/plugin-pulseaudio.xml:
+ * docs/plugins/inspect/plugin-quicktime.xml:
+ * docs/plugins/inspect/plugin-replaygain.xml:
+ * docs/plugins/inspect/plugin-rtp.xml:
+ * docs/plugins/inspect/plugin-rtsp.xml:
+ * docs/plugins/inspect/plugin-shapewipe.xml:
+ * docs/plugins/inspect/plugin-shout2send.xml:
+ * docs/plugins/inspect/plugin-smpte.xml:
+ * docs/plugins/inspect/plugin-soup.xml:
+ * docs/plugins/inspect/plugin-spectrum.xml:
+ * docs/plugins/inspect/plugin-speex.xml:
+ * docs/plugins/inspect/plugin-taglib.xml:
+ * docs/plugins/inspect/plugin-udp.xml:
+ * docs/plugins/inspect/plugin-video4linux2.xml:
+ * docs/plugins/inspect/plugin-videobox.xml:
+ * docs/plugins/inspect/plugin-videocrop.xml:
+ * docs/plugins/inspect/plugin-videofilter.xml:
+ * docs/plugins/inspect/plugin-videomixer.xml:
+ * docs/plugins/inspect/plugin-wavenc.xml:
+ * docs/plugins/inspect/plugin-wavpack.xml:
+ * docs/plugins/inspect/plugin-wavparse.xml:
+ * docs/plugins/inspect/plugin-ximagesrc.xml:
+ * docs/plugins/inspect/plugin-y4menc.xml:
+ * win32/common/config.h:
+ 0.10.24.2 pre-release
+
+2010-08-10 10:57:45 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * common:
+ Automatic update of common submodule
+ From bd2054b to 3e8db1d
+
+2010-08-09 00:36:36 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/pulse/pulsesink.c:
+ pulse: fix printf format in some debugging messages
+
+2010-08-08 23:31:42 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * pkgconfig/gstreamer-plugins-good-uninstalled.pc.in:
+ pkgconfig: set pluginsdir to top-level builddir without the pkgconfig/.. bits
+ Removes clutter in plugin dir paths. This is only used to find the -good
+ plugins for unit tests of ugly/bad/ffmpeg/etc. in an uninstalled setup.
+
+2010-08-06 20:04:59 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2src: also log pixel formats in sorted order
+
+2010-08-06 18:07:46 +0100 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: sort formats in the right order so that non-emulated formats are prefered
+ The format list should be sorted from high ranks to low ranks. In the GSList
+ sorting function this means the compare needs to return a positive value if
+ format a has a lower rank than format b.
+ Among other things this fixes v4l2src to prefer non-emulated formats
+ to emulated formats when built against libv4l.
+
+2010-08-06 19:24:06 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/videomixer/videomixer.c:
+ videomixer: Fix pipeline in the documentation
+ Make sure that we have the same color format on all streams, i.e. AYUV
+ Fixes bug #625452.
+
+2010-08-05 13:56:44 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * common:
+ Automatic update of common submodule
+ From a519571 to bd2054b
+
+2010-06-14 19:58:11 +1000 Jonathan Matthew <jonathan@d14n.org>
+
+ * ext/taglib/gstid3v2mux.cc:
+ * tests/check/elements/id3v2mux.c:
+ id3v2mux: write beats-per-minute tag using TBPM frame
+ https://bugzilla.gnome.org/show_bug.cgi?id=621520
+
+2010-07-25 11:47:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/videomixer/blend.c:
+ * gst/videomixer/videomixer.c:
+ * gst/videomixer/videomixer.h:
+ videomixer: Move debug categories into the source files and add debug category for the blend functions
+
+2010-08-04 19:25:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * configure.ac:
+ configure: Check if the compiler supports ISO C89 or C99 and which parameters are required
+ This first checks what is required for ISO C99 support and sets the relevant
+ compiler parameters and if no C99 compiler is found, it checks for a
+ C89 compiler. This enables us to check for and use C89/C99 functions
+ that gcc hides from us without the correct compiler parameters.
+
+2010-07-15 10:10:31 +0200 Philippe Normand <pnormand@igalia.com>
+
+ * ext/pulse/pulsesink.c:
+ pulsesink: use G_TYPE_DEFINE to define ring buffer type
+ The existing get_type() implementation is racy, and the
+ g_type_class_ref() workaround didn't actually work because
+ it was in the wrong function. Since class creation in GObject
+ is thread-safe these days (since 2.16), the class_ref workaround
+ is no longer needed and it is sufficient to ensure the _get_type()
+ function is thread-safe, which G_TYPE_DEFINE does.
+ https://bugzilla.gnome.org/show_bug.cgi?id=624338
+
+2010-08-04 15:20:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/pulse/pulsesink.c:
+ pulsesink: Post CLOCK-LOST/CLOCK-PROVIDE when going to/from READY
+ Otherwise the clocks are redistributed every time the pipeline
+ goes to PAUSED, which is quite expensive.
+
+2010-07-12 12:35:15 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtp/gstrtpmp4gpay.c:
+ * gst/rtp/gstrtpmp4gpay.h:
+ rtpmp4gpay: implement perfect timestamps
+ Use bitreader for parsing the config string
+ Reset state variables when going to READY
+ Parse frame length and use it to keep track of the rtptimestamps
+
+2010-07-09 14:07:49 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtp/gstrtph263pdepay.c:
+ rtph263pdepay: allow more clock-rates as input
+ Although the spec says that the clock-rate should always be 90000, some rtsp
+ servers send different clock-rates so we must accept then in order to handle
+ those streams too.
+
+2010-07-06 19:02:14 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtp/gstrtpL16depay.c:
+ L16depay: default to 1 channel
+ When we can't find any channel or encoding-params on the caps for dynamic
+ payload types, set the default number of channels to 1, as the spec says we
+ should.
+ See #623209
+
+2010-07-06 18:22:24 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: don't reuse udp sockets
+ Don't reuse sockets but make the udpsrc element fail the state change when the
+ socket is already in use. If we don't prevent reuse, we might end up using the same
+ port for different streams in some cases.
+ Fixes #622017
+
+2010-07-06 18:11:21 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/udp/gstudpsrc.c:
+ * gst/udp/gstudpsrc.h:
+ udpsrc: add property to enable port reuse
+
+2010-07-05 10:23:37 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtp/gstrtpL16depay.c:
+ L16depay: use encoding-params for the channels
+ When parsing the number of channels, use the encoding-params property from the
+ RTP caps because that is where we can find the channels according to the spec.
+ Fall back to the channels property in the caps when needed.
+ Fixes #623209
+
+2010-06-29 10:46:41 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: improve error and warning message
+ Improve error and warning message.
+ Fixes #622577
+
+2010-08-02 23:15:56 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * tests/examples/spectrum/demo-audiotest.c:
+ * tests/examples/spectrum/demo-osssrc.c:
+ examples: no need to set the color for each frq-band
+
+2010-08-02 12:56:29 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/rtp/gstrtpg729pay.c:
+ * gst/rtp/gstrtpg729pay.h:
+ rtpg729pay: avoid basertppayload perfect-rtptime mode
+ G729 packets may only occur intermittently (e.g. cn packets), and as such
+ do not allow for perfect-rtptime calculating rtp times based on frame or byte
+ count. In particular, do not use rtp audio base payloader as base class, but
+ rather base payloader directly.
+
+2010-08-02 12:48:02 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/rtp/gstrtph264pay.c:
+ rtph264pay: fix element leak
+
+2010-08-02 12:46:41 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/rtp/gstrtpmp4vdepay.c:
+ rtpmp4vdepay: fix buffer leak
+
+2010-08-02 12:46:20 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * tests/check/elements/rtp-payloading.c:
+ tests: rtp payloading: fix pad leak
+
+2010-07-29 17:18:11 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/avi/gstavidemux.c:
+ avidemux: push mode; use proper movi offset for movi based index
+ Fixes #623357.
+
+2010-07-29 10:00:15 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst/qtdemux/qtdemux.c:
+ * gst/qtdemux/qtdemux.h:
+ qtdemux: Correctly parse mvhd atoms
+ Parse mvhd data according to its version to avoid failing
+ on valid files.
+
+2010-07-28 12:21:41 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst/qtdemux/qtdemux.c:
+ qtdemux: Fix the max/avg in btrt atom reading
+ According to ISO media base format, the max bitrate is the
+ first one, and the avg comes next.
+
+2010-07-27 15:58:02 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: proper handling of streaming upstream without duration
+ Fixes #625371.
+
+2010-07-26 18:33:09 +0200 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: initialize some variables to fix compiler warnings on OSX build bot
+
+2010-07-26 18:15:25 +0200 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/pulse/pulsesink.c:
+ pulsesink: correctly check what version of gst-plugins-base we're compiling against
+ We need to check the gst-plugins-base version, not the core version
+ (even if both should be the same in any sane setup).
+
+2010-07-26 17:45:42 +0200 Arnaud Vrac <rawoul at gmail.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ * gst/rtsp/gstrtspsrc.h:
+ rtspsrc: add port-range property to rtspsrc
+ To support setups with firewall/ipsec, it is useful for an rtsp client to be
+ able to set the range of ports that can be used for rtp/rtcp reception.
+ Allows this by adding a "port-range" property to the rtspsrc element.
+ Fixes #625153
+
+2010-07-26 13:38:31 +0200 Andoni Morales Alastruey <amorales@flumotion.com>
+
+ * gst/qtdemux/qtdemux.c:
+ qtdemux: set the pixel-aspect-ratio field also for par=1/1
+ https://bugzilla.gnome.org/show_bug.cgi?id=625302
+
+2010-07-26 15:31:16 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: fix memory leak in server request reply
+ The RTSP server rtspsrc is communicating with, sends a GET_PARAMETER request
+ periodically as a ping. The code in gst_rtspsrc_handle_request forms an OK
+ response and sends, but doesn't call gst_rtsp_message_unset to free the memory
+ after sending the response. This results in a constant slow memory leak.
+ Fixes #624770
+
+2010-07-24 22:39:54 +0100 Zaheer Abbas Merali <zaheerabbas@merali.org>
+
+ * gst/debugutils/cpureport.c:
+ cpureport: remove bogus docs
+
+2010-07-24 22:37:11 +0100 Zaheer Abbas Merali <zaheerabbas@merali.org>
+
+ * gst/debugutils/Makefile.am:
+ * gst/debugutils/cpureport.c:
+ * gst/debugutils/cpureport.h:
+ * gst/debugutils/gstdebug.c:
+ debugutils: new element cpureport
+ cpureport posts bus messages after every buffer received of cpu used, system
+ clock time, buffer time
+
+2010-07-24 10:29:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/examples/equalizer/demo.c:
+ * tests/examples/spectrum/demo-audiotest.c:
+ * tests/examples/spectrum/demo-osssrc.c:
+ examples: Destroy the cairo context after usage
+
+2010-07-24 10:21:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * configure.ac:
+ * ext/Makefile.am:
+ * ext/gdk_pixbuf/Makefile.am:
+ * ext/gdk_pixbuf/gstgdkpixbuf.c:
+ * ext/gdk_pixbuf/gstgdkpixbufsink.c:
+ * ext/gdk_pixbuf/pixbufscale.c:
+ Revert "gdkpixbuf: Add a gdkpixbuf3 plugin that uses gdkpixbuf3"
+ This reverts commit b6788153161b4e07fbf3d42a2d8921ea049305d0.
+ There's no gdk-pixbuf3 anymore. gdk-pixbuf was separated from GTK+
+ and will stay at version 2.0 for GTK+ 3.0.
+
+2010-07-24 10:19:37 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/examples/equalizer/demo.c:
+ * tests/examples/spectrum/demo-audiotest.c:
+ * tests/examples/spectrum/demo-osssrc.c:
+ examples: Use cairo instead of to-be-deprecated GDK API
+ Fixes bug #625002.
+
+2010-07-22 16:24:43 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/flac/gstflacdec.c:
+ flacdec: fix event leak
+
+2010-07-22 12:05:26 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/matroska/matroska-demux.c:
+ * gst/matroska/matroska-demux.h:
+ matroskademux: pull mode non-cue seeking
+ That is, in files that have no index (Cue), perform seek by scanning for
+ nearest cluster with timecode before requested position. Scanning is done
+ as a combination of interpolation and sequential scan.
+ Fixes #617368.
+
+2010-07-16 12:46:50 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/matroska/matroska-mux.c:
+ matroskamux: streamable files need no _finish
+ Fixes #624455.
+
+2010-07-22 11:46:35 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/avi/gstavidemux.c:
+ avidemux: push mode; handle 0-size data chunks
+ Fixes #618535.
+
+2010-07-21 08:11:23 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/videomixer/videomixer.c:
+ videomixer: Only reset QoS information and send a NEWSEGMENT event downstream for NEWSEGMENT events on the master pad
+
+2010-07-14 20:31:44 -0700 David Schleef <ds@schleef.org>
+
+ * gst/debugutils/Makefile.am:
+ * gst/debugutils/gstcapsdebug.c:
+ * gst/debugutils/gstcapsdebug.h:
+ * gst/debugutils/gstdebug.c:
+ capsdebug: Add new element
+
+2010-07-20 16:11:25 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/matroska/matroska-mux.c:
+ matroskamux: demote WARNING message to LOG level
+ It's not a warning.
+
+2010-07-19 14:47:32 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * ext/jpeg/gstjpegdec.c:
+ jpegdec: Fix regression on markers parsing
+ Fixes a regression introduced when fixing bug #583047 in
+ commit a391bf52cc3c580c7a0a2316ca52eb66da3b85c1
+ Skip the data when libjpeg asks it to be skipped on
+ one of its callbacks.
+
+2010-07-16 18:04:44 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: add missing argument in debug message
+
+2010-07-16 17:53:55 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/pulse/pulsemixerctrl.c:
+ * ext/pulse/pulsesink.c:
+ * ext/pulse/pulsesrc.c:
+ pulsesink: Only use gst_audio_clock_new() when compiling against newer base
+
+2010-07-09 17:33:55 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/raw1394/gstdv1394src.c:
+ dv1394src: Post clock-provide and clock-lost messages when going from/to PLAYING
+ In PAUSED and below the clock is not working.
+
+2010-07-04 16:57:55 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/gconf/gstswitchsink.c:
+ * ext/gconf/gstswitchsink.h:
+ * ext/gconf/gstswitchsrc.c:
+ * ext/gconf/gstswitchsrc.h:
+ gconf: Fix ref handling of new child elements and minor cleanup
+
+2010-07-04 09:45:52 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/gconf/gstgconfvideosrc.c:
+ gconfvideosrc: Use correct GConf key
+
+2010-07-03 14:16:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/gconf/gstgconfaudiosrc.c:
+ * ext/gconf/gstgconfaudiosrc.h:
+ gconf: Port gconfaudiosrc to GstSwitchSrc
+
+2010-07-03 14:12:12 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/gconf/gstgconfvideosrc.c:
+ * ext/gconf/gstgconfvideosrc.h:
+ gconf: Port gconfvideosrc to GstSwitchSrc
+
+2010-07-03 14:11:55 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/gconf/Makefile.am:
+ * ext/gconf/gstswitchsrc.c:
+ * ext/gconf/gstswitchsrc.h:
+ gconf: Add GstSwitchSrc base class
+
+2010-07-03 13:56:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/gconf/gstswitchsink.c:
+ gconf: Create the ghostpad of the switchsink from the template
+
+2010-07-07 10:10:52 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/pulse/pulsesink.c:
+ pulsesink: Post clock-provide/clock-lost when going to/from PAUSED
+ Also use gst_audio_clock_new_full() to prevent crashes when the
+ clock is used after the element was destroyed.
+
+2010-07-15 11:49:03 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: remove bogus UNLOCK
+
+2010-07-13 12:34:44 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/qtdemux/qtdemux.c:
+ qtdemux: also calculate PAR using track width and height for QT files
+ (... as opposed to only for ISO style files).
+ Fixes #624173.
+
+2010-07-12 17:29:12 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: handle bogus files storing ADTS AAC data
+
+2010-07-09 16:57:33 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/matroska/matroska-demux.c:
+ matroskademux: do not error out on a block with unknown tracknumber
+
+2010-07-08 18:57:21 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/qtdemux/qtdemux.c:
+ qtdemux: do not align reverse playback reference stream twice
+ Timestamp rounding issues could lead to going backwards 2 keyframe periods
+ (rather than only 1). While this is not necessarily a problem, it might
+ potentially place additional (buffering) load on downstream and could be
+ avoided (because We Can).
+ Fixes #623629.
+
+2010-07-08 16:07:16 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/qtdemux/qtdemux.c:
+ qtdemux: convert some more mov format timestamp to gst time
+
+2010-07-07 14:16:59 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/avi/gstavidemux.c:
+ avidemux: additional verification heuristics for VBR audio stream
+ Check for and override some header field(s) for reasonable values, according
+ to later expected use in calculations.
+
+2010-07-14 15:21:21 +0200 Alessandro Decina <alessandro.d@gmail.com>
+
+ * gst/videofilter/gstvideobalance.c:
+ videobalance: Fix wrong lock order that could lead to a deadlock. Fixes #624331.
+
+2010-07-16 11:31:08 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * configure.ac:
+ * docs/plugins/gst-plugins-good-plugins.hierarchy:
+ * docs/plugins/inspect/plugin-1394.xml:
+ * docs/plugins/inspect/plugin-aasink.xml:
+ * docs/plugins/inspect/plugin-alaw.xml:
+ * docs/plugins/inspect/plugin-alpha.xml:
+ * docs/plugins/inspect/plugin-alphacolor.xml:
+ * docs/plugins/inspect/plugin-annodex.xml:
+ * docs/plugins/inspect/plugin-apetag.xml:
+ * docs/plugins/inspect/plugin-audiofx.xml:
+ * docs/plugins/inspect/plugin-auparse.xml:
+ * docs/plugins/inspect/plugin-autodetect.xml:
+ * docs/plugins/inspect/plugin-avi.xml:
+ * docs/plugins/inspect/plugin-cacasink.xml:
+ * docs/plugins/inspect/plugin-cairo.xml:
+ * docs/plugins/inspect/plugin-cutter.xml:
+ * docs/plugins/inspect/plugin-debug.xml:
+ * docs/plugins/inspect/plugin-deinterlace.xml:
+ * docs/plugins/inspect/plugin-dv.xml:
+ * docs/plugins/inspect/plugin-efence.xml:
+ * docs/plugins/inspect/plugin-effectv.xml:
+ * docs/plugins/inspect/plugin-equalizer.xml:
+ * docs/plugins/inspect/plugin-esdsink.xml:
+ * docs/plugins/inspect/plugin-flac.xml:
+ * docs/plugins/inspect/plugin-flv.xml:
+ * docs/plugins/inspect/plugin-flxdec.xml:
+ * docs/plugins/inspect/plugin-gconfelements.xml:
+ * docs/plugins/inspect/plugin-gdkpixbuf.xml:
+ * docs/plugins/inspect/plugin-goom.xml:
+ * docs/plugins/inspect/plugin-goom2k1.xml:
+ * docs/plugins/inspect/plugin-gstrtpmanager.xml:
+ * docs/plugins/inspect/plugin-halelements.xml:
+ * docs/plugins/inspect/plugin-icydemux.xml:
+ * docs/plugins/inspect/plugin-id3demux.xml:
+ * docs/plugins/inspect/plugin-imagefreeze.xml:
+ * docs/plugins/inspect/plugin-interleave.xml:
+ * docs/plugins/inspect/plugin-jpeg.xml:
+ * docs/plugins/inspect/plugin-level.xml:
+ * docs/plugins/inspect/plugin-matroska.xml:
+ * docs/plugins/inspect/plugin-mulaw.xml:
+ * docs/plugins/inspect/plugin-multifile.xml:
+ * docs/plugins/inspect/plugin-multipart.xml:
+ * docs/plugins/inspect/plugin-navigationtest.xml:
+ * docs/plugins/inspect/plugin-oss4.xml:
+ * docs/plugins/inspect/plugin-ossaudio.xml:
+ * docs/plugins/inspect/plugin-png.xml:
+ * docs/plugins/inspect/plugin-pulseaudio.xml:
+ * docs/plugins/inspect/plugin-quicktime.xml:
+ * docs/plugins/inspect/plugin-replaygain.xml:
+ * docs/plugins/inspect/plugin-rtp.xml:
+ * docs/plugins/inspect/plugin-rtsp.xml:
+ * docs/plugins/inspect/plugin-shapewipe.xml:
+ * docs/plugins/inspect/plugin-shout2send.xml:
+ * docs/plugins/inspect/plugin-smpte.xml:
+ * docs/plugins/inspect/plugin-soup.xml:
+ * docs/plugins/inspect/plugin-spectrum.xml:
+ * docs/plugins/inspect/plugin-speex.xml:
+ * docs/plugins/inspect/plugin-taglib.xml:
+ * docs/plugins/inspect/plugin-udp.xml:
+ * docs/plugins/inspect/plugin-video4linux2.xml:
+ * docs/plugins/inspect/plugin-videobox.xml:
+ * docs/plugins/inspect/plugin-videocrop.xml:
+ * docs/plugins/inspect/plugin-videofilter.xml:
+ * docs/plugins/inspect/plugin-videomixer.xml:
+ * docs/plugins/inspect/plugin-wavenc.xml:
+ * docs/plugins/inspect/plugin-wavpack.xml:
+ * docs/plugins/inspect/plugin-wavparse.xml:
+ * docs/plugins/inspect/plugin-ximagesrc.xml:
+ * docs/plugins/inspect/plugin-y4menc.xml:
+ * win32/common/config.h:
+ Back to development
+
=== release 0.10.24 ===
-2010-07-15 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2010-07-15 01:49:04 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
* configure.ac:
- releasing 0.10.24, "Taking Liberties"
+ * docs/plugins/inspect/plugin-1394.xml:
+ * docs/plugins/inspect/plugin-aasink.xml:
+ * docs/plugins/inspect/plugin-alaw.xml:
+ * docs/plugins/inspect/plugin-alpha.xml:
+ * docs/plugins/inspect/plugin-alphacolor.xml:
+ * docs/plugins/inspect/plugin-annodex.xml:
+ * docs/plugins/inspect/plugin-apetag.xml:
+ * docs/plugins/inspect/plugin-audiofx.xml:
+ * docs/plugins/inspect/plugin-auparse.xml:
+ * docs/plugins/inspect/plugin-autodetect.xml:
+ * docs/plugins/inspect/plugin-avi.xml:
+ * docs/plugins/inspect/plugin-cacasink.xml:
+ * docs/plugins/inspect/plugin-cairo.xml:
+ * docs/plugins/inspect/plugin-cutter.xml:
+ * docs/plugins/inspect/plugin-debug.xml:
+ * docs/plugins/inspect/plugin-deinterlace.xml:
+ * docs/plugins/inspect/plugin-dv.xml:
+ * docs/plugins/inspect/plugin-efence.xml:
+ * docs/plugins/inspect/plugin-effectv.xml:
+ * docs/plugins/inspect/plugin-equalizer.xml:
+ * docs/plugins/inspect/plugin-esdsink.xml:
+ * docs/plugins/inspect/plugin-flac.xml:
+ * docs/plugins/inspect/plugin-flv.xml:
+ * docs/plugins/inspect/plugin-flxdec.xml:
+ * docs/plugins/inspect/plugin-gconfelements.xml:
+ * docs/plugins/inspect/plugin-gdkpixbuf.xml:
+ * docs/plugins/inspect/plugin-goom.xml:
+ * docs/plugins/inspect/plugin-goom2k1.xml:
+ * docs/plugins/inspect/plugin-gstrtpmanager.xml:
+ * docs/plugins/inspect/plugin-halelements.xml:
+ * docs/plugins/inspect/plugin-icydemux.xml:
+ * docs/plugins/inspect/plugin-id3demux.xml:
+ * docs/plugins/inspect/plugin-imagefreeze.xml:
+ * docs/plugins/inspect/plugin-interleave.xml:
+ * docs/plugins/inspect/plugin-jpeg.xml:
+ * docs/plugins/inspect/plugin-level.xml:
+ * docs/plugins/inspect/plugin-matroska.xml:
+ * docs/plugins/inspect/plugin-mulaw.xml:
+ * docs/plugins/inspect/plugin-multifile.xml:
+ * docs/plugins/inspect/plugin-multipart.xml:
+ * docs/plugins/inspect/plugin-navigationtest.xml:
+ * docs/plugins/inspect/plugin-oss4.xml:
+ * docs/plugins/inspect/plugin-ossaudio.xml:
+ * docs/plugins/inspect/plugin-png.xml:
+ * docs/plugins/inspect/plugin-pulseaudio.xml:
+ * docs/plugins/inspect/plugin-quicktime.xml:
+ * docs/plugins/inspect/plugin-replaygain.xml:
+ * docs/plugins/inspect/plugin-rtp.xml:
+ * docs/plugins/inspect/plugin-rtsp.xml:
+ * docs/plugins/inspect/plugin-shapewipe.xml:
+ * docs/plugins/inspect/plugin-shout2send.xml:
+ * docs/plugins/inspect/plugin-smpte.xml:
+ * docs/plugins/inspect/plugin-soup.xml:
+ * docs/plugins/inspect/plugin-spectrum.xml:
+ * docs/plugins/inspect/plugin-speex.xml:
+ * docs/plugins/inspect/plugin-taglib.xml:
+ * docs/plugins/inspect/plugin-udp.xml:
+ * docs/plugins/inspect/plugin-video4linux2.xml:
+ * docs/plugins/inspect/plugin-videobox.xml:
+ * docs/plugins/inspect/plugin-videocrop.xml:
+ * docs/plugins/inspect/plugin-videofilter.xml:
+ * docs/plugins/inspect/plugin-videomixer.xml:
+ * docs/plugins/inspect/plugin-wavenc.xml:
+ * docs/plugins/inspect/plugin-wavpack.xml:
+ * docs/plugins/inspect/plugin-wavparse.xml:
+ * docs/plugins/inspect/plugin-ximagesrc.xml:
+ * docs/plugins/inspect/plugin-y4menc.xml:
+ * gst-plugins-good.doap:
+ * win32/common/config.h:
+ Release 0.10.24
2010-07-15 01:35:06 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
-This is GStreamer Good Plug-ins 0.10.24, "Taking Liberties"
+This is GStreamer Good Plug-ins 0.10.25, "Woe to You Oh Earth and Sea"
+
+Changes since 0.10.24:
+
+ * v4l2src: massive performance improvement in many cases
+ * streaming mode fixes for avi and matroska/webm
+ * seeking in matroska and webm files that don't have an index
+ * new cpureport element for debugging
+ * avidemux: improve VBR audio stream handling
+ * avidemux: streaming mode fixes: use proper offset for movi-based index, handle 0-size data chunks
+ * debugutils: new element cpureport, posts "cpu-report" element messages on bus
+ * flacdec, rtspsrc, rtph264pay, rtpmp4vdepay: memory leak fixes
+ * gconfvideosrc: use correct GConf key (ie. not the audiosrc key)
+ * gdkpixbuf: remove gdkpixbuf3 plugin again, gdk-pixbuf was split out of gtk+ and will stay at 2.x
+ * id3v2mux: write beats-per-minute tag using TBPM frame
+ * jpegdec: fix markers parsing regression
+ * matroskademux: do not error out on a block with unknown tracknumber
+ * matroskademux: fix streaming in case where the size in bytes is unknown
+ * matroskademux: handle bogus files storing ADTS AAC data
+ * matroskademux: support seeking in local files even if they don't have an index
+ * matroskamux: don't try to seek back and fix up headers if streamable=TRUE
+ * pulsesink: fix race when creating multiple pulsesinks at the same time
+ * qtdemux: also calculate PAR using track width and height for QT files
+ * qtdemux: fix the max/avg in btrt atom reading
+ * qtdemux: improve reverse playback
+ * qtdemux: parse 64-bit version of mvhd atom as well instead of erroring out
+ * qtdemux: prevent reading past avc1 atom when parsing
+ * rtpg729pay: avoid basertppayload perfect-rtptime mode
+ * rtph263pdepay: allow more clock-rates as input
+ * rtpL16depay: also parse encoding-params for the number of channels
+ * rtpL16depay: default to 1 channel if number of channels not specified
+ * rtpmp4gpay: implement perfect timestamps
+ * rtspsrc: add "port-range" property, useful for setups with firewall/ipsec
+ * rtspsrc: don't reuse udp sockets (avoids odd errors when data from previous streams is received)
+ * udpsrc: add "reuse" property to enable or disable port reuse (enabled by default, but disabled in rtspsrc)
+ * v4l2: sort formats in the right order so that non-emulated formats are prefered
+ * videobalance: fix wrong locking order that could lead to a deadlock
+ * videomixer: only reset QoS information and send a NEWSEGMENT event downstream for NEWSEGMENT events on the master pad
+
+Bugs fixed since 0.10.24:
+
+ * 626463 : [matroskademux] " reading large block of size 14688496 not supported "
+ * 593117 : [avidemux] Support AVF files
+ * 618535 : [avidemux] fails to stream eva_2010_2.22_promo1.avi
+ * 621520 : [id3v2mux] write beats-per-minute tag
+ * 622017 : [GstRtpMP4GDepay] Packet payload was too short.
+ * 622577 : rtspsrc has confusing error messages
+ * 623209 : bug in rtpL16depay
+ * 623357 : avidemux: push mode doesn't work for some http streaming avi files
+ * 623629 : Reverse Playback Issue in QtDemux
+ * 624173 : [qtdemux] qt file with dimension data in tkhd does not get pixel-aspect-ratio in caps
+ * 624331 : videobalance: deadlocks/freezes when changing " brightness " property
+ * 624455 : The matroska muxer seeks even when used with streamable=TRUE
+ * 624770 : rtspsrc: memory leak in gst_rtspsrc_handle_request
+ * 625002 : [examples] Don't use GdkDraw
+ * 625153 : rtspsrc: add property to set client port range
+ * 625302 : [qtdemux] Set the pixel-aspect-ratio field also for par=1/1
+ * 625371 : [matroskademux] critical warnings when playing live webm with progressive download enabled
+ * 625442 : pulsesink: crash - pa_threaded_mainloop_stop is called from the pa thread
+ * 625452 : [videomixer] Pipeline from the docs doesn't work anymore
+ * 626467 : matroskademux: CRITICAL **: file matroska-demux.c: line 578 (gst_matroska_demux_get_length): should not be reached
+ * 626609 : [qtdemux] segfault when parsing avc1 atom
+ * 626619 : [imagefreeze] Incorrect seek behaviour
+ * 627689 : [deinterlace] Broken timestamps
+ * 617368 : [matroska] Implement push-mode seeking and non-cue seeking
Changes since 0.10.23:
-Release notes for GStreamer Good Plug-ins 0.10.24 "Taking Liberties"
+Release notes for GStreamer Good Plug-ins 0.10.25 "Woe to You Oh Earth and Sea"
Features of this release
- * Use Orc (Optimized Inner Loops Runtime Compiler) for SIMD and
- other optimisations, and remove liboil dependency. The main goal
- for this release was to make the transition from liboil to liborc.
- Performance improvements should not be expected and will be the
- focus of future versions. liborc is an optional dependency for
- the time being, to make it possible to test and develop the very
- latest GStreamer versions on systems that don't have orc yet.
- However, without orc slow unoptimised backup code will be used
- for many performance critical code paths. Distributors are urged
- to package and ship the latest version of liborc and compile
- GStreamer modules with --enable-orc. Please do not distribute
- GStreamer packages that are not orc enabled. More information on
- the orc integration can be found in the docs/design/ directory.
-
- * alpha: add "prefer-passthrough" property to allow passthrough mode
- * avidemux: improve audio vbr detection
- * cmmlenc: Remove hack to let oggmux start a new page for every CMML buffer
- * deinterlace: add mmx implementations of greedyh for UYVY; orcify some deinterlacing methods
- * dv1394: fix the internal clock even more
- * flvmux: add "streamable" property
- * flvmux: write duration at the correct position
- * gdkpixbuf: Add a gdkpixbuf3 plugin that uses gdkpixbuf3
- * jpegdec: improved parsing, and better buffer handling that minimises memcpys
- * jpegdec, jpegenc: add grayscale support
- * matroskademux: QoS fixes and improvements; reverse playback improvements
- * matroskademux: handle zero-sized numbers correctly
- * matroskamux: add "streamable" property; set streamheaders on output caps
- * matroskamux: try harder to make sure clusters start with a key frame
- * matroskamux: mark output buffers properly as keyframe or delta unit
- * matroskamux: do some write caching to avoid newsegment events before each output buffer
- * matroskamux: fix some timestamp drift caused by rounding errors
- * pngenc: Support 8 bit grayscale
- * pulsesink: optimize communication with PulseAudio using pa_stream_begin_write
- * pulsesink: Post provide-clock message on the bus if the clock appears/disappears
- * rtph264depay: consider SPS, PPS and IDR as keyframe, all others as DELTA_UNIT
- * rtph264pay: handle short startcodes in the h264 bytestream
- * rtpjitterbuffer: stop buffering and emit EOS at the end of a stream
- * rtpmparobustdepay: add mpa-robust depayloader
- * rtpmp4gdepay: calculate the frame duration correctly
- * rtptheorapay: keep announcing the delivery-method in the capabilities, restores compatibility with older farsight versions again
- * rtspsrc: respect aggregate control attributes; try all ranges from the sdp
- * spectrum: support 24-bit width and arbitrary bit depth
- * udp: make url parsing compatible with VLC syntax
- * udpsrc: fix multicast support on windows
- * v4l2sink: destroy buffer pool when changing state to NULL
- * videobox: fix negotiation for I420/YV12
- * videomixer: don't mix input with different pixel aspect ratios; negotiation fixes
- * wavparse: proper closing segment construction when doing non-flushing seeks
- * wavparse: use typefind functions to check if PCM data contains dts stream
+ * v4l2src: massive performance improvement in many cases
+ * streaming mode fixes for avi and matroska/webm
+ * seeking in matroska and webm files that don't have an index
+ * new cpureport element for debugging
+ * avidemux: improve VBR audio stream handling
+ * avidemux: streaming mode fixes: use proper offset for movi-based index, handle 0-size data chunks
+ * debugutils: new element cpureport, posts "cpu-report" element messages on bus
+ * flacdec, rtspsrc, rtph264pay, rtpmp4vdepay: memory leak fixes
+ * gconfvideosrc: use correct GConf key (ie. not the audiosrc key)
+ * gdkpixbuf: remove gdkpixbuf3 plugin again, gdk-pixbuf was split out of gtk+ and will stay at 2.x
+ * id3v2mux: write beats-per-minute tag using TBPM frame
+ * jpegdec: fix markers parsing regression
+ * matroskademux: do not error out on a block with unknown tracknumber
+ * matroskademux: fix streaming in case where the size in bytes is unknown
+ * matroskademux: handle bogus files storing ADTS AAC data
+ * matroskademux: support seeking in local files even if they don't have an index
+ * matroskamux: don't try to seek back and fix up headers if streamable=TRUE
+ * pulsesink: fix race when creating multiple pulsesinks at the same time
+ * qtdemux: also calculate PAR using track width and height for QT files
+ * qtdemux: fix the max/avg in btrt atom reading
+ * qtdemux: improve reverse playback
+ * qtdemux: parse 64-bit version of mvhd atom as well instead of erroring out
+ * qtdemux: prevent reading past avc1 atom when parsing
+ * rtpg729pay: avoid basertppayload perfect-rtptime mode
+ * rtph263pdepay: allow more clock-rates as input
+ * rtpL16depay: also parse encoding-params for the number of channels
+ * rtpL16depay: default to 1 channel if number of channels not specified
+ * rtpmp4gpay: implement perfect timestamps
+ * rtspsrc: add "port-range" property, useful for setups with firewall/ipsec
+ * rtspsrc: don't reuse udp sockets (avoids odd errors when data from previous streams is received)
+ * udpsrc: add "reuse" property to enable or disable port reuse (enabled by default, but disabled in rtspsrc)
+ * v4l2: sort formats in the right order so that non-emulated formats are prefered
+ * videobalance: fix wrong locking order that could lead to a deadlock
+ * videomixer: only reset QoS information and send a NEWSEGMENT event downstream for NEWSEGMENT events on the master pad
Bugs fixed in this release
- * 619045 : [spectrum] Add support for 24-bit width and all depth combinations
- * 555967 : [oss4] clarify some translation strings
- * 570761 : [goom] crash in plugin_info_init allocating 260kB struct on stack
- * 583047 : [jpegdec] optimise buffer handling when parsing frames
- * 589997 : [rtp] need mpa-robust depayloader for helix-style MP3-DRAFT-00
- * 595978 : [udpsrc] failed to play a multicast stream
- * 597695 : [udpsrc] support VLC-style udp://239.255.11.11:1234 uri with bind address
- * 611117 : [matroskademux] can't handle unknown cluster sizes
- * 613066 : [flvmux] re-enable renamed/fixed is-live property
- * 615461 : dv1394src clock continues to be broken
- * 617339 : pulsesink doesn't make use of pa_stream_begin_write
- * 618530 : [videomixer] Doesn't handle pixel-aspect-ratio correctly
- * 618871 : 1394: remove useless last_time
- * 618982 : [wavparse] wrong closing segment when doing non-flushing seek
- * 619198 : [matroskademux] GstEbmlRead cleanup
- * 619273 : [matroskamux] reduce downstream spam
- * 619293 : [avimux] clean up avi header creation code
- * 619531 : [rtspsrc] embedded asx streams' rtsp server doesn't like gstreamer request
- * 619717 : unit tests fail if older -good plugins are present in system plugin directory
- * 619824 : Use glib for checksumming
- * 619848 : [deinterlace] can't switch properties on running pipeline
- * 620148 : [videomixer] Doesn't negotiate format with downstream
- * 620154 : [rtph264depay] Seeking with RTP payloaders corrupts images sometimes
- * 620162 : [gdkpixbufdec] Bump rank to SECONDARY
- * 620277 : [pulsesink] custom clock is still used after NULL state change
- * 620358 : [matroskademux] Sorenson Squish WebM output seeking issues
- * 620390 : rtph264pay doesn't understand short startcodes
- * 620494 : [rtsp] stuttery audio with some h264/aac streams
- * 620540 : [pulsesink] pa_stream_write() failed: Invalid argument
- * 620591 : rtpceltpay doesn't handle stereo celt audio
- * 620743 : matroskademux: refactor delta unit handling
- * 620929 : Required libraw1394 version is not high enough
- * 621510 : GNOME Goal: Remove deprecated glib symbols
- * 621566 : [pulsesink] since upgrading plugins sound is garbled via Amarok
- * 621723 : v4l2src crashes on PLAYING- > READY- > PLAYING
- * 622498 : [avidemux] Doesn't reset all state when going back to READY
- * 622500 : [v4l2sink] destroy open buffers when changing to NULL
- * 622501 : [videobox] may negotiate input/output format combinations it can't actually handle
- * 622816 : Make demos -DSEAL safe
- * 623103 : matroskamux dispose error
- * 623172 : [jpegdec] leak in unit test
- * 623196 : rtpptdemux: don't send custom downstream event twice
- * 623366 : [qtdemux] strip out bogus tags from XMP
- * 623379 : [flvmux] Writing duration outside the allocated memory area in streaming mode
- * 623585 : jpegdec: fails to skip extra 0xff markers at start
- * 623654 : qtdemux: Fix order of bitrates in 'btrt' atom
- * 619817 : [matroskademux] Reverse playback doesn't work
- * 617512 : [alpha] should work in passthrough in all formats if alpha == 1.0
- * 619485 : matroskademux: skip buffers before a late keyframe (QoS)
- * 413942 : [wavparse] undetected dts-in-wav
+ * 626463 : [matroskademux] " reading large block of size 14688496 not supported "
+ * 593117 : [avidemux] Support AVF files
+ * 618535 : [avidemux] fails to stream eva_2010_2.22_promo1.avi
+ * 621520 : [id3v2mux] write beats-per-minute tag
+ * 622017 : [GstRtpMP4GDepay] Packet payload was too short.
+ * 622577 : rtspsrc has confusing error messages
+ * 623209 : bug in rtpL16depay
+ * 623357 : avidemux: push mode doesn't work for some http streaming avi files
+ * 623629 : Reverse Playback Issue in QtDemux
+ * 624173 : [qtdemux] qt file with dimension data in tkhd does not get pixel-aspect-ratio in caps
+ * 624331 : videobalance: deadlocks/freezes when changing " brightness " property
+ * 624455 : The matroska muxer seeks even when used with streamable=TRUE
+ * 624770 : rtspsrc: memory leak in gst_rtspsrc_handle_request
+ * 625002 : [examples] Don't use GdkDraw
+ * 625153 : rtspsrc: add property to set client port range
+ * 625302 : [qtdemux] Set the pixel-aspect-ratio field also for par=1/1
+ * 625371 : [matroskademux] critical warnings when playing live webm with progressive download enabled
+ * 625442 : pulsesink: crash - pa_threaded_mainloop_stop is called from the pa thread
+ * 625452 : [videomixer] Pipeline from the docs doesn't work anymore
+ * 626467 : matroskademux: CRITICAL **: file matroska-demux.c: line 578 (gst_matroska_demux_get_length): should not be reached
+ * 626609 : [qtdemux] segfault when parsing avc1 atom
+ * 626619 : [imagefreeze] Incorrect seek behaviour
+ * 627689 : [deinterlace] Broken timestamps
+ * 617368 : [matroska] Implement push-mode seeking and non-cue seeking
Download
Contributors to this release
* Alessandro Decina
- * Alexander Kojevnikov
* Andoni Morales Alastruey
- * Andrzej K. Haczewski
- * Arun Raghavan
- * Benjamin Otte
+ * Arnaud Vrac
* David Schleef
- * Edward Hervey
- * Guido Günther
- * Havoc Pennington
- * Julien Moutte
- * Keith Nicholson
- * Marc-André Lureau
+ * Jonathan Matthew
* Mark Nauwelaerts
- * Michael Grzeschik
- * Philip Jägenstedt
- * Pierre-Louis Bossart
+ * Philippe Normand
* Sebastian Dröge
* Sjoerd Simons
* Stefan Kost
* Thiago Santos
- * Thijs Vermeir
* Tim-Philipp Müller
- * Tristan Matthews
* Wim Taymans
- * Xavier Queralt
* Zaheer Abbas Merali
\ No newline at end of file
dnl initialize autoconf
dnl releases only do -Wall, git and prerelease does -Werror too
dnl use a three digit version number for releases, and four for git/pre
-AC_INIT(GStreamer Good Plug-ins, 0.10.24.5,
+AC_INIT(GStreamer Good Plug-ins, 0.10.25,
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
gst-plugins-good)
<release>
<Version>
+ <revision>0.10.25</revision>
+ <branch>0.10</branch>
+ <name>Woe to You Oh Earth and Sea</name>
+ <created>2010-09-02</created>
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-0.10.25.tar.bz2" />
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-0.10.25.tar.gz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>0.10.24</revision>
<branch>0.10</branch>
<name>Taking Liberties</name>
#endif
typedef union
{
- orc_int16 i;
- orc_int8 x2[2];
-} orc_union16;
-typedef union
-{
orc_int32 i;
float f;
- orc_int16 x2[2];
- orc_int8 x4[4];
} orc_union32;
typedef union
{
orc_int64 i;
double f;
- orc_int32 x2[2];
- orc_int16 x4[4];
} orc_union64;
#endif
#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
-#define ORC_MIN_NORMAL (1.1754944909521339405e-38)
-#define ORC_DENORMAL(x) (((x) > -ORC_MIN_NORMAL && (x) < ORC_MIN_NORMAL) ? ((x)<0 ? (-0.0f) : (0.0f)) : (x))
-#define ORC_MINF(a,b) (isnan(a) ? a : isnan(b) ? b : ((a)<(b)) ? (a) : (b))
-#define ORC_MAXF(a,b) (isnan(a) ? a : isnan(b) ? b : ((a)>(b)) ? (a) : (b))
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
/* end Orc C target preamble */
const guint8 * s3, const guint8 * s4, const guint8 * s5, int n)
{
int i;
- orc_int8 *ORC_RESTRICT ptr0;
- const orc_int8 *ORC_RESTRICT ptr4;
- const orc_int8 *ORC_RESTRICT ptr5;
- const orc_int8 *ORC_RESTRICT ptr6;
- const orc_int8 *ORC_RESTRICT ptr7;
- const orc_int8 *ORC_RESTRICT ptr8;
- orc_int8 var35;
- orc_int8 var36;
- orc_int8 var37;
- orc_int8 var38;
- orc_int8 var39;
- orc_union16 var40;
- orc_int8 var41;
- orc_union16 var42;
- orc_union16 var43;
- orc_union16 var44;
- orc_union16 var45;
- orc_union16 var46;
- orc_union16 var47;
- orc_union16 var48;
- orc_union16 var49;
- orc_union16 var50;
- orc_union16 var51;
- orc_union16 var52;
- orc_union16 var53;
- orc_union16 var54;
+ orc_int8 var0;
+ orc_int8 *ptr0;
+ orc_int8 var4;
+ const orc_int8 *ptr4;
+ orc_int8 var5;
+ const orc_int8 *ptr5;
+ orc_int8 var6;
+ const orc_int8 *ptr6;
+ orc_int8 var7;
+ const orc_int8 *ptr7;
+ orc_int8 var8;
+ const orc_int8 *ptr8;
+ const orc_int16 var16 = 2;
+ const orc_int16 var17 = 1;
+ const orc_int16 var18 = 4;
+ const orc_int16 var19 = 3;
+ orc_int16 var32;
+ orc_int16 var33;
+ orc_int16 var34;
+ orc_int16 var35;
+ orc_int16 var36;
+ orc_int16 var37;
+ orc_int16 var38;
+ orc_int16 var39;
+ orc_int16 var40;
+ orc_int16 var41;
+ orc_int16 var42;
+ orc_int16 var43;
+ orc_int16 var44;
ptr0 = (orc_int8 *) d1;
ptr4 = (orc_int8 *) s1;
ptr8 = (orc_int8 *) s5;
for (i = 0; i < n; i++) {
- /* 0: loadb */
- var35 = ptr4[i];
+ var4 = *ptr4;
+ ptr4++;
+ var5 = *ptr5;
+ ptr5++;
+ var6 = *ptr6;
+ ptr6++;
+ var7 = *ptr7;
+ ptr7++;
+ var8 = *ptr8;
+ ptr8++;
+ /* 0: convubw */
+ var32 = (orc_uint8) var4;
/* 1: convubw */
- var42.i = (orc_uint8) var35;
- /* 2: loadb */
- var36 = ptr8[i];
+ var33 = (orc_uint8) var8;
+ /* 2: addw */
+ var35 = var32 + var33;
/* 3: convubw */
- var43.i = (orc_uint8) var36;
- /* 4: addw */
- var44.i = var42.i + var43.i;
- /* 5: loadb */
- var37 = ptr5[i];
- /* 6: convubw */
- var45.i = (orc_uint8) var37;
- /* 7: loadb */
- var38 = ptr7[i];
- /* 8: convubw */
- var46.i = (orc_uint8) var38;
- /* 9: addw */
- var47.i = var45.i + var46.i;
- /* 10: shlw */
- var48.i = var47.i << 2;
- /* 11: loadb */
- var39 = ptr6[i];
- /* 12: convubw */
- var49.i = (orc_uint8) var39;
- /* 13: shlw */
- var50.i = var49.i << 1;
- /* 14: subw */
- var51.i = var48.i - var44.i;
- /* 15: addw */
- var52.i = var51.i + var50.i;
- /* 16: loadpw */
- var40.i = 4;
- /* 17: addw */
- var53.i = var52.i + var40.i;
- /* 18: shrsw */
- var54.i = var53.i >> 3;
- /* 19: convsuswb */
- var41 = ORC_CLAMP_UB (var54.i);
- /* 20: storeb */
- ptr0[i] = var41;
+ var36 = (orc_uint8) var5;
+ /* 4: convubw */
+ var34 = (orc_uint8) var7;
+ /* 5: addw */
+ var37 = var36 + var34;
+ /* 6: shlw */
+ var38 = var37 << var16;
+ /* 7: convubw */
+ var39 = (orc_uint8) var6;
+ /* 8: shlw */
+ var40 = var39 << var17;
+ /* 9: subw */
+ var41 = var38 - var35;
+ /* 10: addw */
+ var42 = var41 + var40;
+ /* 11: addw */
+ var43 = var42 + var18;
+ /* 12: shrsw */
+ var44 = var43 >> var19;
+ /* 13: convsuswb */
+ var0 = ORC_CLAMP_UB (var44);
+ *ptr0 = var0;
+ ptr0++;
}
}
#else
static void
-_backup_deinterlace_line_vfir (OrcExecutor * ORC_RESTRICT ex)
+_backup_deinterlace_line_vfir (OrcExecutor * ex)
{
int i;
int n = ex->n;
- orc_int8 *ORC_RESTRICT ptr0;
- const orc_int8 *ORC_RESTRICT ptr4;
- const orc_int8 *ORC_RESTRICT ptr5;
- const orc_int8 *ORC_RESTRICT ptr6;
- const orc_int8 *ORC_RESTRICT ptr7;
- const orc_int8 *ORC_RESTRICT ptr8;
- orc_int8 var35;
- orc_int8 var36;
- orc_int8 var37;
- orc_int8 var38;
- orc_int8 var39;
- orc_union16 var40;
- orc_int8 var41;
- orc_union16 var42;
- orc_union16 var43;
- orc_union16 var44;
- orc_union16 var45;
- orc_union16 var46;
- orc_union16 var47;
- orc_union16 var48;
- orc_union16 var49;
- orc_union16 var50;
- orc_union16 var51;
- orc_union16 var52;
- orc_union16 var53;
- orc_union16 var54;
+ orc_int8 var0;
+ orc_int8 *ptr0;
+ orc_int8 var4;
+ const orc_int8 *ptr4;
+ orc_int8 var5;
+ const orc_int8 *ptr5;
+ orc_int8 var6;
+ const orc_int8 *ptr6;
+ orc_int8 var7;
+ const orc_int8 *ptr7;
+ orc_int8 var8;
+ const orc_int8 *ptr8;
+ const orc_int16 var16 = 2;
+ const orc_int16 var17 = 1;
+ const orc_int16 var18 = 4;
+ const orc_int16 var19 = 3;
+ orc_int16 var32;
+ orc_int16 var33;
+ orc_int16 var34;
+ orc_int16 var35;
+ orc_int16 var36;
+ orc_int16 var37;
+ orc_int16 var38;
+ orc_int16 var39;
+ orc_int16 var40;
+ orc_int16 var41;
+ orc_int16 var42;
+ orc_int16 var43;
+ orc_int16 var44;
ptr0 = (orc_int8 *) ex->arrays[0];
ptr4 = (orc_int8 *) ex->arrays[4];
ptr8 = (orc_int8 *) ex->arrays[8];
for (i = 0; i < n; i++) {
- /* 0: loadb */
- var35 = ptr4[i];
+ var4 = *ptr4;
+ ptr4++;
+ var5 = *ptr5;
+ ptr5++;
+ var6 = *ptr6;
+ ptr6++;
+ var7 = *ptr7;
+ ptr7++;
+ var8 = *ptr8;
+ ptr8++;
+ /* 0: convubw */
+ var32 = (orc_uint8) var4;
/* 1: convubw */
- var42.i = (orc_uint8) var35;
- /* 2: loadb */
- var36 = ptr8[i];
+ var33 = (orc_uint8) var8;
+ /* 2: addw */
+ var35 = var32 + var33;
/* 3: convubw */
- var43.i = (orc_uint8) var36;
- /* 4: addw */
- var44.i = var42.i + var43.i;
- /* 5: loadb */
- var37 = ptr5[i];
- /* 6: convubw */
- var45.i = (orc_uint8) var37;
- /* 7: loadb */
- var38 = ptr7[i];
- /* 8: convubw */
- var46.i = (orc_uint8) var38;
- /* 9: addw */
- var47.i = var45.i + var46.i;
- /* 10: shlw */
- var48.i = var47.i << 2;
- /* 11: loadb */
- var39 = ptr6[i];
- /* 12: convubw */
- var49.i = (orc_uint8) var39;
- /* 13: shlw */
- var50.i = var49.i << 1;
- /* 14: subw */
- var51.i = var48.i - var44.i;
- /* 15: addw */
- var52.i = var51.i + var50.i;
- /* 16: loadpw */
- var40.i = 4;
- /* 17: addw */
- var53.i = var52.i + var40.i;
- /* 18: shrsw */
- var54.i = var53.i >> 3;
- /* 19: convsuswb */
- var41 = ORC_CLAMP_UB (var54.i);
- /* 20: storeb */
- ptr0[i] = var41;
+ var36 = (orc_uint8) var5;
+ /* 4: convubw */
+ var34 = (orc_uint8) var7;
+ /* 5: addw */
+ var37 = var36 + var34;
+ /* 6: shlw */
+ var38 = var37 << var16;
+ /* 7: convubw */
+ var39 = (orc_uint8) var6;
+ /* 8: shlw */
+ var40 = var39 << var17;
+ /* 9: subw */
+ var41 = var38 - var35;
+ /* 10: addw */
+ var42 = var41 + var40;
+ /* 11: addw */
+ var43 = var42 + var18;
+ /* 12: shrsw */
+ var44 = var43 >> var19;
+ /* 13: convsuswb */
+ var0 = ORC_CLAMP_UB (var44);
+ *ptr0 = var0;
+ ptr0++;
}
}
orc_program_add_source (p, 1, "s3");
orc_program_add_source (p, 1, "s4");
orc_program_add_source (p, 1, "s5");
- orc_program_add_constant (p, 2, 0x00000002, "c1");
- orc_program_add_constant (p, 2, 0x00000001, "c2");
- orc_program_add_constant (p, 2, 0x00000004, "c3");
- orc_program_add_constant (p, 2, 0x00000003, "c4");
+ orc_program_add_constant (p, 2, 2, "c1");
+ orc_program_add_constant (p, 2, 1, "c2");
+ orc_program_add_constant (p, 2, 4, "c3");
+ orc_program_add_constant (p, 2, 3, "c4");
orc_program_add_temporary (p, 2, "t1");
orc_program_add_temporary (p, 2, "t2");
orc_program_add_temporary (p, 2, "t3");
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S5, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S4, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shlw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S3, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shlw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
- ORC_VAR_D1);
- orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C3,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2,
- ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append (p, "convubw", ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1);
+ orc_program_append (p, "convubw", ORC_VAR_T2, ORC_VAR_S5, ORC_VAR_D1);
+ orc_program_append (p, "addw", ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2);
+ orc_program_append (p, "convubw", ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1);
+ orc_program_append (p, "convubw", ORC_VAR_T3, ORC_VAR_S4, ORC_VAR_D1);
+ orc_program_append (p, "addw", ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3);
+ orc_program_append (p, "shlw", ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1);
+ orc_program_append (p, "convubw", ORC_VAR_T3, ORC_VAR_S3, ORC_VAR_D1);
+ orc_program_append (p, "shlw", ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2);
+ orc_program_append (p, "subw", ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1);
+ orc_program_append (p, "addw", ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3);
+ orc_program_append (p, "addw", ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C3);
+ orc_program_append (p, "shrsw", ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4);
+ orc_program_append (p, "convsuswb", ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1);
result = orc_program_compile (p);
}
int n)
{
int i;
- orc_int8 *ORC_RESTRICT ptr0;
- const orc_int8 *ORC_RESTRICT ptr4;
- const orc_int8 *ORC_RESTRICT ptr5;
- orc_int8 var32;
- orc_int8 var33;
- orc_int8 var34;
+ orc_int8 var0;
+ orc_int8 *ptr0;
+ orc_int8 var4;
+ const orc_int8 *ptr4;
+ orc_int8 var5;
+ const orc_int8 *ptr5;
ptr0 = (orc_int8 *) d1;
ptr4 = (orc_int8 *) s1;
ptr5 = (orc_int8 *) s2;
for (i = 0; i < n; i++) {
- /* 0: loadb */
- var32 = ptr4[i];
- /* 1: loadb */
- var33 = ptr5[i];
- /* 2: avgub */
- var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
- /* 3: storeb */
- ptr0[i] = var34;
+ var4 = *ptr4;
+ ptr4++;
+ var5 = *ptr5;
+ ptr5++;
+ /* 0: avgub */
+ var0 = ((orc_uint8) var4 + (orc_uint8) var5 + 1) >> 1;
+ *ptr0 = var0;
+ ptr0++;
}
}
#else
static void
-_backup_deinterlace_line_linear (OrcExecutor * ORC_RESTRICT ex)
+_backup_deinterlace_line_linear (OrcExecutor * ex)
{
int i;
int n = ex->n;
- orc_int8 *ORC_RESTRICT ptr0;
- const orc_int8 *ORC_RESTRICT ptr4;
- const orc_int8 *ORC_RESTRICT ptr5;
- orc_int8 var32;
- orc_int8 var33;
- orc_int8 var34;
+ orc_int8 var0;
+ orc_int8 *ptr0;
+ orc_int8 var4;
+ const orc_int8 *ptr4;
+ orc_int8 var5;
+ const orc_int8 *ptr5;
ptr0 = (orc_int8 *) ex->arrays[0];
ptr4 = (orc_int8 *) ex->arrays[4];
ptr5 = (orc_int8 *) ex->arrays[5];
for (i = 0; i < n; i++) {
- /* 0: loadb */
- var32 = ptr4[i];
- /* 1: loadb */
- var33 = ptr5[i];
- /* 2: avgub */
- var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
- /* 3: storeb */
- ptr0[i] = var34;
+ var4 = *ptr4;
+ ptr4++;
+ var5 = *ptr5;
+ ptr5++;
+ /* 0: avgub */
+ var0 = ((orc_uint8) var4 + (orc_uint8) var5 + 1) >> 1;
+ *ptr0 = var0;
+ ptr0++;
}
}
orc_program_add_source (p, 1, "s1");
orc_program_add_source (p, 1, "s2");
- orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2,
- ORC_VAR_D1);
+ orc_program_append (p, "avgub", ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2);
result = orc_program_compile (p);
}
const guint8 * s2, const guint8 * s3, int n)
{
int i;
- orc_int8 *ORC_RESTRICT ptr0;
- const orc_int8 *ORC_RESTRICT ptr4;
- const orc_int8 *ORC_RESTRICT ptr5;
- const orc_int8 *ORC_RESTRICT ptr6;
- orc_int8 var35;
- orc_int8 var36;
- orc_int8 var37;
- orc_union16 var38;
- orc_int8 var39;
- orc_union16 var40;
- orc_union16 var41;
- orc_union16 var42;
- orc_union16 var43;
- orc_union16 var44;
- orc_union16 var45;
- orc_union16 var46;
- orc_union16 var47;
+ orc_int8 var0;
+ orc_int8 *ptr0;
+ orc_int8 var4;
+ const orc_int8 *ptr4;
+ orc_int8 var5;
+ const orc_int8 *ptr5;
+ orc_int8 var6;
+ const orc_int8 *ptr6;
+ const orc_int16 var16 = 2;
+ const orc_int16 var17 = 2;
+ orc_int16 var32;
+ orc_int16 var33;
+ orc_int16 var34;
+ orc_int16 var35;
+ orc_int16 var36;
+ orc_int16 var37;
+ orc_int16 var38;
+ orc_int16 var39;
ptr0 = (orc_int8 *) d1;
ptr4 = (orc_int8 *) s1;
ptr6 = (orc_int8 *) s3;
for (i = 0; i < n; i++) {
- /* 0: loadb */
- var35 = ptr4[i];
+ var4 = *ptr4;
+ ptr4++;
+ var5 = *ptr5;
+ ptr5++;
+ var6 = *ptr6;
+ ptr6++;
+ /* 0: convubw */
+ var32 = (orc_uint8) var4;
/* 1: convubw */
- var40.i = (orc_uint8) var35;
- /* 2: loadb */
- var36 = ptr5[i];
- /* 3: convubw */
- var41.i = (orc_uint8) var36;
- /* 4: loadb */
- var37 = ptr6[i];
- /* 5: convubw */
- var42.i = (orc_uint8) var37;
+ var33 = (orc_uint8) var5;
+ /* 2: convubw */
+ var34 = (orc_uint8) var6;
+ /* 3: addw */
+ var35 = var32 + var33;
+ /* 4: addw */
+ var36 = var34 + var34;
+ /* 5: addw */
+ var37 = var35 + var36;
/* 6: addw */
- var43.i = var40.i + var41.i;
- /* 7: addw */
- var44.i = var42.i + var42.i;
- /* 8: addw */
- var45.i = var43.i + var44.i;
- /* 9: loadpw */
- var38.i = 2;
- /* 10: addw */
- var46.i = var45.i + var38.i;
- /* 11: shrsw */
- var47.i = var46.i >> 2;
- /* 12: convsuswb */
- var39 = ORC_CLAMP_UB (var47.i);
- /* 13: storeb */
- ptr0[i] = var39;
+ var38 = var37 + var16;
+ /* 7: shrsw */
+ var39 = var38 >> var17;
+ /* 8: convsuswb */
+ var0 = ORC_CLAMP_UB (var39);
+ *ptr0 = var0;
+ ptr0++;
}
}
#else
static void
-_backup_deinterlace_line_linear_blend (OrcExecutor * ORC_RESTRICT ex)
+_backup_deinterlace_line_linear_blend (OrcExecutor * ex)
{
int i;
int n = ex->n;
- orc_int8 *ORC_RESTRICT ptr0;
- const orc_int8 *ORC_RESTRICT ptr4;
- const orc_int8 *ORC_RESTRICT ptr5;
- const orc_int8 *ORC_RESTRICT ptr6;
- orc_int8 var35;
- orc_int8 var36;
- orc_int8 var37;
- orc_union16 var38;
- orc_int8 var39;
- orc_union16 var40;
- orc_union16 var41;
- orc_union16 var42;
- orc_union16 var43;
- orc_union16 var44;
- orc_union16 var45;
- orc_union16 var46;
- orc_union16 var47;
+ orc_int8 var0;
+ orc_int8 *ptr0;
+ orc_int8 var4;
+ const orc_int8 *ptr4;
+ orc_int8 var5;
+ const orc_int8 *ptr5;
+ orc_int8 var6;
+ const orc_int8 *ptr6;
+ const orc_int16 var16 = 2;
+ const orc_int16 var17 = 2;
+ orc_int16 var32;
+ orc_int16 var33;
+ orc_int16 var34;
+ orc_int16 var35;
+ orc_int16 var36;
+ orc_int16 var37;
+ orc_int16 var38;
+ orc_int16 var39;
ptr0 = (orc_int8 *) ex->arrays[0];
ptr4 = (orc_int8 *) ex->arrays[4];
ptr6 = (orc_int8 *) ex->arrays[6];
for (i = 0; i < n; i++) {
- /* 0: loadb */
- var35 = ptr4[i];
+ var4 = *ptr4;
+ ptr4++;
+ var5 = *ptr5;
+ ptr5++;
+ var6 = *ptr6;
+ ptr6++;
+ /* 0: convubw */
+ var32 = (orc_uint8) var4;
/* 1: convubw */
- var40.i = (orc_uint8) var35;
- /* 2: loadb */
- var36 = ptr5[i];
- /* 3: convubw */
- var41.i = (orc_uint8) var36;
- /* 4: loadb */
- var37 = ptr6[i];
- /* 5: convubw */
- var42.i = (orc_uint8) var37;
+ var33 = (orc_uint8) var5;
+ /* 2: convubw */
+ var34 = (orc_uint8) var6;
+ /* 3: addw */
+ var35 = var32 + var33;
+ /* 4: addw */
+ var36 = var34 + var34;
+ /* 5: addw */
+ var37 = var35 + var36;
/* 6: addw */
- var43.i = var40.i + var41.i;
- /* 7: addw */
- var44.i = var42.i + var42.i;
- /* 8: addw */
- var45.i = var43.i + var44.i;
- /* 9: loadpw */
- var38.i = 2;
- /* 10: addw */
- var46.i = var45.i + var38.i;
- /* 11: shrsw */
- var47.i = var46.i >> 2;
- /* 12: convsuswb */
- var39 = ORC_CLAMP_UB (var47.i);
- /* 13: storeb */
- ptr0[i] = var39;
+ var38 = var37 + var16;
+ /* 7: shrsw */
+ var39 = var38 >> var17;
+ /* 8: convsuswb */
+ var0 = ORC_CLAMP_UB (var39);
+ *ptr0 = var0;
+ ptr0++;
}
}
orc_program_add_source (p, 1, "s1");
orc_program_add_source (p, 1, "s2");
orc_program_add_source (p, 1, "s3");
- orc_program_add_constant (p, 2, 0x00000002, "c1");
- orc_program_add_constant (p, 2, 0x00000002, "c2");
+ orc_program_add_constant (p, 2, 2, "c1");
+ orc_program_add_constant (p, 2, 2, "c2");
orc_program_add_temporary (p, 2, "t1");
orc_program_add_temporary (p, 2, "t2");
orc_program_add_temporary (p, 2, "t3");
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S3, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T3,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T3,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
- ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append (p, "convubw", ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1);
+ orc_program_append (p, "convubw", ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1);
+ orc_program_append (p, "convubw", ORC_VAR_T3, ORC_VAR_S3, ORC_VAR_D1);
+ orc_program_append (p, "addw", ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2);
+ orc_program_append (p, "addw", ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T3);
+ orc_program_append (p, "addw", ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T3);
+ orc_program_append (p, "addw", ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1);
+ orc_program_append (p, "shrsw", ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2);
+ orc_program_append (p, "convsuswb", ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1);
result = orc_program_compile (p);
}
extern "C" {
#endif
-
-
#ifndef _ORC_INTEGER_TYPEDEFS_
#define _ORC_INTEGER_TYPEDEFS_
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
typedef unsigned long orc_uint64;
#endif
#endif
-typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
-typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
-typedef union { orc_int64 i; double f; orc_int32 x2[2]; orc_int16 x4[4]; } orc_union64;
+typedef union { orc_int32 i; float f; } orc_union32;
+typedef union { orc_int64 i; double f; } orc_union64;
#endif
+
void deinterlace_line_vfir (guint8 * d1, const guint8 * s1, const guint8 * s2, const guint8 * s3, const guint8 * s4, const guint8 * s5, int n);
void deinterlace_line_linear (guint8 * d1, const guint8 * s1, const guint8 * s2, int n);
void deinterlace_line_linear_blend (guint8 * d1, const guint8 * s1, const guint8 * s2, const guint8 * s3, int n);
#endif
typedef union
{
- orc_int16 i;
- orc_int8 x2[2];
-} orc_union16;
-typedef union
-{
orc_int32 i;
float f;
- orc_int16 x2[2];
- orc_int8 x4[4];
} orc_union32;
typedef union
{
orc_int64 i;
double f;
- orc_int32 x2[2];
- orc_int16 x4[4];
} orc_union64;
#endif
#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
-#define ORC_MIN_NORMAL (1.1754944909521339405e-38)
-#define ORC_DENORMAL(x) (((x) > -ORC_MIN_NORMAL && (x) < ORC_MIN_NORMAL) ? ((x)<0 ? (-0.0f) : (0.0f)) : (x))
-#define ORC_MINF(a,b) (isnan(a) ? a : isnan(b) ? b : ((a)<(b)) ? (a) : (b))
-#define ORC_MAXF(a,b) (isnan(a) ? a : isnan(b) ? b : ((a)>(b)) ? (a) : (b))
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
/* end Orc C target preamble */
orc_splat_u32 (guint32 * d1, int p1, int n)
{
int i;
- orc_union32 *ORC_RESTRICT ptr0;
- orc_union32 var32;
- orc_union32 var33;
+ orc_union32 var0;
+ orc_union32 *ptr0;
+ const int var24 = p1;
ptr0 = (orc_union32 *) d1;
for (i = 0; i < n; i++) {
- /* 0: loadpl */
- var32.i = p1;
- /* 1: copyl */
- var33.i = var32.i;
- /* 2: storel */
- ptr0[i] = var33;
+ /* 0: copyl */
+ var0.i = var24;
+ *ptr0 = var0;
+ ptr0++;
}
}
#else
static void
-_backup_orc_splat_u32 (OrcExecutor * ORC_RESTRICT ex)
+_backup_orc_splat_u32 (OrcExecutor * ex)
{
int i;
int n = ex->n;
- orc_union32 *ORC_RESTRICT ptr0;
- orc_union32 var32;
- orc_union32 var33;
+ orc_union32 var0;
+ orc_union32 *ptr0;
+ const int var24 = ex->params[24];
ptr0 = (orc_union32 *) ex->arrays[0];
for (i = 0; i < n; i++) {
- /* 0: loadpl */
- var32.i = ex->params[24];
- /* 1: copyl */
- var33.i = var32.i;
- /* 2: storel */
- ptr0[i] = var33;
+ /* 0: copyl */
+ var0.i = var24;
+ *ptr0 = var0;
+ ptr0++;
}
}
orc_program_add_destination (p, 4, "d1");
orc_program_add_parameter (p, 4, "p1");
- orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
- ORC_VAR_D1);
+ orc_program_append (p, "copyl", ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1);
result = orc_program_compile (p);
}
extern "C" {
#endif
-
-
#ifndef _ORC_INTEGER_TYPEDEFS_
#define _ORC_INTEGER_TYPEDEFS_
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
typedef unsigned long orc_uint64;
#endif
#endif
-typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
-typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
-typedef union { orc_int64 i; double f; orc_int32 x2[2]; orc_int16 x4[4]; } orc_union64;
+typedef union { orc_int32 i; float f; } orc_union32;
+typedef union { orc_int64 i; double f; } orc_union64;
#endif
+
void orc_splat_u32 (guint32 * d1, int p1, int n);
#ifdef __cplusplus
#endif
typedef union
{
- orc_int16 i;
- orc_int8 x2[2];
-} orc_union16;
-typedef union
-{
orc_int32 i;
float f;
- orc_int16 x2[2];
- orc_int8 x4[4];
} orc_union32;
typedef union
{
orc_int64 i;
double f;
- orc_int32 x2[2];
- orc_int16 x4[4];
} orc_union64;
#endif
#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
-#define ORC_MIN_NORMAL (1.1754944909521339405e-38)
-#define ORC_DENORMAL(x) (((x) > -ORC_MIN_NORMAL && (x) < ORC_MIN_NORMAL) ? ((x)<0 ? (-0.0f) : (0.0f)) : (x))
-#define ORC_MINF(a,b) (isnan(a) ? a : isnan(b) ? b : ((a)<(b)) ? (a) : (b))
-#define ORC_MAXF(a,b) (isnan(a) ? a : isnan(b) ? b : ((a)>(b)) ? (a) : (b))
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define ORC_RESTRICT restrict
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define ORC_RESTRICT __restrict__
-#else
-#define ORC_RESTRICT
-#endif
/* end Orc C target preamble */
orc_splat_u32 (guint32 * d1, int p1, int n)
{
int i;
- orc_union32 *ORC_RESTRICT ptr0;
- orc_union32 var32;
- orc_union32 var33;
+ orc_union32 var0;
+ orc_union32 *ptr0;
+ const int var24 = p1;
ptr0 = (orc_union32 *) d1;
for (i = 0; i < n; i++) {
- /* 0: loadpl */
- var32.i = p1;
- /* 1: copyl */
- var33.i = var32.i;
- /* 2: storel */
- ptr0[i] = var33;
+ /* 0: copyl */
+ var0.i = var24;
+ *ptr0 = var0;
+ ptr0++;
}
}
#else
static void
-_backup_orc_splat_u32 (OrcExecutor * ORC_RESTRICT ex)
+_backup_orc_splat_u32 (OrcExecutor * ex)
{
int i;
int n = ex->n;
- orc_union32 *ORC_RESTRICT ptr0;
- orc_union32 var32;
- orc_union32 var33;
+ orc_union32 var0;
+ orc_union32 *ptr0;
+ const int var24 = ex->params[24];
ptr0 = (orc_union32 *) ex->arrays[0];
for (i = 0; i < n; i++) {
- /* 0: loadpl */
- var32.i = ex->params[24];
- /* 1: copyl */
- var33.i = var32.i;
- /* 2: storel */
- ptr0[i] = var33;
+ /* 0: copyl */
+ var0.i = var24;
+ *ptr0 = var0;
+ ptr0++;
}
}
orc_program_add_destination (p, 4, "d1");
orc_program_add_parameter (p, 4, "p1");
- orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
- ORC_VAR_D1);
+ orc_program_append (p, "copyl", ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1);
result = orc_program_compile (p);
}
orc_memcpy_u32 (guint32 * d1, const guint32 * s1, int n)
{
int i;
- orc_union32 *ORC_RESTRICT ptr0;
- const orc_union32 *ORC_RESTRICT ptr4;
- orc_union32 var32;
- orc_union32 var33;
+ orc_union32 var0;
+ orc_union32 *ptr0;
+ orc_union32 var4;
+ const orc_union32 *ptr4;
ptr0 = (orc_union32 *) d1;
ptr4 = (orc_union32 *) s1;
for (i = 0; i < n; i++) {
- /* 0: loadl */
- var32 = ptr4[i];
- /* 1: copyl */
- var33.i = var32.i;
- /* 2: storel */
- ptr0[i] = var33;
+ var4 = *ptr4;
+ ptr4++;
+ /* 0: copyl */
+ var0.i = var4.i;
+ *ptr0 = var0;
+ ptr0++;
}
}
#else
static void
-_backup_orc_memcpy_u32 (OrcExecutor * ORC_RESTRICT ex)
+_backup_orc_memcpy_u32 (OrcExecutor * ex)
{
int i;
int n = ex->n;
- orc_union32 *ORC_RESTRICT ptr0;
- const orc_union32 *ORC_RESTRICT ptr4;
- orc_union32 var32;
- orc_union32 var33;
+ orc_union32 var0;
+ orc_union32 *ptr0;
+ orc_union32 var4;
+ const orc_union32 *ptr4;
ptr0 = (orc_union32 *) ex->arrays[0];
ptr4 = (orc_union32 *) ex->arrays[4];
for (i = 0; i < n; i++) {
- /* 0: loadl */
- var32 = ptr4[i];
- /* 1: copyl */
- var33.i = var32.i;
- /* 2: storel */
- ptr0[i] = var33;
+ var4 = *ptr4;
+ ptr4++;
+ /* 0: copyl */
+ var0.i = var4.i;
+ *ptr0 = var0;
+ ptr0++;
}
}
orc_program_add_destination (p, 4, "d1");
orc_program_add_source (p, 4, "s1");
- orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
- ORC_VAR_D1);
+ orc_program_append (p, "copyl", ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1);
result = orc_program_compile (p);
}
{
int i;
int j;
- orc_int8 *ORC_RESTRICT ptr0;
- const orc_int8 *ORC_RESTRICT ptr4;
- orc_int8 var34;
- orc_int8 var35;
- orc_union16 var36;
- orc_int8 var37;
- orc_union16 var38;
- orc_union16 var39;
- orc_union16 var40;
- orc_union16 var41;
- orc_union16 var42;
- orc_union16 var43;
- orc_union16 var44;
+ orc_int8 var0;
+ orc_int8 *ptr0;
+ orc_int8 var4;
+ const orc_int8 *ptr4;
+ const orc_int8 var16 = 8;
+ const int var24 = p1;
+ orc_int16 var32;
+ orc_int16 var33;
+ orc_int16 var34;
+ orc_int16 var35;
+ orc_int16 var36;
+ orc_int16 var37;
+ orc_int16 var38;
for (j = 0; j < m; j++) {
ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
for (i = 0; i < n; i++) {
- /* 0: loadb */
- var34 = ptr0[i];
+ var0 = *ptr0;
+ var4 = *ptr4;
+ ptr4++;
+ /* 0: convubw */
+ var32 = (orc_uint8) var0;
/* 1: convubw */
- var38.i = (orc_uint8) var34;
- /* 2: loadb */
- var35 = ptr4[i];
- /* 3: convubw */
- var39.i = (orc_uint8) var35;
- /* 4: subw */
- var40.i = var39.i - var38.i;
- /* 5: loadpw */
- var36.i = p1;
- /* 6: mullw */
- var41.i = (var40.i * var36.i) & 0xffff;
- /* 7: shlw */
- var42.i = var38.i << 8;
- /* 8: addw */
- var43.i = var42.i + var41.i;
- /* 9: shruw */
- var44.i = ((orc_uint16) var43.i) >> 8;
- /* 10: convsuswb */
- var37 = ORC_CLAMP_UB (var44.i);
- /* 11: storeb */
- ptr0[i] = var37;
+ var33 = (orc_uint8) var4;
+ /* 2: subw */
+ var34 = var33 - var32;
+ /* 3: mullw */
+ var35 = (var34 * var24) & 0xffff;
+ /* 4: shlw */
+ var36 = var32 << var16;
+ /* 5: addw */
+ var37 = var36 + var35;
+ /* 6: shruw */
+ var38 = ((orc_uint16) var37) >> var16;
+ /* 7: convsuswb */
+ var0 = ORC_CLAMP_UB (var38);
+ *ptr0 = var0;
+ ptr0++;
}
}
#else
static void
-_backup_orc_blend_u8 (OrcExecutor * ORC_RESTRICT ex)
+_backup_orc_blend_u8 (OrcExecutor * ex)
{
int i;
int j;
int n = ex->n;
int m = ex->params[ORC_VAR_A1];
- orc_int8 *ORC_RESTRICT ptr0;
- const orc_int8 *ORC_RESTRICT ptr4;
- orc_int8 var34;
- orc_int8 var35;
- orc_union16 var36;
- orc_int8 var37;
- orc_union16 var38;
- orc_union16 var39;
- orc_union16 var40;
- orc_union16 var41;
- orc_union16 var42;
- orc_union16 var43;
- orc_union16 var44;
+ orc_int8 var0;
+ orc_int8 *ptr0;
+ orc_int8 var4;
+ const orc_int8 *ptr4;
+ const orc_int8 var16 = 8;
+ const int var24 = ex->params[24];
+ orc_int16 var32;
+ orc_int16 var33;
+ orc_int16 var34;
+ orc_int16 var35;
+ orc_int16 var36;
+ orc_int16 var37;
+ orc_int16 var38;
for (j = 0; j < m; j++) {
ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
for (i = 0; i < n; i++) {
- /* 0: loadb */
- var34 = ptr0[i];
+ var0 = *ptr0;
+ var4 = *ptr4;
+ ptr4++;
+ /* 0: convubw */
+ var32 = (orc_uint8) var0;
/* 1: convubw */
- var38.i = (orc_uint8) var34;
- /* 2: loadb */
- var35 = ptr4[i];
- /* 3: convubw */
- var39.i = (orc_uint8) var35;
- /* 4: subw */
- var40.i = var39.i - var38.i;
- /* 5: loadpw */
- var36.i = ex->params[24];
- /* 6: mullw */
- var41.i = (var40.i * var36.i) & 0xffff;
- /* 7: shlw */
- var42.i = var38.i << 8;
- /* 8: addw */
- var43.i = var42.i + var41.i;
- /* 9: shruw */
- var44.i = ((orc_uint16) var43.i) >> 8;
- /* 10: convsuswb */
- var37 = ORC_CLAMP_UB (var44.i);
- /* 11: storeb */
- ptr0[i] = var37;
+ var33 = (orc_uint8) var4;
+ /* 2: subw */
+ var34 = var33 - var32;
+ /* 3: mullw */
+ var35 = (var34 * var24) & 0xffff;
+ /* 4: shlw */
+ var36 = var32 << var16;
+ /* 5: addw */
+ var37 = var36 + var35;
+ /* 6: shruw */
+ var38 = ((orc_uint16) var37) >> var16;
+ /* 7: convsuswb */
+ var0 = ORC_CLAMP_UB (var38);
+ *ptr0 = var0;
+ ptr0++;
}
}
orc_program_set_backup_function (p, _backup_orc_blend_u8);
orc_program_add_destination (p, 1, "d1");
orc_program_add_source (p, 1, "s1");
- orc_program_add_constant (p, 1, 0x00000008, "c1");
+ orc_program_add_constant (p, 1, 8, "c1");
orc_program_add_parameter (p, 2, "p1");
orc_program_add_temporary (p, 2, "t1");
orc_program_add_temporary (p, 2, "t2");
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shlw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2,
- ORC_VAR_D1);
- orc_program_append_2 (p, "shruw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
- ORC_VAR_D1);
- orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2,
- ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append (p, "convubw", ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append (p, "convubw", ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1);
+ orc_program_append (p, "subw", ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1);
+ orc_program_append (p, "mullw", ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1);
+ orc_program_append (p, "shlw", ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1);
+ orc_program_append (p, "addw", ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T2);
+ orc_program_append (p, "shruw", ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1);
+ orc_program_append (p, "convsuswb", ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1);
result = orc_program_compile (p);
}
extern "C" {
#endif
-
-
#ifndef _ORC_INTEGER_TYPEDEFS_
#define _ORC_INTEGER_TYPEDEFS_
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
typedef unsigned long orc_uint64;
#endif
#endif
-typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
-typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
-typedef union { orc_int64 i; double f; orc_int32 x2[2]; orc_int16 x4[4]; } orc_union64;
+typedef union { orc_int32 i; float f; } orc_union32;
+typedef union { orc_int64 i; double f; } orc_union64;
#endif
+
void orc_splat_u32 (guint32 * d1, int p1, int n);
void orc_memcpy_u32 (guint32 * d1, const guint32 * s1, int n);
void orc_blend_u8 (guint8 * d1, int d1_stride, const guint8 * s1, int s1_stride, int p1, int n, int m);
#define GST_LICENSE "LGPL"
/* package name in plugins */
-#define GST_PACKAGE_NAME "GStreamer Good Plug-ins prerelease"
+#define GST_PACKAGE_NAME "GStreamer Good Plug-ins source release"
/* package origin */
#define GST_PACKAGE_ORIGIN "Unknown package origin"
#define PACKAGE_NAME "GStreamer Good Plug-ins"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Good Plug-ins 0.10.24.3"
+#define PACKAGE_STRING "GStreamer Good Plug-ins 0.10.25"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gst-plugins-good"
#undef PACKAGE_URL
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.10.24.3"
+#define PACKAGE_VERSION "0.10.25"
/* directory where plugins are located */
#ifdef _DEBUG
#undef STDC_HEADERS
/* Version number of package */
-#define VERSION "0.10.24.3"
+#define VERSION "0.10.25"
/* old wavpack API */
#undef WAVPACK_OLD_API