Release 0.10.25

This commit is contained in:
Tim-Philipp Müller 2010-09-02 23:44:19 +01:00
parent 477caae5e8
commit b26897dd84
12 changed files with 1526 additions and 658 deletions

968
ChangeLog
View file

@ -1,9 +1,971 @@
=== release 0.10.24 ===
=== release 0.10.25 ===
2010-07-15 Tim-Philipp Müller <tim.muller@collabora.co.uk>
2010-09-02 Tim-Philipp Müller <tim.muller@collabora.co.uk>
* configure.ac:
releasing 0.10.24, "Taking Liberties"
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 01:49:04 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
* ChangeLog:
* NEWS:
* RELEASE:
* 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:
* 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>

66
NEWS
View file

@ -1,4 +1,68 @@
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:

178
RELEASE
View file

@ -1,5 +1,5 @@
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"
@ -54,108 +54,67 @@ contains a set of less supported plug-ins that haven't passed the
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
@ -185,30 +144,17 @@ Applications
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
 

View file

@ -5,7 +5,7 @@ dnl please read gstreamer/docs/random/autotools before changing this 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)

View file

@ -32,6 +32,17 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
</GitRepository>
</repository>
<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>

View file

@ -47,23 +47,14 @@ 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;
#endif
@ -101,17 +92,6 @@ void deinterlace_line_linear_blend (guint8 * d1, const guint8 * s1,
#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 */
@ -123,32 +103,35 @@ deinterlace_line_vfir (guint8 * d1, const guint8 * s1, const guint8 * s2,
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;
@ -158,84 +141,85 @@ deinterlace_line_vfir (guint8 * d1, const guint8 * s1, const guint8 * s2,
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];
@ -245,48 +229,46 @@ _backup_deinterlace_line_vfir (OrcExecutor * ORC_RESTRICT ex)
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++;
}
}
@ -314,42 +296,28 @@ deinterlace_line_vfir (guint8 * d1, const guint8 * s1, const guint8 * s2,
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);
}
@ -379,56 +347,56 @@ deinterlace_line_linear (guint8 * d1, const guint8 * s1, const guint8 * s2,
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++;
}
}
@ -454,8 +422,7 @@ deinterlace_line_linear (guint8 * d1, const guint8 * s1, const guint8 * s2,
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);
}
@ -482,23 +449,24 @@ deinterlace_line_linear_blend (guint8 * d1, const guint8 * s1,
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;
@ -506,61 +474,60 @@ deinterlace_line_linear_blend (guint8 * d1, const guint8 * 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];
@ -568,34 +535,32 @@ _backup_deinterlace_line_linear_blend (OrcExecutor * ORC_RESTRICT ex)
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++;
}
}
@ -622,30 +587,21 @@ deinterlace_line_linear_blend (guint8 * d1, const guint8 * s1,
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);
}

View file

@ -10,8 +10,6 @@
extern "C" {
#endif
#ifndef _ORC_INTEGER_TYPEDEFS_
#define _ORC_INTEGER_TYPEDEFS_
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
@ -49,10 +47,10 @@ typedef long orc_int64;
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);

View file

@ -47,23 +47,14 @@ 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;
#endif
@ -96,17 +87,6 @@ void orc_splat_u32 (guint32 * d1, int p1, int n);
#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 */
@ -117,42 +97,38 @@ void
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++;
}
}
@ -176,8 +152,7 @@ orc_splat_u32 (guint32 * d1, int p1, int n)
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);
}

View file

@ -10,8 +10,6 @@
extern "C" {
#endif
#ifndef _ORC_INTEGER_TYPEDEFS_
#define _ORC_INTEGER_TYPEDEFS_
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
@ -49,10 +47,10 @@ typedef long orc_int64;
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

View file

@ -47,23 +47,14 @@ 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;
#endif
@ -99,17 +90,6 @@ void orc_blend_u8 (guint8 * d1, int d1_stride, const guint8 * s1, int s1_stride,
#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 */
@ -120,42 +100,38 @@ void
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++;
}
}
@ -179,8 +155,7 @@ orc_splat_u32 (guint32 * d1, int p1, int n)
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);
}
@ -205,46 +180,46 @@ void
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++;
}
}
@ -268,8 +243,7 @@ orc_memcpy_u32 (guint32 * d1, const guint32 * s1, int n)
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);
}
@ -296,49 +270,46 @@ orc_blend_u8 (guint8 * d1, int d1_stride, const guint8 * s1, int s1_stride,
{
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++;
}
}
@ -346,55 +317,52 @@ orc_blend_u8 (guint8 * d1, int d1_stride, const guint8 * s1, int s1_stride,
#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++;
}
}
@ -420,27 +388,19 @@ orc_blend_u8 (guint8 * d1, int d1_stride, const guint8 * s1, int s1_stride,
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);
}

View file

@ -10,8 +10,6 @@
extern "C" {
#endif
#ifndef _ORC_INTEGER_TYPEDEFS_
#define _ORC_INTEGER_TYPEDEFS_
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
@ -49,10 +47,10 @@ typedef long orc_int64;
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);

View file

@ -43,7 +43,7 @@
#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"
@ -377,7 +377,7 @@
#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"
@ -386,7 +386,7 @@
#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
@ -417,7 +417,7 @@
#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