Merge branch 'master' into 0.11
authorWim Taymans <wim.taymans@collabora.co.uk>
Sat, 26 Feb 2011 14:02:58 +0000 (15:02 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Sat, 26 Feb 2011 14:02:58 +0000 (15:02 +0100)
Conflicts:
configure.ac

49 files changed:
ChangeLog
NEWS
RELEASE
common
configure.ac
docs/plugins/gst-plugins-ugly-plugins.args
docs/plugins/inspect/plugin-a52dec.xml
docs/plugins/inspect/plugin-amrnb.xml
docs/plugins/inspect/plugin-amrwbdec.xml
docs/plugins/inspect/plugin-asf.xml
docs/plugins/inspect/plugin-cdio.xml
docs/plugins/inspect/plugin-dvdlpcmdec.xml
docs/plugins/inspect/plugin-dvdread.xml
docs/plugins/inspect/plugin-dvdsub.xml
docs/plugins/inspect/plugin-iec958.xml
docs/plugins/inspect/plugin-lame.xml
docs/plugins/inspect/plugin-mad.xml
docs/plugins/inspect/plugin-mpeg2dec.xml
docs/plugins/inspect/plugin-mpegaudioparse.xml
docs/plugins/inspect/plugin-mpegstream.xml
docs/plugins/inspect/plugin-realmedia.xml
docs/plugins/inspect/plugin-siddec.xml
docs/plugins/inspect/plugin-twolame.xml
docs/plugins/inspect/plugin-x264.xml
ext/amrwbdec/amrwbdec.c
ext/lame/gstlamemp3enc.c
ext/mad/gstmad.c
ext/mad/gstmad.h
ext/mpeg2dec/Makefile.am
ext/mpeg2dec/gstmpeg2dec.c
ext/mpeg2dec/gstmpeg2dec.h
ext/x264/gstx264enc.c
gst-plugins-ugly.doap
gst/asfdemux/asfheaders.c
gst/asfdemux/asfheaders.h
gst/asfdemux/asfpacket.c
gst/asfdemux/gstasfdemux.c
gst/mpegaudioparse/gstxingmux.c
gst/mpegstream/gstdvddemux.c
gst/mpegstream/gstmpegdemux.c
gst/realmedia/rademux.c
gst/realmedia/rmdemux.c
gst/realmedia/rmutils.c
po/bg.po
po/ca.po
po/ru.po
tests/check/Makefile.am
tests/check/pipelines/lame.c
win32/common/config.h

index 7c94248..9a7d8a6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+=== release 0.10.17 ===
+
+2011-01-21  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+         releasing 0.10.17, "Raised by Wolves"
+
+2011-01-18 11:11:28 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+       * docs/plugins/inspect/plugin-a52dec.xml:
+       * docs/plugins/inspect/plugin-amrnb.xml:
+       * docs/plugins/inspect/plugin-amrwbdec.xml:
+       * docs/plugins/inspect/plugin-asf.xml:
+       * docs/plugins/inspect/plugin-cdio.xml:
+       * docs/plugins/inspect/plugin-dvdlpcmdec.xml:
+       * docs/plugins/inspect/plugin-dvdread.xml:
+       * docs/plugins/inspect/plugin-dvdsub.xml:
+       * docs/plugins/inspect/plugin-iec958.xml:
+       * docs/plugins/inspect/plugin-lame.xml:
+       * docs/plugins/inspect/plugin-mad.xml:
+       * docs/plugins/inspect/plugin-mpeg2dec.xml:
+       * docs/plugins/inspect/plugin-mpegaudioparse.xml:
+       * docs/plugins/inspect/plugin-mpegstream.xml:
+       * docs/plugins/inspect/plugin-realmedia.xml:
+       * docs/plugins/inspect/plugin-siddec.xml:
+       * docs/plugins/inspect/plugin-twolame.xml:
+       * docs/plugins/inspect/plugin-x264.xml:
+       * win32/common/config.h:
+         0.10.16.4 pre-release
+
+2011-01-14 17:37:09 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * ext/mpeg2dec/gstmpeg2dec.c:
+         mpeg2dec: Use the proper component value for height
+
+2011-01-11 20:42:06 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+       * docs/plugins/inspect/plugin-a52dec.xml:
+       * docs/plugins/inspect/plugin-amrnb.xml:
+       * docs/plugins/inspect/plugin-amrwbdec.xml:
+       * docs/plugins/inspect/plugin-asf.xml:
+       * docs/plugins/inspect/plugin-cdio.xml:
+       * docs/plugins/inspect/plugin-dvdlpcmdec.xml:
+       * docs/plugins/inspect/plugin-dvdread.xml:
+       * docs/plugins/inspect/plugin-dvdsub.xml:
+       * docs/plugins/inspect/plugin-iec958.xml:
+       * docs/plugins/inspect/plugin-lame.xml:
+       * docs/plugins/inspect/plugin-mad.xml:
+       * docs/plugins/inspect/plugin-mpeg2dec.xml:
+       * docs/plugins/inspect/plugin-mpegaudioparse.xml:
+       * docs/plugins/inspect/plugin-mpegstream.xml:
+       * docs/plugins/inspect/plugin-realmedia.xml:
+       * docs/plugins/inspect/plugin-siddec.xml:
+       * docs/plugins/inspect/plugin-twolame.xml:
+       * docs/plugins/inspect/plugin-x264.xml:
+       * win32/common/config.h:
+         0.10.16.3 pre-release
+
+2011-01-11 17:09:02 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * gst/asfdemux/asfheaders.c:
+       * gst/asfdemux/asfheaders.h:
+       * gst/asfdemux/gstasfdemux.c:
+         asfdemux: Handle new type of DRM'd asf files.
+         These are produced by the new MS PlayReady system.
+         https://bugzilla.gnome.org/show_bug.cgi?id=639226
+
+2011-01-11 15:51:14 +0200  Stefan Kost <ensonic@users.sf.net>
+
+       * common:
+         Automatic update of common submodule
+         From e572c87 to f94d739
+
+2011-01-10 16:37:19 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * common:
+         Automatic update of common submodule
+         From ccbaa85 to e572c87
+
+2011-01-10 14:54:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * common:
+         Automatic update of common submodule
+         From 46445ad to ccbaa85
+
+2011-01-08 00:35:08 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * tests/check/Makefile.am:
+         tests: never disable g_assert() and cast checks for the unit tests
+         The unit tests are riddled with g_assert() and friends, make sure we
+         don't disable assert and cast checks for the unit tests even if
+         this has been specified for the rest of the code base, e.g. via
+         --disable-glib-asserts
+
+2011-01-07 14:42:26 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+       * win32/common/config.h:
+         0.10.16.2 pre-release
+
+2011-01-07 14:38:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * docs/plugins/gst-plugins-ugly-plugins.args:
+       * docs/plugins/inspect/plugin-a52dec.xml:
+       * docs/plugins/inspect/plugin-amrnb.xml:
+       * docs/plugins/inspect/plugin-amrwbdec.xml:
+       * docs/plugins/inspect/plugin-asf.xml:
+       * docs/plugins/inspect/plugin-cdio.xml:
+       * docs/plugins/inspect/plugin-dvdlpcmdec.xml:
+       * docs/plugins/inspect/plugin-dvdread.xml:
+       * docs/plugins/inspect/plugin-dvdsub.xml:
+       * docs/plugins/inspect/plugin-iec958.xml:
+       * docs/plugins/inspect/plugin-lame.xml:
+       * docs/plugins/inspect/plugin-mad.xml:
+       * docs/plugins/inspect/plugin-mpeg2dec.xml:
+       * docs/plugins/inspect/plugin-mpegaudioparse.xml:
+       * docs/plugins/inspect/plugin-mpegstream.xml:
+       * docs/plugins/inspect/plugin-realmedia.xml:
+       * docs/plugins/inspect/plugin-siddec.xml:
+       * docs/plugins/inspect/plugin-twolame.xml:
+       * docs/plugins/inspect/plugin-x264.xml:
+         docs: update docs
+
+2011-01-07 14:37:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * po/bg.po:
+       * po/ca.po:
+       * po/ru.po:
+         po: update translations
+
+2011-01-07 14:33:37 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+         configure: use $LIBM instead of hardcoding -lm
+
+2011-01-06 13:15:17 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * gst/realmedia/rmdemux.c:
+         rmdemux: Initialize return variable.
+         In the unlikely event that height is 0 (which is invalid) we would end up
+         never setting the flow return.
+
+2011-01-05 16:52:03 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * gst/realmedia/rmutils.c:
+         realmedia: Fix unitialized variables on macosx
+
+2011-01-04 10:32:05 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+       * ext/x264/gstx264enc.c:
+         x264enc: Handle codec/encoder tags
+         Make x264enc drop video-codec and codec tags and replace
+         encoder/encoder-version with x264 and its build number
+         Fixes #621465
+
+2010-12-29 22:17:50 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/mpeg2dec/gstmpeg2dec.c:
+         mpeg2dec: use gst_pad_alloc_buffer() when cropping buffers
+
+2010-12-29 22:10:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/mpeg2dec/gstmpeg2dec.c:
+         mpeg2dec: minor formatting clean-up
+
+2010-12-29 21:42:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/mpeg2dec/gstmpeg2dec.c:
+         mpeg2dec: refactor cropping code to use libgstvideo functions
+         https://bugzilla.gnome.org/show_bug.cgi?id=571146
+
+2010-12-29 20:19:34 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/mpeg2dec/gstmpeg2dec.c:
+       * ext/mpeg2dec/gstmpeg2dec.h:
+         mpeg2dec: use GstVideoFormat instead of custom enum
+
+2010-12-29 20:15:03 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/mpeg2dec/Makefile.am:
+         mpeg2dec: fix LIBADD order in Makefile.am
+
+2010-11-19 13:01:35 -0500  Tristan Matthews <tristan@sat.qc.ca>
+
+       * ext/x264/gstx264enc.c:
+         x264: vbv-buf-capacity should have a minimum of 0
+         x264 will clip this value internally, and users should be allowed to
+         specify a lower value than 300 ms.
+         https://bugzilla.gnome.org/show_bug.cgi?id=635291
+
+2010-12-27 11:38:24 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/x264/gstx264enc.c:
+         x264enc: also accept YV12 input
+
+2010-12-01 18:35:59 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * ext/x264/gstx264enc.c:
+         x264enc: add a note to the docs about encoder latency and queues
+         https://bugzilla.gnome.org/show_bug.cgi?id=636107
+
+2010-12-24 10:12:19 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+       * gst/realmedia/rademux.c:
+       * gst/realmedia/rmdemux.c:
+         realmedia: do not use the pad buffer allocation functions in demuxers
+         Doing so can block, see https://bugzilla.gnome.org/show_bug.cgi?id=637822
+         https://bugzilla.gnome.org/show_bug.cgi?id=637932
+
+2010-12-20 17:47:41 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+       * common:
+         Automatic update of common submodule
+         From 169462a to 46445ad
+
+2010-12-16 10:30:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * ext/mad/gstmad.c:
+         mad: If gst_pad_alloc_buffer() returns a buffer with the wrong size allocate a new one
+         Fixes bug #635461.
+
+2010-12-15 14:56:36 +0200  Stefan Kost <ensonic@users.sf.net>
+
+       * common:
+         Automatic update of common submodule
+         From 20742ae to 169462a
+
+2010-12-12 11:54:35 -0600  Rob Clark <rob@ti.com>
+
+       * gst/realmedia/rmdemux.c:
+         rmdemux: set GST_BUFFER_FLAG_DELTA_UNIT properly
+         Signed-off-by: Rob Clark <rob@ti.com>
+
+2010-12-13 16:24:09 +0200  Stefan Kost <ensonic@users.sf.net>
+
+       * common:
+         Automatic update of common submodule
+         From 011bcc8 to 20742ae
+
+2010-11-14 10:57:21 -0800  Leo Singer <leo.singer@ligo.org>
+
+       * configure.ac:
+         x264: uses pkg-config to locate libx264
+
+2010-12-07 15:39:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+       * tests/check/pipelines/lame.c:
+         check: don't use deprecated method
+
+2010-12-03 17:43:25 +0100  Benjamin Gaignard <benjamin.gaignard@stericsson.com>
+
+       * Android.mk:
+       * android/NOTICE:
+       * android/amrnb.mk:
+       * android/amrwbdec.mk:
+       * android/asf.mk:
+       * android/mpegaudioparse.mk:
+         Add build system for Android
+
+2010-11-25 19:51:50 +0100  Edward Hervey <bilboed@bilboed.com>
+
+       * gst/realmedia/rmutils.c:
+         realmedia: Remove dead assignments
+
+2010-11-25 19:51:40 +0100  Edward Hervey <bilboed@bilboed.com>
+
+       * ext/mad/gstmad.c:
+         mad: Remove dead assignments
+
+2010-11-13 12:38:45 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/dvdread/dvdreadsrc.c:
+         dvdreadsrc: remove bogus comment
+
+2010-11-13 12:34:37 +0000  Thomas Green <thomasgr33n@gmail.com>
+
+       * ext/dvdread/dvdreadsrc.c:
+         dvdreadsrc: fix handling of multi-angle streams
+         We would output all angles interleaved instead of just
+         the selected angle.
+         https://bugzilla.gnome.org/show_bug.cgi?id=539254
+
+2010-10-28 17:01:16 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/realmedia/Makefile.am:
+         realmedia: fix LIBS order in Makefile
+
+2010-10-22 09:17:40 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * 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/gl.po:
+       * po/hu.po:
+       * po/id.po:
+       * po/it.po:
+       * po/ja.po:
+       * po/lt.po:
+       * po/lv.po:
+       * po/ms.po:
+       * po/mt.po:
+       * po/nb.po:
+       * po/nl.po:
+       * po/or.po:
+       * po/pl.po:
+       * po/pt_BR.po:
+       * po/ro.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: update for new translatable strings
+
+2010-10-27 13:17:29 +0100  Jan Schmidt <thaytan@noraisin.net>
+
+       * common:
+         Automatic update of common submodule
+         From 7bbd708 to 011bcc8
+
+2010-10-20 20:26:45 +0200  Guillaume Emont <gemont@igalia.com>
+
+       * ext/mpeg2dec/gstmpeg2dec.c:
+         mpeg2dec: convert the position to stream time before answering to a position query
+
+2010-10-24 14:22:39 +0200  Edward Hervey <bilboed@bilboed.com>
+
+       * gst/realmedia/Makefile.am:
+       * gst/realmedia/rademux.c:
+       * gst/realmedia/rmdemux.c:
+       * gst/realmedia/rmdemux.h:
+         realmedia: Get codec name from pbutils instead of harcoding them
+
+2010-10-22 11:29:55 +0200  Robert Swain <robert.swain@collabora.co.uk>
+
+       * ext/x264/gstx264enc.c:
+         x264enc: Work around a rate control issue in libx264
+         When variable framerate is disabled in libx264 (which occurs when using
+         the zerolatency tuning), libx264 ignores timestamps but still uses the
+         timebase leading to messed up rate control with our nanosecond timebase.
+         We work around this issue by setting the timebase to the reciprocal of
+         the framerate and we validate that the framerate is suitable.
+         This has been fixed upstream in libx264 but there are non-fixed versions
+         in the wild so this workaround is still needed.
+         Fixes bug #632861
+
+2010-10-19 16:30:51 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * ext/mpeg2dec/gstmpeg2dec.c:
+         mpeg2dec: Use gst_pad_peer_query() instead of getting the peer pad manually
+
+2010-10-13 21:38:06 +0200  Guillaume Emont <gemont@igalia.com>
+
+       * ext/mpeg2dec/gstmpeg2dec.c:
+         mpeg2dec: fix position query by trusting upstream
+         Position queries are badly handled for DVDs (probably due to the division in
+         chapters): the time returned was the time since the start of chapter.
+         Now ask upstream for position queries, fall back to the old code if upstream
+         cannot answer the query.
+
+2010-10-19 12:20:40 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * ext/lame/gstlame.c:
+       * ext/mad/gstmad.c:
+       * ext/sidplay/gstsiddec.cc:
+       * gst/mpegstream/gstmpegparse.c:
+         various: canonicalize property names
+
+2010-10-19 10:06:33 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * ext/a52dec/gsta52dec.c:
+       * ext/amrnb/amrnbdec.c:
+       * ext/amrnb/amrnbenc.c:
+       * ext/cdio/gstcdiocddasrc.c:
+       * ext/dvdread/dvdreadsrc.c:
+       * ext/lame/gstlame.c:
+       * ext/lame/gstlamemp3enc.c:
+       * ext/mad/gstmad.c:
+       * ext/sidplay/gstsiddec.cc:
+       * ext/x264/gstx264enc.c:
+         various (ext): add a missing G_PARAM_STATIC_STRINGS flags
+
+2010-10-19 09:49:47 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * gst/iec958/ac3iec.c:
+       * gst/mpegaudioparse/gstmpegaudioparse.c:
+       * gst/mpegstream/gstmpegparse.c:
+       * gst/mpegstream/gstrfc2250enc.c:
+       * gst/realmedia/pnmsrc.c:
+       * gst/realmedia/rdtmanager.c:
+         various (gst): add a missing G_PARAM_STATIC_STRINGS flags
+
+2010-10-14 12:32:16 -0700  David Schleef <ds@schleef.org>
+
+       * common:
+         Automatic update of common submodule
+         From 5a668bf to 7bbd708
+
+2010-10-08 12:44:52 -0700  David Schleef <ds@schleef.org>
+
+       * common:
+         Automatic update of common submodule
+         From c4a8adc to 5a668bf
+
+2010-10-08 12:56:05 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * common:
+         Automatic update of common submodule
+         From 5e3c9bf to c4a8adc
+
+2010-09-29 21:24:23 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+       * ext/mad/gstmad.c:
+       * ext/mad/gstmad.h:
+         mad: support reverse playback
+
+2010-09-26 19:24:08 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/dvdread/dvdreadsrc.c:
+         dvdreadsrc: improve error messages on read errors
+         Provide proper i18n-ed error messages when a read error happens,
+         and point out that the error could be happening because the
+         DVD is scrambled.
+         https://bugzilla.gnome.org/show_bug.cgi?id=613633
+
+2010-09-24 00:03:50 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+         configure: set plugin release datetime
+
+2010-09-21 18:34:31 +0200  Edward Hervey <bilboed@bilboed.com>
+
+       * common:
+         Automatic update of common submodule
+         From aa0d1d0 to 5e3c9bf
+
+2010-09-15 20:14:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * gst/mpegstream/gstmpegparse.c:
+         mpegparse: re-fix flow return handling
+         Fix wrong GST_FLOW_IS_SUCCESS substitution in commit e99cb46c:
+         -  } while (GST_FLOW_IS_SUCCESS (result));
+         +  } while (result != GST_FLOW_OK);
+
+2010-09-09 22:33:36 +0300  Stefan Kost <ensonic@users.sf.net>
+
+       * tests/check/Makefile.am:
+       * tests/check/generic/states.c:
+         tests: allow running state tests for all elements
+         Now one can use GST_NO_STATE_IGNORE_ELEMENTS=1 make generic/states.check
+         to try elements that would normaly be skipped.
+
+2010-09-09 09:53:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * Makefile.am:
+         New pkgconfig subdirectory needs to be added to SUBDIRS as well so it's entered and disted
+
+2010-09-08 00:09:35 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+       * pkgconfig/.gitignore:
+       * pkgconfig/Makefile.am:
+       * pkgconfig/gstreamer-plugins-ugly-uninstalled.pc.in:
+         Add gstreamer-plugins-ugly-uninstalled-0.10.pc file so other modules can find our plugins
+         This .pc file will not be installed, it's only for uninstalled setups,
+         same thing as we do for -good. This is so other modules' unit tests can
+         find our plugins properly in an uninstalled setup.
+
+2010-09-07 11:42:52 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * common:
+         Automatic update of common submodule
+         From c2e10bf to aa0d1d0
+
+2010-09-06 23:53:10 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+         configure: re-enable use of -DGST_DISABLE_DEPRECATED in git versions
+
+2010-09-06 23:51:23 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * ext/sidplay/gstsiddec.cc:
+         siddec: don't use GST_FLOW_IS_FATAL
+         GST_FLOW_IS_FATAL has been deprecated in core git.
+
+2010-09-05 18:58:50 -0700  David Schleef <ds@schleef.org>
+
+       * common:
+         Automatic update of common submodule
+         From d3d9acf to c2e10bf
+
+2010-09-05 12:27:02 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * configure.ac:
+         configure: Require orc >= 0.4.6 for --compat
+
+2010-09-05 12:20:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * common:
+         Automatic update of common submodule
+         From ec60217 to d3d9acf
+
+2010-08-27 18:26:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * ext/mpeg2dec/gstmpeg2dec.c:
+         mpeg2dec: Don't use GST_FLOW_IS_FATAL()
+         And don't post error messages if allocating a buffer resulted
+         in WRONG_STATE or UNEXPECTED.
+
+2010-08-27 18:25:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/mpegaudioparse/gstxingmux.c:
+         xingmux: Don't ignore WRONG_STATE and NOT_LINKED when pushing data downstream
+
+2010-08-27 18:24:11 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/mpegstream/gstdvddemux.c:
+       * gst/mpegstream/gstmpegdemux.c:
+       * gst/mpegstream/gstmpegparse.c:
+         mpegstream: Don't use GST_FLOW_IS_SUCCESS()
+
+2010-08-27 18:22:45 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/realmedia/rmdemux.c:
+         rmdemux: Don't use GST_FLOW_IS_FATAL() and GST_FLOW_IS_SUCCESS()
+
+2010-08-27 18:19:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+       * gst/asfdemux/gstasfdemux.c:
+         asfdemux: Don't use GST_FLOW_IS_FATAL()
+         And don't post error messages for UNEXPECTED and post an error
+         message if pulling data failed because of NOT_LINKED.
+
+2010-09-04 13:17:53 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+       * configure.ac:
+       * docs/plugins/inspect/plugin-a52dec.xml:
+       * docs/plugins/inspect/plugin-amrnb.xml:
+       * docs/plugins/inspect/plugin-amrwbdec.xml:
+       * docs/plugins/inspect/plugin-asf.xml:
+       * docs/plugins/inspect/plugin-cdio.xml:
+       * docs/plugins/inspect/plugin-dvdlpcmdec.xml:
+       * docs/plugins/inspect/plugin-dvdread.xml:
+       * docs/plugins/inspect/plugin-dvdsub.xml:
+       * docs/plugins/inspect/plugin-iec958.xml:
+       * docs/plugins/inspect/plugin-lame.xml:
+       * docs/plugins/inspect/plugin-mad.xml:
+       * docs/plugins/inspect/plugin-mpeg2dec.xml:
+       * docs/plugins/inspect/plugin-mpegaudioparse.xml:
+       * docs/plugins/inspect/plugin-mpegstream.xml:
+       * docs/plugins/inspect/plugin-realmedia.xml:
+       * docs/plugins/inspect/plugin-siddec.xml:
+       * docs/plugins/inspect/plugin-twolame.xml:
+       * docs/plugins/inspect/plugin-x264.xml:
+       * win32/common/config.h:
+         Back to development
+         Temporarily disable -DGST_DISABLE_DEPRECATED for git builds until
+         the code is updated for the GST_FLOW_IS_* macro deprecations.
+
 === release 0.10.16 ===
 
-2010-09-02  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2010-09-02 23:59:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
        * configure.ac:
-         releasing 0.10.16, "Because He Knows the Time is Short"
+       * gst-plugins-ugly.doap:
+       * win32/common/config.h:
+         Release 0.10.16
 
-2010-09-02 23:49:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2010-09-02 23:58:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
        * docs/plugins/inspect/plugin-a52dec.xml:
        * docs/plugins/inspect/plugin-amrnb.xml:
        * docs/plugins/inspect/plugin-siddec.xml:
        * docs/plugins/inspect/plugin-twolame.xml:
        * docs/plugins/inspect/plugin-x264.xml:
-         docs: update for release
+         docs: update docs for release
 
 2010-09-02 23:48:05 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
diff --git a/NEWS b/NEWS
index d7f935e..396b101 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,41 @@
-This is GStreamer Ugly Plug-ins 0.10.16 "Because He Knows the Time is Short"
+This is GStreamer Ugly Plug-ins 0.10.17 "Raised by Wolves"
+
+Changes since 0.10.16:
+
+      * asfdemux: Handle new type of DRM'd asf files
+      * dvdreadsrc: fix handling of multi-angle streams
+      * dvdreadsrc: improve error messages on read errors
+      * mad: if gst_pad_alloc_buffer() returns a buffer with the wrong size allocate a new one
+      * mad: support reverse playback
+      * mpeg2dec: convert the position to stream time before answering to a position query
+      * mpeg2dec: fix position query by trusting upstream
+      * mpeg2dec: refactor cropping code to use libgstvideo functions
+      * mpeg2dec: use gst_pad_alloc_buffer() when cropping buffers
+      * mpegparse: re-fix flow return handling
+      * rmdemux: set GST_BUFFER_FLAG_DELTA_UNIT properly
+      * x264enc: add a note to the docs about encoder latency and queues
+      * x264enc: also accept YV12 input
+      * x264enc: Handle codec/encoder tags
+      * x264enc: Work around a rate control issue in libx264
+      * x264: use pkg-config to locate libx264
+      * x264: vbv-buf-capacity should have a minimum of 0
+      * xingmux: Don't ignore WRONG_STATE and NOT_LINKED when pushing data downstream
+
+Bugs fixed since 0.10.16:
+
+      * 539254 : [dvdreadsrc] DVDs with multiple angles switch angles during read
+      * 571146 : mpeg2dec: possibly uses wrong strides for 4:2:2 and 4:4:4 YUV with unusual display width or height
+      * 599515 : Fix dvb for DVB API 3.3
+      * 621465 : [x264enc] Video codec information copied incorrectly to output
+      * 632549 : [mpeg2dec] answers to position queries are wrong for DVDs
+      * 632861 : [x264enc] really bad quality with tune=zerolatency
+      * 634840 : x264: use pkg-config to locate dependencies for plugin
+      * 635291 : x264enc: " vbv-buf-capacity " property should have minimum value of 0
+      * 635461 : Crash in mad decoder when changing number of audio output channels in Totem while media is running
+      * 636107 : x264enc: docs should indicate specifics of using with queues
+      * 637093 : rmdemux: set GST_BUFFER_FLAG_DELTA_UNIT properly
+      * 637932 : realmedia: do not use the pad buffer allocation functions in demuxers
+      * 639226 : [asfdemux] Doesn't handle new PlayReady DRM files
 
 Changes since 0.10.15:
 
diff --git a/RELEASE b/RELEASE
index c4d7b64..3012d58 100644 (file)
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
 
-Release notes for GStreamer Ugly Plug-ins 0.10.16 "Because He Knows the Time is Short"
+Release notes for GStreamer Ugly Plug-ins 0.10.17 "Raised by Wolves"
         
 
 The GStreamer team is proud to announce a new release
@@ -8,8 +8,6 @@ GStreamer Ugly Plug-ins.
 
 
 The 0.10.x series is a stable series targeted at end users.
-It is not API or ABI compatible with the stable 0.8.x series.
-It is, however, parallel installable with the 0.8.x series.
 
 
 
@@ -55,38 +53,40 @@ contains a set of less supported plug-ins that haven't passed the
 
 Features of this release
     
-      * refactor x264enc to use current x264 API correctly, add new properties and new defaults
-      * liboil is no longer required, but orc is now required
-      * build: require orc >= 0.4.5, GLib >= 2.20, automake >= 1.10, autoconf >= 2.60; liboil is no longer required
-      * asfdemux: fix playback of files or streams that are shorter than the advertised preroll value
-      * asfdemux: fix sending eos event for chained asfs in pull mode (exotic)
-      * asfdemux: fix playback of files or streams that advertise miniscule preroll values
-      * lamemp3enc: implement latency query
-      * rmdemux: fix playback of sipro audio streams
-      * x264enc: refactor code in preparation for presets/tunings
-      * x264enc: add "profile" property (and default to MAIN profile)
-      * x264enc: improve defaults: medium speed/quality preset; auto mode for threads
-      * x264enc: add "speed-preset", "tune" and "psy-tune" properties
-      * x264enc: add "option-string" property to specify advanced parameters
-      * x264enc: set time base if needed, fixes visual artifacts
-      * x264enc: add "sliced-threads", "sync-lookahead", "intra-refresh", "mb-tree", and "rc-lookahead" properties
-      * x264enc: fix compilation against ancient x264 versions (X264_BUILD <= 75)
-      * x264enc: speed up first pass of multi-pass encoding (has no impact on quality)
-      * x264enc: fix flushing of delayed frames with new default settings
+      * asfdemux: Handle new type of DRM'd asf files
+      * dvdreadsrc: fix handling of multi-angle streams
+      * dvdreadsrc: improve error messages on read errors
+      * mad: if gst_pad_alloc_buffer() returns a buffer with the wrong size allocate a new one
+      * mad: support reverse playback
+      * mpeg2dec: convert the position to stream time before answering to a position query
+      * mpeg2dec: fix position query by trusting upstream
+      * mpeg2dec: refactor cropping code to use libgstvideo functions
+      * mpeg2dec: use gst_pad_alloc_buffer() when cropping buffers
+      * mpegparse: re-fix flow return handling
+      * rmdemux: set GST_BUFFER_FLAG_DELTA_UNIT properly
+      * x264enc: add a note to the docs about encoder latency and queues
+      * x264enc: also accept YV12 input
+      * x264enc: Handle codec/encoder tags
+      * x264enc: Work around a rate control issue in libx264
+      * x264: use pkg-config to locate libx264
+      * x264: vbv-buf-capacity should have a minimum of 0
+      * xingmux: Don't ignore WRONG_STATE and NOT_LINKED when pushing data downstream
 
 Bugs fixed in this release
      
-      * 599718 : [asf] support chained asfs
-      * 600412 : [asfdemux] Wrong handling of downstream GstFlowReturn
-      * 607798 : x264enc needs updating to support new features and use x264 correctly
-      * 618896 : lamemp3enc doesn't implement latency query
-      * 620007 : Gibberish sound when playing a certain RealMedia file of Sipro/ACELP.net audio codec
-      * 620344 : Update gst-plugins-ugly docs on website
-      * 622407 : [asfdemux] doesn't detect some streams if preroll value is very small
-      * 624786 : x264enc time base is wrong
-      * 625557 : x264enc doesn't flush delayed frames properly
-      * 626577 : [x264enc] regression: doesn't work with older versions of x264
-      * 627946 : mp3parse misuses GST_FLOW_IS_FATAL, doesn't forward GST_FLOW_UNEXPECTED upstream
+      * 539254 : [dvdreadsrc] DVDs with multiple angles switch angles during read
+      * 571146 : mpeg2dec: possibly uses wrong strides for 4:2:2 and 4:4:4 YUV with unusual display width or height
+      * 599515 : Fix dvb for DVB API 3.3
+      * 621465 : [x264enc] Video codec information copied incorrectly to output
+      * 632549 : [mpeg2dec] answers to position queries are wrong for DVDs
+      * 632861 : [x264enc] really bad quality with tune=zerolatency
+      * 634840 : x264: use pkg-config to locate dependencies for plugin
+      * 635291 : x264enc: " vbv-buf-capacity " property should have minimum value of 0
+      * 635461 : Crash in mad decoder when changing number of audio output channels in Totem while media is running
+      * 636107 : x264enc: docs should indicate specifics of using with queues
+      * 637093 : rmdemux: set GST_BUFFER_FLAG_DELTA_UNIT properly
+      * 637932 : realmedia: do not use the pad buffer allocation functions in demuxers
+      * 639226 : [asfdemux] Doesn't handle new PlayReady DRM files
 
 Download
 
@@ -115,17 +115,21 @@ Applications
   
 Contributors to this release
     
-      * Alessandro Decina
-      * David Hoyt
+      * Benjamin Gaignard
       * David Schleef
       * Edward Hervey
+      * Guillaume Emont
+      * Jan Schmidt
+      * Leo Singer
       * Mark Nauwelaerts
-      * Olivier Crête
+      * Rob Clark
       * Robert Swain
       * Sebastian Dröge
       * Stefan Kost
       * Thiago Santos
+      * Thomas Green
       * Tim-Philipp Müller
       * Tristan Matthews
+      * Vincent Penquerc'h
       * Wim Taymans
  
\ No newline at end of file
diff --git a/common b/common
index 011bcc8..1de7f6a 160000 (submodule)
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 011bcc8a0fc7f798ee874a7ba899123fb2470e22
+Subproject commit 1de7f6ab2d4bc1af69f06079cf0f4e2cbbfdc178
index fdb0a44..d16c139 100644 (file)
@@ -250,7 +250,7 @@ translit(dnm, m, l) AM_CONDITIONAL(USE_AMRNB, true)
 AG_GST_CHECK_FEATURE(AMRNB, [amrnb library], amrnb, [
   PKG_CHECK_MODULES(AMRNB, opencore-amrnb, HAVE_AMRNB="yes",
       [ AG_GST_CHECK_LIBHEADER(AMRNB, opencore-amrnb,
-                          Decoder_Interface_init, -lm,
+                          Decoder_Interface_init, $LIBM,
                           opencore-amrnb/interf_dec.h,
                           AMRNB_LIBS="-lopencore-amrnb")
       ])
@@ -287,10 +287,10 @@ AG_GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdreadsrc, [
 dnl *** lame ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
 AG_GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
-  AG_GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h,
+  AG_GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, $LIBM, lame/lame.h,
   [
     HAVE_LAME="yes"
-    LAME_LIBS="-lmp3lame -lm"
+    LAME_LIBS="-lmp3lame $LIBM"
     dnl is lame presets available
     LAME_CFLAGS=""
     AC_TRY_COMPILE([#include <lame/lame.h>], [ int preset = MEDIUM ],
@@ -371,24 +371,7 @@ AG_GST_CHECK_FEATURE(TWOLAME, [twolame], twolame, [
 dnl *** x264 (MPEG-4 part 10/h.264/AVC encoder) ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_X264, true)
 AG_GST_CHECK_FEATURE(X264, [x264 plug-in], x264, [
-  AG_GST_CHECK_LIBHEADER(X264, x264, x264_encoder_encode, -lm, x264.h,
-      AC_MSG_CHECKING([for uptodate x264 API version])
-      dnl _stdint not yet generated, so no compiling
-      AC_TRY_CPP([
-        #include <x264.h>
-        #if X264_BUILD < 55
-        #error "x264 build too old"
-        #endif
-      ], [
-        AC_MSG_RESULT(yes)
-        X264_LIBS="$LDFLAGS -lx264 -lm"
-        X264_CFLAGS="$CFLAGS"
-        AC_SUBST(X264_LIBS)
-        AC_SUBST(X264_CFLAGS)
-      ], [
-        AC_MSG_RESULT(no)
-        HAVE_X264=no
-      ]))
+  AG_GST_PKG_CHECK_MODULES(X264, x264 >= 0.55.0)
 ])
 
 else
@@ -536,7 +519,7 @@ sed \
     -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n#  define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-0.11"\n#else\n#  define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-0.11"\n#endif/' \
     -e 's/.* USE_BINARY_REGISTRY$/#define USE_BINARY_REGISTRY/' \
     -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
-    -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directaudiosink\"/" \
+    -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
     -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
     -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
     -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
index 2516199..e9ae943 100644 (file)
 <ARG>
 <NAME>GstX264Enc::vbv-buf-capacity</NAME>
 <TYPE>guint</TYPE>
-<RANGE>[300,10000]</RANGE>
+<RANGE><= 10000</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>VBV buffer capacity</NICK>
 <BLURB>Size of the VBV buffer in milliseconds.</BLURB>
index 3eab7c1..fc7299f 100644 (file)
@@ -3,7 +3,7 @@
   <description>Decodes ATSC A/52 encoded audio streams</description>
   <filename>../../ext/a52dec/.libs/libgsta52dec.so</filename>
   <basename>libgsta52dec.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index bb6043d..f37f9e0 100644 (file)
@@ -3,7 +3,7 @@
   <description>Adaptive Multi-Rate Narrow-Band</description>
   <filename>../../ext/amrnb/.libs/libgstamrnb.so</filename>
   <basename>libgstamrnb.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>unknown</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index 636980e..b159126 100644 (file)
@@ -3,7 +3,7 @@
   <description>Adaptive Multi-Rate Wide-Band Decoder</description>
   <filename>../../ext/amrwbdec/.libs/libgstamrwbdec.so</filename>
   <basename>libgstamrwbdec.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>unknown</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index 04722c6..f608ae3 100644 (file)
@@ -3,7 +3,7 @@
   <description>Demuxes and muxes audio and video in Microsofts ASF format</description>
   <filename>../../gst/asfdemux/.libs/libgstasf.so</filename>
   <basename>libgstasf.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index 9a66e3b..edc46ba 100644 (file)
@@ -3,7 +3,7 @@
   <description>Read audio from audio CDs</description>
   <filename>../../ext/cdio/.libs/libgstcdio.so</filename>
   <basename>libgstcdio.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index 2f7e583..bf1a628 100644 (file)
@@ -3,7 +3,7 @@
   <description>Decode DVD LPCM frames into standard PCM</description>
   <filename>../../gst/dvdlpcmdec/.libs/libgstdvdlpcmdec.so</filename>
   <basename>libgstdvdlpcmdec.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index dc07367..bc53d16 100644 (file)
@@ -3,7 +3,7 @@
   <description>Access a DVD with dvdread</description>
   <filename>../../ext/dvdread/.libs/libgstdvdread.so</filename>
   <basename>libgstdvdread.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index b437606..b72cf83 100644 (file)
@@ -3,7 +3,7 @@
   <description>DVD subtitle parser and decoder</description>
   <filename>../../gst/dvdsub/.libs/libgstdvdsub.so</filename>
   <basename>libgstdvdsub.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index f9e90b7..2f7b708 100644 (file)
@@ -3,7 +3,7 @@
   <description>Convert raw AC3 into IEC958 (S/PDIF) frames</description>
   <filename>../../gst/iec958/.libs/libgstiec958.so</filename>
   <basename>libgstiec958.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index ba424c8..3d4a58c 100644 (file)
@@ -3,7 +3,7 @@
   <description>Encode MP3s with LAME</description>
   <filename>../../ext/lame/.libs/libgstlame.so</filename>
   <basename>libgstlame.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index e5fcd1a..2b9190e 100644 (file)
@@ -3,7 +3,7 @@
   <description>mp3 decoding based on the mad library</description>
   <filename>../../ext/mad/.libs/libgstmad.so</filename>
   <basename>libgstmad.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index 88310ec..e7001f5 100644 (file)
@@ -3,7 +3,7 @@
   <description>LibMpeg2 decoder</description>
   <filename>../../ext/mpeg2dec/.libs/libgstmpeg2dec.so</filename>
   <basename>libgstmpeg2dec.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index 3a71952..342977d 100644 (file)
@@ -3,7 +3,7 @@
   <description>MPEG-1 layer 1/2/3 audio stream elements</description>
   <filename>../../gst/mpegaudioparse/.libs/libgstmpegaudioparse.so</filename>
   <basename>libgstmpegaudioparse.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index 096ed37..461f86e 100644 (file)
@@ -3,7 +3,7 @@
   <description>MPEG system stream parser</description>
   <filename>../../gst/mpegstream/.libs/libgstmpegstream.so</filename>
   <basename>libgstmpegstream.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index 1cc6165..149002c 100644 (file)
@@ -3,7 +3,7 @@
   <description>RealMedia support plugins</description>
   <filename>../../gst/realmedia/.libs/libgstrmdemux.so</filename>
   <basename>libgstrmdemux.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index b483909..d33a037 100644 (file)
@@ -3,7 +3,7 @@
   <description>Uses libsidplay to decode .sid files</description>
   <filename>../../ext/sidplay/.libs/libgstsid.so</filename>
   <basename>libgstsid.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index 900182d..38bcb0f 100644 (file)
@@ -3,7 +3,7 @@
   <description>Encode MP2s with TwoLAME</description>
   <filename>../../ext/twolame/.libs/libgsttwolame.so</filename>
   <basename>libgsttwolame.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
index 2e84209..ee349f0 100644 (file)
@@ -3,7 +3,7 @@
   <description>libx264-based H264 plugins</description>
   <filename>../../ext/x264/.libs/libgstx264.so</filename>
   <basename>libgstx264.so</basename>
-  <version>0.10.16.1</version>
+  <version>0.10.17.1</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins git</package>
@@ -20,7 +20,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</details>
+          <details>video/x-raw-yuv, format=(fourcc){ I420, YV12 }, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</details>
         </caps>
         <caps>
           <name>src</name>
index bbaf33b..51f759d 100644 (file)
@@ -63,7 +63,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_amrwbdec_debug);
 
 static const unsigned char block_size[16] =
     { 18, 24, 33, 37, 41, 47, 51, 59, 61,
-  6, 6, 0, 0, 0, 1, 1
+  6, 0, 0, 0, 0, 1, 1
 };
 
 static gboolean gst_amrwbdec_event (GstPad * pad, GstEvent * event);
@@ -285,7 +285,13 @@ gst_amrwbdec_chain (GstPad * pad, GstBuffer * buffer)
 
     GST_DEBUG_OBJECT (amrwbdec, "mode %d, block %d", mode, block);
 
-    if (!block || gst_adapter_available (amrwbdec->adapter) < block)
+    if (!block) {
+      GST_LOG_OBJECT (amrwbdec, "skipping byte");
+      gst_adapter_flush (amrwbdec->adapter, 1);
+      continue;
+    }
+
+    if (gst_adapter_available (amrwbdec->adapter) < block)
       break;
 
     /* the library seems to write into the source data, hence the copy. */
index 7ad7829..21bc956 100644 (file)
@@ -389,6 +389,61 @@ setup_failed:
   }
 }
 
+static GstCaps *
+gst_lamemp3enc_sink_getcaps (GstPad * pad)
+{
+  const GstCaps *templ_caps;
+  GstLameMP3Enc *lame;
+  GstCaps *allowed = NULL;
+  GstCaps *caps, *filter_caps;
+  gint i, j;
+
+  lame = GST_LAMEMP3ENC (gst_pad_get_parent (pad));
+
+  /* we want to be able to communicate to upstream elements like audioconvert
+   * and audioresample any rate/channel restrictions downstream (e.g. muxer
+   * only accepting certain sample rates) */
+  templ_caps = gst_pad_get_pad_template_caps (pad);
+  allowed = gst_pad_get_allowed_caps (lame->srcpad);
+  if (!allowed || gst_caps_is_empty (allowed) || gst_caps_is_any (allowed)) {
+    caps = gst_caps_copy (templ_caps);
+    goto done;
+  }
+
+  filter_caps = gst_caps_new_empty ();
+
+  for (i = 0; i < gst_caps_get_size (templ_caps); i++) {
+    GQuark q_name;
+
+    q_name = gst_structure_get_name_id (gst_caps_get_structure (templ_caps, i));
+
+    /* pick rate + channel fields from allowed caps */
+    for (j = 0; j < gst_caps_get_size (allowed); j++) {
+      const GstStructure *allowed_s = gst_caps_get_structure (allowed, j);
+      const GValue *val;
+      GstStructure *s;
+
+      s = gst_structure_id_empty_new (q_name);
+      if ((val = gst_structure_get_value (allowed_s, "rate")))
+        gst_structure_set_value (s, "rate", val);
+      if ((val = gst_structure_get_value (allowed_s, "channels")))
+        gst_structure_set_value (s, "channels", val);
+
+      gst_caps_merge_structure (filter_caps, s);
+    }
+  }
+
+  caps = gst_caps_intersect (filter_caps, templ_caps);
+  gst_caps_unref (filter_caps);
+
+done:
+
+  gst_caps_replace (&allowed, NULL);
+  gst_object_unref (lame);
+
+  return caps;
+}
+
 static gint64
 gst_lamemp3enc_get_latency (GstLameMP3Enc * lame)
 {
@@ -453,6 +508,8 @@ gst_lamemp3enc_init (GstLameMP3Enc * lame)
       GST_DEBUG_FUNCPTR (gst_lamemp3enc_chain));
   gst_pad_set_setcaps_function (lame->sinkpad,
       GST_DEBUG_FUNCPTR (gst_lamemp3enc_sink_setcaps));
+  gst_pad_set_getcaps_function (lame->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_lamemp3enc_sink_getcaps));
   gst_element_add_pad (GST_ELEMENT (lame), lame->sinkpad);
 
   lame->srcpad =
index d345023..35efbb5 100644 (file)
@@ -100,10 +100,8 @@ static GstFlowReturn gst_mad_chain_reverse (GstMad * mad, GstBuffer * buf);
 static GstStateChangeReturn gst_mad_change_state (GstElement * element,
     GstStateChange transition);
 
-#ifndef GST_DISABLE_INDEX
 static void gst_mad_set_index (GstElement * element, GstIndex * index);
 static GstIndex *gst_mad_get_index (GstElement * element);
-#endif
 
 static GstTagList *gst_mad_id3_to_tag_list (const struct id3_tag *tag);
 
@@ -200,10 +198,8 @@ gst_mad_class_init (GstMadClass * klass)
   gobject_class->dispose = gst_mad_dispose;
 
   gstelement_class->change_state = gst_mad_change_state;
-#ifndef GST_DISABLE_INDEX
   gstelement_class->set_index = gst_mad_set_index;
   gstelement_class->get_index = gst_mad_get_index;
-#endif
 
   /* init properties */
   /* currently, string representations are used, we might want to change that */
@@ -287,9 +283,7 @@ gst_mad_dispose (GObject * object)
 {
   GstMad *mad = GST_MAD (object);
 
-#ifndef GST_DISABLE_INDEX
   gst_mad_set_index (GST_ELEMENT (object), NULL);
-#endif
 
   g_free (mad->tempbuffer);
   mad->tempbuffer = NULL;
@@ -301,7 +295,6 @@ gst_mad_dispose (GObject * object)
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
 
-#ifndef GST_DISABLE_INDEX
 static void
 gst_mad_set_index (GstElement * element, GstIndex * index)
 {
@@ -320,7 +313,6 @@ gst_mad_get_index (GstElement * element)
 
   return mad->index;
 }
-#endif
 
 static gboolean
 gst_mad_convert_sink (GstPad * pad, GstFormat src_format, gint64 src_value,
@@ -604,7 +596,6 @@ error:
   return FALSE;
 }
 
-#ifndef GST_DISABLE_INDEX
 static gboolean
 index_seek (GstMad * mad, GstPad * pad, GstEvent * event)
 {
@@ -681,7 +672,6 @@ index_seek (GstMad * mad, GstPad * pad, GstEvent * event)
 
   return FALSE;
 }
-#endif
 
 static gboolean
 normal_seek (GstMad * mad, GstPad * pad, GstEvent * event)
@@ -807,11 +797,9 @@ gst_mad_src_event (GstPad * pad, GstEvent * event)
       /* the all-formats seek logic, ref the event, we need it later */
       gst_event_ref (event);
       if (!(res = gst_pad_push_event (mad->sinkpad, event))) {
-#ifndef GST_DISABLE_INDEX
         if (mad->index)
           res = index_seek (mad, pad, event);
         else
-#endif
           res = normal_seek (mad, pad, event);
       }
       gst_event_unref (event);
@@ -1038,10 +1026,10 @@ gst_mad_check_restart (GstMad * mad)
 }
 
 
-/* The following code has been taken from 
+/* The following code has been taken from
  * rhythmbox/metadata/monkey-media/stream-info-impl/id3-vfs/mp3bitrate.c
  * which took it from xine-lib/src/demuxers/demux_mpgaudio.c
- * This code has been kindly relicensed to LGPL by Thibaut Mattern and 
+ * This code has been kindly relicensed to LGPL by Thibaut Mattern and
  * Bastien Nocera
  */
 #define BE_32(x) GST_READ_UINT32_BE(x)
@@ -1642,11 +1630,11 @@ gst_mad_chain (GstPad * pad, GstBuffer * buffer)
 
           /* We are using the incoming timestamps to generate the outgoing ones
            * if available. However some muxing formats are not precise enough
-           * to allow us to generate a perfect stream. When converting the 
+           * to allow us to generate a perfect stream. When converting the
            * timestamp to a number of encoded samples so far we are introducing
-           * a lot of potential error compared to our accumulated number of 
-           * samples encoded. If the difference between those 2 numbers is 
-           * bigger than half a frame we then use the incoming timestamp 
+           * a lot of potential error compared to our accumulated number of
+           * samples encoded. If the difference between those 2 numbers is
+           * bigger than half a frame we then use the incoming timestamp
            * as a reference, otherwise we continue using our accumulated samples
            * counter */
           if (ABS (mad->total_samples - total) > nsamples / 2) {
@@ -1672,14 +1660,13 @@ gst_mad_chain (GstPad * pad, GstBuffer * buffer)
             GST_SECOND, mad->rate) - time_offset;
       }
 
-#ifndef GST_DISABLE_INDEX
       if (mad->index) {
         guint64 x_bytes = mad->base_byte_offset + mad->bytes_consumed;
 
-        gst_index_add_association (mad->index, mad->index_id, 0,
+        gst_index_add_association (mad->index, mad->index_id,
+            GST_ASSOCIATION_FLAG_DELTA_UNIT,
             GST_FORMAT_BYTES, x_bytes, GST_FORMAT_TIME, time_offset, NULL);
       }
-#endif
 
       if (mad->segment_start <= (time_offset ==
               GST_CLOCK_TIME_NONE ? 0 : time_offset)) {
@@ -1728,6 +1715,13 @@ gst_mad_chain (GstPad * pad, GstBuffer * buffer)
           goto skip_frame;
         }
 
+        if (GST_BUFFER_SIZE (outbuffer) != nsamples * mad->channels * 4) {
+          gst_buffer_unref (outbuffer);
+
+          outbuffer = gst_buffer_new_and_alloc (nsamples * mad->channels * 4);
+          gst_buffer_set_caps (outbuffer, GST_PAD_CAPS (mad->srcpad));
+        }
+
         mad_synth_frame (&mad->synth, &mad->frame);
         left_ch = mad->synth.pcm.samples[0];
         right_ch = mad->synth.pcm.samples[1];
index 63e1afa..3acc7e2 100644 (file)
@@ -86,10 +86,8 @@ struct _GstMad
   gint times_pending;
 
   gboolean caps_set;            /* used to keep track of whether to change/update caps */
-#ifndef GST_DISABLE_INDEX
   GstIndex *index;
   gint index_id;
-#endif
 
   gboolean check_for_xing;
   gboolean xing_found;
index 376336c..ab2aed3 100644 (file)
@@ -1,9 +1,10 @@
 plugin_LTLIBRARIES = libgstmpeg2dec.la
 
 libgstmpeg2dec_la_SOURCES = gstmpeg2dec.c
-libgstmpeg2dec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(MPEG2DEC_CFLAGS)
-libgstmpeg2dec_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(MPEG2DEC_LIBS) $(GST_LIBS) \
-                               -lgstvideo-$(GST_MAJORMINOR)
+libgstmpeg2dec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
+       $(GST_CFLAGS) $(MPEG2DEC_CFLAGS)
+libgstmpeg2dec_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \
+       $(GST_LIBS) $(MPEG2DEC_LIBS)
 libgstmpeg2dec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstmpeg2dec_la_LIBTOOLFLAGS = --tag=disable-static
 
index f552d7d..5867462 100644 (file)
@@ -85,10 +85,8 @@ static void gst_mpeg2dec_init (GstMpeg2dec * mpeg2dec);
 static void gst_mpeg2dec_finalize (GObject * object);
 static void gst_mpeg2dec_reset (GstMpeg2dec * mpeg2dec);
 
-#ifndef GST_DISABLE_INDEX
 static void gst_mpeg2dec_set_index (GstElement * element, GstIndex * index);
 static GstIndex *gst_mpeg2dec_get_index (GstElement * element);
-#endif
 
 static gboolean gst_mpeg2dec_src_event (GstPad * pad, GstEvent * event);
 static const GstQueryType *gst_mpeg2dec_get_src_query_types (GstPad * pad);
@@ -121,7 +119,7 @@ static const GstEventMask *gst_mpeg2dec_get_event_masks (GstPad * pad);
 
 static GstElementClass *parent_class = NULL;
 
-static gboolean crop_buffer (GstMpeg2dec * mpeg2dec, GstBuffer ** buf);
+static gboolean gst_mpeg2dec_crop_buffer (GstMpeg2dec * dec, GstBuffer ** buf);
 
 /*static guint gst_mpeg2dec_signals[LAST_SIGNAL] = { 0 };*/
 
@@ -187,10 +185,8 @@ gst_mpeg2dec_class_init (GstMpeg2decClass * klass)
   gobject_class->finalize = gst_mpeg2dec_finalize;
 
   gstelement_class->change_state = gst_mpeg2dec_change_state;
-#ifndef GST_DISABLE_INDEX
   gstelement_class->set_index = gst_mpeg2dec_set_index;
   gstelement_class->get_index = gst_mpeg2dec_get_index;
-#endif
 }
 
 static void
@@ -268,7 +264,7 @@ gst_mpeg2dec_reset (GstMpeg2dec * mpeg2dec)
   }
 
   /* reset the initial video state */
-  mpeg2dec->format = MPEG2DEC_FORMAT_NONE;
+  mpeg2dec->format = GST_VIDEO_FORMAT_UNKNOWN;
   mpeg2dec->width = -1;
   mpeg2dec->height = -1;
   gst_segment_init (&mpeg2dec->segment, GST_FORMAT_UNDEFINED);
@@ -291,7 +287,6 @@ gst_mpeg2dec_qos_reset (GstMpeg2dec * mpeg2dec)
   GST_OBJECT_UNLOCK (mpeg2dec);
 }
 
-#ifndef GST_DISABLE_INDEX
 static void
 gst_mpeg2dec_set_index (GstElement * element, GstIndex * index)
 {
@@ -317,139 +312,63 @@ gst_mpeg2dec_get_index (GstElement * element)
 
   return (mpeg2dec->index) ? gst_object_ref (mpeg2dec->index) : NULL;
 }
-#endif
-
-/* see gst-plugins/gst/games/gstvideoimage.c, paint_setup_I420() */
-#define I420_Y_ROWSTRIDE(width) (GST_ROUND_UP_4(width))
-#define I420_U_ROWSTRIDE(width) (GST_ROUND_UP_8(width)/2)
-#define I420_V_ROWSTRIDE(width) ((GST_ROUND_UP_8(I420_Y_ROWSTRIDE(width)))/2)
-
-#define I420_Y_OFFSET(w,h) (0)
-#define I420_U_OFFSET(w,h) (I420_Y_OFFSET(w,h)+(I420_Y_ROWSTRIDE(w)*GST_ROUND_UP_2(h)))
-#define I420_V_OFFSET(w,h) (I420_U_OFFSET(w,h)+(I420_U_ROWSTRIDE(w)*GST_ROUND_UP_2(h)/2))
-
-#define I420_SIZE(w,h)     (I420_V_OFFSET(w,h)+(I420_V_ROWSTRIDE(w)*GST_ROUND_UP_2(h)/2))
-
-static GstBuffer *
-crop_copy_i420_buffer (GstMpeg2dec * mpeg2dec, GstBuffer * input)
-{
-  GstBuffer *outbuf;
-  guint8 *dest, *src;
-  guint outsize, line;
-
-  outsize = I420_SIZE (mpeg2dec->width, mpeg2dec->height);
-  GST_LOG_OBJECT (mpeg2dec, "Copying input buffer %ux%u (%u) to output buffer "
-      "%ux%u (%u)", mpeg2dec->decoded_width, mpeg2dec->decoded_height,
-      GST_BUFFER_SIZE (input), mpeg2dec->width, mpeg2dec->height, outsize);
-  outbuf = gst_buffer_new_and_alloc (outsize);
-
-  /* Copy Y first */
-  src = GST_BUFFER_DATA (input);
-  dest = GST_BUFFER_DATA (outbuf);
-  for (line = 0; line < mpeg2dec->height; line++) {
-    memcpy (dest, src, mpeg2dec->width);
-    dest += I420_Y_ROWSTRIDE (mpeg2dec->width);
-    src += I420_Y_ROWSTRIDE (mpeg2dec->decoded_width);
-  }
-
-  /* U */
-  src = GST_BUFFER_DATA (input)
-      + I420_U_OFFSET (mpeg2dec->decoded_width, mpeg2dec->decoded_height);
-  dest = GST_BUFFER_DATA (outbuf)
-      + I420_U_OFFSET (mpeg2dec->width, mpeg2dec->height);
-  for (line = 0; line < mpeg2dec->height / 2; line++) {
-    memcpy (dest, src, mpeg2dec->width / 2);
-    dest += I420_U_ROWSTRIDE (mpeg2dec->width);
-    src += I420_U_ROWSTRIDE (mpeg2dec->decoded_width);
-  }
-
-  /* V */
-  src = GST_BUFFER_DATA (input)
-      + I420_V_OFFSET (mpeg2dec->decoded_width, mpeg2dec->decoded_height);
-  dest = GST_BUFFER_DATA (outbuf)
-      + I420_V_OFFSET (mpeg2dec->width, mpeg2dec->height);
-  for (line = 0; line < mpeg2dec->height / 2; line++) {
-    memcpy (dest, src, mpeg2dec->width / 2);
-    dest += I420_V_ROWSTRIDE (mpeg2dec->width);
-    src += I420_V_ROWSTRIDE (mpeg2dec->decoded_width);
-  }
-
-  return outbuf;
-}
 
-  /* FIXME: this is unlikely to be right stride-wise and offset-wise */
-static GstBuffer *
-crop_copy_i422_buffer (GstMpeg2dec * mpeg2dec, GstBuffer * input)
+static GstFlowReturn
+gst_mpeg2dec_crop_buffer (GstMpeg2dec * dec, GstBuffer ** buf)
 {
+  GstFlowReturn flow_ret;
+  GstBuffer *inbuf = *buf;
   GstBuffer *outbuf;
-  guint8 *in_data, *out_data;
-  guint line;
-
-  outbuf = gst_buffer_new_and_alloc (mpeg2dec->width * mpeg2dec->height * 2);
-
-  /* Copy Y first */
-  in_data = GST_BUFFER_DATA (input);
-  out_data = GST_BUFFER_DATA (outbuf);
-  for (line = 0; line < mpeg2dec->height; line++) {
-    memcpy (out_data, in_data, mpeg2dec->width);
-    out_data += mpeg2dec->width;
-    in_data += mpeg2dec->decoded_width;
-  }
-
-  /* Now copy U & V */
-  in_data = GST_BUFFER_DATA (input)
-      + mpeg2dec->decoded_width * mpeg2dec->decoded_height;
-  for (line = 0; line < mpeg2dec->height; line++) {
-    memcpy (out_data, in_data, mpeg2dec->width / 2);
-    memcpy (out_data + mpeg2dec->width * mpeg2dec->height / 2,
-        in_data + mpeg2dec->decoded_width * mpeg2dec->decoded_height / 2,
-        mpeg2dec->width / 2);
-    out_data += mpeg2dec->width / 2;
-    in_data += mpeg2dec->decoded_width / 2;
+  guint outsize, c;
+
+  outsize = gst_video_format_get_size (dec->format, dec->width, dec->height);
+
+  GST_LOG_OBJECT (dec, "Copying input buffer %ux%u (%u) to output buffer "
+      "%ux%u (%u)", dec->decoded_width, dec->decoded_height,
+      GST_BUFFER_SIZE (inbuf), dec->width, dec->height, outsize);
+
+  flow_ret = gst_pad_alloc_buffer_and_set_caps (dec->srcpad,
+      GST_BUFFER_OFFSET_NONE, outsize, GST_PAD_CAPS (dec->srcpad), &outbuf);
+
+  if (G_UNLIKELY (flow_ret != GST_FLOW_OK))
+    return flow_ret;
+
+  for (c = 0; c < 3; c++) {
+    const guint8 *src;
+    guint8 *dest;
+    guint stride_in, stride_out;
+    guint c_height, c_width, line;
+
+    src =
+        GST_BUFFER_DATA (inbuf) +
+        gst_video_format_get_component_offset (dec->format, c,
+        dec->decoded_width, dec->decoded_height);
+    dest =
+        GST_BUFFER_DATA (outbuf) +
+        gst_video_format_get_component_offset (dec->format, c, dec->width,
+        dec->height);
+    stride_out = gst_video_format_get_row_stride (dec->format, c, dec->width);
+    stride_in =
+        gst_video_format_get_row_stride (dec->format, c, dec->decoded_width);
+    c_height =
+        gst_video_format_get_component_height (dec->format, c, dec->height);
+    c_width = gst_video_format_get_component_width (dec->format, c, dec->width);
+
+    for (line = 0; line < c_height; line++) {
+      memcpy (dest, src, c_width);
+      dest += stride_out;
+      src += stride_in;
+    }
   }
 
-  return outbuf;
-}
+  gst_buffer_set_caps (outbuf, GST_PAD_CAPS (dec->srcpad));
+  gst_buffer_copy_metadata (outbuf, inbuf,
+      GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS);
 
-static gboolean
-crop_buffer (GstMpeg2dec * mpeg2dec, GstBuffer ** buf)
-{
-  gboolean result = TRUE;
-  GstBuffer *input = *buf;
-  GstBuffer *outbuf;
+  gst_buffer_unref (*buf);
+  *buf = outbuf;
 
-  /*We crop only if the target region is smaller than the input one */
-  if ((mpeg2dec->decoded_width > mpeg2dec->width) ||
-      (mpeg2dec->decoded_height > mpeg2dec->height)) {
-    /* If we don't know about the format, we just return the original
-     * buffer.
-     */
-    if (mpeg2dec->format == MPEG2DEC_FORMAT_I422 ||
-        mpeg2dec->format == MPEG2DEC_FORMAT_I420 ||
-        mpeg2dec->format == MPEG2DEC_FORMAT_YV12) {
-      /*FIXME:  I have tried to use gst_buffer_copy_on_write, but it
-       *        still have some artifact, so I'me allocating new buffer
-       *        for each frame decoded...
-       */
-      if (mpeg2dec->format == MPEG2DEC_FORMAT_I422) {
-        outbuf = crop_copy_i422_buffer (mpeg2dec, input);
-      } else {
-        outbuf = crop_copy_i420_buffer (mpeg2dec, input);
-      }
-
-      GST_DEBUG ("cropping buffer");
-
-      gst_buffer_set_caps (outbuf, GST_PAD_CAPS (mpeg2dec->srcpad));
-      gst_buffer_copy_metadata (outbuf, input,
-          GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS);
-      gst_buffer_unref (input);
-
-      *buf = outbuf;
-      result = TRUE;
-    }
-  }
-
-  return result;
+  return GST_FLOW_OK;
 }
 
 static GstFlowReturn
@@ -524,7 +443,8 @@ gst_mpeg2dec_alloc_buffer (GstMpeg2dec * mpeg2dec, gint64 offset,
   /* ERRORS */
 no_buffer:
   {
-    if (ret != GST_FLOW_WRONG_STATE && ret != GST_FLOW_UNEXPECTED) {
+    if (ret != GST_FLOW_WRONG_STATE && ret != GST_FLOW_UNEXPECTED &&
+        ret != GST_FLOW_NOT_LINKED) {
       GST_ELEMENT_ERROR (mpeg2dec, RESOURCE, FAILED, (NULL),
           ("Failed to allocate memory for buffer, reason %s",
               gst_flow_get_name (ret)));
@@ -550,47 +470,28 @@ gst_mpeg2dec_negotiate_format (GstMpeg2dec * mpeg2dec)
 
   if (sequence->width != sequence->chroma_width &&
       sequence->height != sequence->chroma_height) {
-
-    fourcc = GST_STR_FOURCC ("I420");
-    mpeg2dec->format = MPEG2DEC_FORMAT_I420;
-    mpeg2dec->size =
-        I420_SIZE (mpeg2dec->decoded_width, mpeg2dec->decoded_height);
-
-    mpeg2dec->u_offs =
-        I420_U_OFFSET (mpeg2dec->decoded_width, mpeg2dec->decoded_height);
-    mpeg2dec->v_offs =
-        I420_V_OFFSET (mpeg2dec->decoded_width, mpeg2dec->decoded_height);
-
+    mpeg2dec->format = GST_VIDEO_FORMAT_I420;
   } else if ((sequence->width == sequence->chroma_width &&
           sequence->height != sequence->chroma_height) ||
       (sequence->width != sequence->chroma_width &&
           sequence->height == sequence->chroma_height)) {
-    gint halfsize;
-
-    fourcc = GST_STR_FOURCC ("Y42B");
-    mpeg2dec->format = MPEG2DEC_FORMAT_I422;
-    halfsize = mpeg2dec->decoded_width * mpeg2dec->decoded_height;
-    mpeg2dec->size = halfsize * 2;
-    mpeg2dec->u_offs = halfsize;
-    mpeg2dec->v_offs = halfsize + (halfsize / 2);
+    mpeg2dec->format = GST_VIDEO_FORMAT_Y42B;
   } else {
-    gint size;
-
-    size = mpeg2dec->decoded_width * mpeg2dec->decoded_height;
-
-    fourcc = GST_STR_FOURCC ("Y444");
-    mpeg2dec->format = MPEG2DEC_FORMAT_Y444;
-    mpeg2dec->size = size * 3;
-    mpeg2dec->u_offs = size;
-    mpeg2dec->v_offs = size * 2;
+    mpeg2dec->format = GST_VIDEO_FORMAT_Y444;
   }
 
+  fourcc = gst_video_format_to_fourcc (mpeg2dec->format);
+  mpeg2dec->size = gst_video_format_get_size (mpeg2dec->format,
+      mpeg2dec->decoded_width, mpeg2dec->decoded_height);
+  mpeg2dec->u_offs = gst_video_format_get_component_offset (mpeg2dec->format, 1,
+      mpeg2dec->decoded_width, mpeg2dec->decoded_height);
+  mpeg2dec->v_offs = gst_video_format_get_component_offset (mpeg2dec->format, 2,
+      mpeg2dec->decoded_width, mpeg2dec->decoded_height);
+
   if (mpeg2dec->pixel_width == 0 || mpeg2dec->pixel_height == 0) {
-    GValue par = { 0, }
-    , dar = {
-    0,}
-    , dimensions = {
-    0,};
+    GValue par = { 0, };
+    GValue dar = { 0, };
+    GValue dimensions = { 0, };
 
     /* assume display aspect ratio (DAR) of 4:3 */
     g_value_init (&dar, GST_TYPE_FRACTION);
@@ -706,7 +607,7 @@ handle_sequence (GstMpeg2dec * mpeg2dec, const mpeg2_info_t * info)
 
   init_dummybuf (mpeg2dec);
 
-  /* Pump in some null buffers, because otherwise libmpeg2 doesn't 
+  /* Pump in some null buffers, because otherwise libmpeg2 doesn't
    * initialise the discard_fbuf->id */
   mpeg2_set_buf (mpeg2dec->decoder, mpeg2dec->dummybuf, NULL);
   mpeg2_set_buf (mpeg2dec->decoder, mpeg2dec->dummybuf, NULL);
@@ -981,14 +882,13 @@ handle_slice (GstMpeg2dec * mpeg2dec, const mpeg2_info_t * info)
       picture->nb_fields, GST_BUFFER_OFFSET (outbuf),
       GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)));
 
-#ifndef GST_DISABLE_INDEX
   if (mpeg2dec->index) {
     gst_index_add_association (mpeg2dec->index, mpeg2dec->index_id,
-        (key_frame ? GST_ASSOCIATION_FLAG_KEY_UNIT : 0),
+        (key_frame ? GST_ASSOCIATION_FLAG_KEY_UNIT :
+            GST_ASSOCIATION_FLAG_DELTA_UNIT),
         GST_FORMAT_BYTES, GST_BUFFER_OFFSET (outbuf),
         GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (outbuf), 0);
   }
-#endif
 
   if (picture->flags & PIC_FLAG_SKIP)
     goto skip;
@@ -1025,8 +925,14 @@ handle_slice (GstMpeg2dec * mpeg2dec, const mpeg2_info_t * info)
    * array of buffers */
   gst_buffer_ref (outbuf);
 
-  /* do cropping if needed */
-  crop_buffer (mpeg2dec, &outbuf);
+  /* do cropping if the target region is smaller than the input one */
+  if (mpeg2dec->decoded_width != mpeg2dec->width ||
+      mpeg2dec->decoded_height != mpeg2dec->height) {
+    GST_DEBUG_OBJECT (mpeg2dec, "cropping buffer");
+    ret = gst_mpeg2dec_crop_buffer (mpeg2dec, &outbuf);
+    if (ret != GST_FLOW_OK)
+      goto done;
+  }
 
   if (mpeg2dec->segment.rate >= 0.0) {
     /* forward: push right away */
@@ -1048,6 +954,8 @@ handle_slice (GstMpeg2dec * mpeg2dec, const mpeg2_info_t * info)
     ret = GST_FLOW_OK;
   }
 
+done:
+
   return ret;
 
   /* special cases */
@@ -1333,11 +1241,9 @@ gst_mpeg2dec_sink_event (GstPad * pad, GstEvent * event)
       break;
     }
     case GST_EVENT_EOS:
-#ifndef GST_DISABLE_INDEX
       if (mpeg2dec->index && mpeg2dec->closed) {
         gst_index_commit (mpeg2dec->index, mpeg2dec->index_id);
       }
-#endif
       ret = gst_pad_push_event (mpeg2dec->srcpad, event);
       break;
     default:
@@ -1630,7 +1536,6 @@ gst_mpeg2dec_get_event_masks (GstPad * pad)
 }
 #endif
 
-#ifndef GST_DISABLE_INDEX
 static gboolean
 index_seek (GstPad * pad, GstEvent * event)
 {
@@ -1697,7 +1602,6 @@ index_seek (GstPad * pad, GstEvent * event)
   }
   return FALSE;
 }
-#endif
 
 static gboolean
 normal_seek (GstPad * pad, GstEvent * event)
@@ -1783,11 +1687,9 @@ gst_mpeg2dec_src_event (GstPad * pad, GstEvent * event)
     case GST_EVENT_SEEK:{
       gst_event_ref (event);
       if (!(res = gst_pad_push_event (mpeg2dec->sinkpad, event))) {
-#ifndef GST_DISABLE_INDEX
         if (mpeg2dec->index)
           res = index_seek (pad, event);
         else
-#endif
           res = normal_seek (pad, event);
       }
       gst_event_unref (event);
index c7a3158..43ba42d 100644 (file)
@@ -47,15 +47,6 @@ typedef struct _GstMpeg2decClass GstMpeg2decClass;
 
 typedef enum
 {
-  MPEG2DEC_FORMAT_NONE,
-  MPEG2DEC_FORMAT_I422,
-  MPEG2DEC_FORMAT_I420,
-  MPEG2DEC_FORMAT_YV12,
-  MPEG2DEC_FORMAT_Y444
-} Mpeg2decFormat;
-
-typedef enum 
-{
   MPEG2DEC_DISC_NONE            = 0,
   MPEG2DEC_DISC_NEW_PICTURE,
   MPEG2DEC_DISC_NEW_KEYFRAME
@@ -87,7 +78,7 @@ struct _GstMpeg2dec {
   GstSegment     segment;
 
   /* video state */
-  Mpeg2decFormat format;
+  GstVideoFormat format;
   gint           width;
   gint           height;
   gint           decoded_width;
@@ -104,17 +95,15 @@ struct _GstMpeg2dec {
   gint           v_offs;
   guint8        *dummybuf[4];
 
-  
+
   guint64        offset;
   gint           fps_n;
   gint           fps_d;
   gboolean       need_sequence;
 
-#ifndef GST_DISABLE_INDEX
   GstIndex      *index;
   gint           index_id;
-#endif
-  
+
   gint           error_count;
   gboolean       can_allocate_aligned;
 
index a99a8e1..4617f23 100644 (file)
  * applied, followed by the user-set properties, fast first pass restrictions and
  * finally the profile restrictions.
  *
+ * <note>Some settings, including the default settings, may lead to quite
+ * some latency (i.e. frame buffering) in the encoder. This may cause problems
+ * with pipeline stalling in non-trivial pipelines, because the encoder latency
+ * is often considerably higher than the default size of a simple queue
+ * element. Such problems are caused by one of the queues in the other
+ * non-x264enc streams/branches filling up and blocking upstream. They can
+ * be fixed by relaxing the default time/size/buffer limits on the queue
+ * elements in the non-x264 branches, or using a (single) multiqueue element
+ * for all branches. Also see the last example below.
+ * </note>
+ *
  * <refsect2>
  * <title>Example pipeline</title>
  * |[
  * constant quality at around Q25 using the 'medium' speed/quality preset and
  * restricting the options used so that the output is H.264 Baseline Profile
  * compliant and finally multiplexing the output in Quicktime mov format.
+ * |[
+ * gst-launch -v videotestsrc num-buffers=1000 ! tee name=t ! queue ! xvimagesink \
+ *   t. ! queue ! x264enc rc-lookahead=5 ! fakesink
+ * ]| This example pipeline will encode a test video source to H264 while
+ * displaying the input material at the same time.  As mentioned above,
+ * specific settings are needed in this case to avoid pipeline stalling.
+ * Depending on goals and context, other approaches are possible, e.g.
+ * tune=zerolatency might be configured, or queue sizes increased.
  * </refsect2>
  */
 
@@ -357,7 +376,7 @@ gst_x264_enc_tune_get_type (void)
   static GType tune_type = 0;
 
   if (!tune_type) {
-    tune_type = g_flags_register_static ("GstX264EncTune", tune_types);
+    tune_type = g_flags_register_static ("GstX264EncTune", tune_types + 1);
   }
   return tune_type;
 }
@@ -430,7 +449,7 @@ static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("video/x-raw-yuv, "
-        "format = (fourcc) I420, "
+        "format = (fourcc) { I420, YV12 }, "
         "framerate = (fraction) [0, MAX], "
         "width = (int) [ 16, MAX ], " "height = (int) [ 16, MAX ]")
     );
@@ -559,7 +578,7 @@ gst_x264_enc_class_init (GstX264EncClass * klass)
   g_object_class_install_property (gobject_class, ARG_VBV_BUF_CAPACITY,
       g_param_spec_uint ("vbv-buf-capacity", "VBV buffer capacity",
           "Size of the VBV buffer in milliseconds",
-          300, 10000, ARG_VBV_BUF_CAPACITY_DEFAULT,
+          0, 10000, ARG_VBV_BUF_CAPACITY_DEFAULT,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
 #ifdef X264_PRESETS
@@ -1365,15 +1384,14 @@ static gboolean
 gst_x264_enc_sink_set_caps (GstPad * pad, GstCaps * caps)
 {
   GstX264Enc *encoder = GST_X264_ENC (GST_OBJECT_PARENT (pad));
+  GstVideoFormat format;
   gint width, height;
   gint fps_num, fps_den;
   gint par_num, par_den;
   gint i;
 
   /* get info from caps */
-  /* only I420 supported for now; so apparently claims x264enc ? */
-  if (!gst_video_format_parse_caps (caps, &encoder->format, &width, &height) ||
-      encoder->format != GST_VIDEO_FORMAT_I420)
+  if (!gst_video_format_parse_caps (caps, &format, &width, &height))
     return FALSE;
   if (!gst_video_parse_caps_framerate (caps, &fps_num, &fps_den))
     return FALSE;
@@ -1382,8 +1400,8 @@ gst_x264_enc_sink_set_caps (GstPad * pad, GstCaps * caps)
     par_den = 1;
   }
 
-  /* If the encoder is initialized, do not
-     reinitialize it again if not necessary */
+  /* If the encoder is initialized, do not reinitialize it again if not
+   * necessary */
   if (encoder->x264enc) {
     if (width == encoder->width && height == encoder->height
         && fps_num == encoder->fps_num && fps_den == encoder->fps_den
@@ -1397,6 +1415,7 @@ gst_x264_enc_sink_set_caps (GstPad * pad, GstCaps * caps)
   }
 
   /* store input description */
+  encoder->format = format;
   encoder->width = width;
   encoder->height = height;
   encoder->fps_num = fps_num;
@@ -1404,11 +1423,12 @@ gst_x264_enc_sink_set_caps (GstPad * pad, GstCaps * caps)
   encoder->par_num = par_num;
   encoder->par_den = par_den;
 
-  /* prepare a cached image description  */
+  /* prepare a cached image description */
   encoder->image_size = gst_video_format_get_size (encoder->format, width,
       height);
   for (i = 0; i < 3; ++i) {
-    /* only offsets now, is shifted later */
+    /* only offsets now, is shifted later. Offsets will be for Y, U, V so we
+     * can just feed YV12 as I420 to the decoder later */
     encoder->offset[i] = gst_video_format_get_component_offset (encoder->format,
         i, width, height);
     encoder->stride[i] = gst_video_format_get_row_stride (encoder->format,
@@ -1475,8 +1495,23 @@ gst_x264_enc_sink_event (GstPad * pad, GstEvent * event)
     case GST_EVENT_EOS:
       gst_x264_enc_flush_frames (encoder, TRUE);
       break;
+    case GST_EVENT_TAG:{
+      GstTagList *tags = NULL;
+
+      event =
+          GST_EVENT (gst_mini_object_make_writable (GST_MINI_OBJECT (event)));
+
+      gst_event_parse_tag (event, &tags);
+      /* drop codec/video-codec and replace encoder/encoder-version */
+      gst_tag_list_remove_tag (tags, GST_TAG_VIDEO_CODEC);
+      gst_tag_list_remove_tag (tags, GST_TAG_CODEC);
+      gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_ENCODER, "x264",
+          GST_TAG_ENCODER_VERSION, X264_BUILD, NULL);
+      /* push is done below */
+      break;
       /* no flushing if flush received,
        * buffers in encoder are considered (in the) past */
+    }
     case GST_EVENT_CUSTOM_DOWNSTREAM:{
       const GstStructure *s;
       s = gst_event_get_structure (event);
index fdc961f..51f99b1 100644 (file)
@@ -35,6 +35,17 @@ might be widely known to present patent problems.
 
  <release>
   <Version>
+   <revision>0.10.17</revision>
+   <branch>0.10</branch>
+   <name>Raised by Wolves</name>
+   <created>2011-01-21</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-0.10.17.tar.bz2" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-0.10.17.tar.gz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>0.10.16</revision>
    <branch>0.10</branch>
    <name>Because He Knows the Time is Short</name>
index fdbf3d0..ae07639 100644 (file)
@@ -151,6 +151,13 @@ const ASFGuidHash asf_object_guids[] = {
   {ASF_OBJ_MARKER, "ASF_OBJ_MARKER",
         {0xf487cd01, 0x11cfa951, 0xc000e68e, 0x6553200c}
       },
+  /* This guid is definitely used for encryption (mentioned in MS smooth
+   * streaming docs) in new PlayReady (c) (tm) (wtf) system, but I haven't
+   * found a proper name for it.
+   * (Edward Jan 11 2011).*/
+  {ASF_OBJ_UNKNOWN_ENCRYPTION_OBJECT, "ASF_OBJ_UNKNOWN_ENCRYPTION_OBJECT",
+        {0x9a04f079, 0x42869840, 0x5be692ab, 0x955f88e0}
+      },
   {ASF_OBJ_UNDEFINED, "ASF_OBJ_UNDEFINED",
         {0, 0, 0, 0}
       }
index ff43fa6..db1101a 100644 (file)
@@ -67,7 +67,8 @@ typedef enum {
   ASF_OBJ_EXT_CONTENT_ENCRYPTION,
   ASF_OBJ_DIGITAL_SIGNATURE_OBJECT,
   ASF_OBJ_SCRIPT_COMMAND,
-  ASF_OBJ_MARKER
+  ASF_OBJ_MARKER,
+  ASF_OBJ_UNKNOWN_ENCRYPTION_OBJECT
 } AsfObjectID;
 
 typedef enum {
index 2b16a3f..b56c81a 100644 (file)
@@ -226,8 +226,10 @@ asf_payload_parse_replicated_data_extensions (AsfStream * stream,
     switch (ext->id) {
       case ASF_PAYLOAD_EXTENSION_DURATION:
         if (G_LIKELY (ext->len == 2)) {
-          payload->duration =
-              GST_READ_UINT16_LE (payload->rep_data + off) * GST_MSECOND;
+          guint16 tdur = GST_READ_UINT16_LE (payload->rep_data + off);
+          /* packet durations of 1ms are mostly invalid */
+          if (tdur != 1)
+            payload->duration = tdur * GST_MSECOND;
         } else {
           GST_WARNING ("unexpected DURATION extensions len %u", ext->len);
         }
index 88bff47..0020027 100644 (file)
@@ -2289,7 +2289,7 @@ gst_asf_demux_parse_stream_object (GstASFDemux * demux, guint8 * data,
 
   flags = gst_asf_demux_get_uint16 (&data, &size);
   stream_id = flags & 0x7f;
-  is_encrypted = ! !((flags & 0x8000) << 15);
+  is_encrypted = !!((flags & 0x8000) << 15);
   unknown = gst_asf_demux_get_uint32 (&data, &size);
 
   GST_DEBUG_OBJECT (demux, "Found stream %u, time_offset=%" GST_TIME_FORMAT,
@@ -2895,8 +2895,8 @@ gst_asf_demux_process_file (GstASFDemux * demux, guint8 * data, guint64 size)
   max_pktsize = gst_asf_demux_get_uint32 (&data, &size);
   min_bitrate = gst_asf_demux_get_uint32 (&data, &size);
 
-  demux->broadcast = ! !(flags & 0x01);
-  demux->seekable = ! !(flags & 0x02);
+  demux->broadcast = !!(flags & 0x01);
+  demux->seekable = !!(flags & 0x02);
 
   GST_DEBUG_OBJECT (demux, "min_pktsize = %u", min_pktsize);
   GST_DEBUG_OBJECT (demux, "flags::broadcast = %d", demux->broadcast);
@@ -3653,6 +3653,7 @@ gst_asf_demux_process_object (GstASFDemux * demux, guint8 ** p_data,
     case ASF_OBJ_CONTENT_ENCRYPTION:
     case ASF_OBJ_EXT_CONTENT_ENCRYPTION:
     case ASF_OBJ_DIGITAL_SIGNATURE_OBJECT:
+    case ASF_OBJ_UNKNOWN_ENCRYPTION_OBJECT:
       goto error_encrypted;
     case ASF_OBJ_CONCEAL_NONE:
     case ASF_OBJ_HEAD2:
index e3ee891..4f19d57 100644 (file)
@@ -165,7 +165,7 @@ parse_header (guint32 header, guint * ret_size, guint * ret_spf,
   bitrate = (header >> 12) & 0xF;
   bitrate = mp3types_bitrates[lsf][layer - 1][bitrate] * 1000;
   if (bitrate == 0)
-    return 0;
+    return FALSE;
 
   samplerate = (header >> 10) & 0x3;
   samplerate = mp3types_freqs[lsf + mpg25][samplerate];
index 8faadea..4c53fbf 100644 (file)
@@ -32,6 +32,8 @@
  */
 #define PTM_DISCONT_ADJUST (0.3 * GST_SECOND)
 #define INITIAL_END_PTM (-1)
+#define MAX_GAP ( 3 * GST_SECOND / 2 )
+#define MAX_GAP_TOLERANCE ( GST_SECOND / 20 )
 
 GST_DEBUG_CATEGORY_STATIC (gstdvddemux_debug);
 #define GST_CAT_DEFAULT (gstdvddemux_debug)
@@ -439,8 +441,8 @@ gst_dvd_demux_handle_dvd_event (GstDVDDemux * dvd_demux, GstEvent * event)
     gst_element_no_more_pads (GST_ELEMENT (dvd_demux));
 
     /* Keep video/audio/subtitle pads within 1/2 sec of the SCR */
-    mpeg_demux->max_gap = GST_SECOND / 2;
-    mpeg_demux->max_gap_tolerance = GST_SECOND / 20;
+    mpeg_demux->max_gap = MAX_GAP;
+    mpeg_demux->max_gap_tolerance = MAX_GAP_TOLERANCE;
   } else {
     GST_DEBUG_OBJECT (dvd_demux, "dvddemux Forwarding DVD event %s to all pads",
         event_type);
@@ -1179,8 +1181,8 @@ gst_dvd_demux_reset (GstDVDDemux * dvd_demux)
   dvd_demux->mpeg_version = 0;
 
   /* Reset max_gap handling */
-  mpeg_demux->max_gap = 0.5 * GST_SECOND;
-  mpeg_demux->max_gap_tolerance = 0.05 * GST_SECOND;
+  mpeg_demux->max_gap = MAX_GAP;
+  mpeg_demux->max_gap_tolerance = MAX_GAP_TOLERANCE;
 }
 
 static void
index 142a038..5264597 100644 (file)
@@ -1030,9 +1030,11 @@ gst_mpeg_demux_send_subbuffer (GstMPEGDemux * mpeg_demux,
       outstream->scr_offs = 0;
 
     if (mpeg_demux->index != NULL) {
-      /* Register a new index position. */
+      /* Register a new index position.
+       * FIXME: check for keyframes
+       */
       gst_index_add_association (mpeg_demux->index,
-          outstream->index_id, 0,
+          outstream->index_id, GST_ASSOCIATION_FLAG_DELTA_UNIT,
           GST_FORMAT_BYTES,
           GST_BUFFER_OFFSET (buffer), GST_FORMAT_TIME, timestamp, 0);
     }
index 6cc9bd1..5626aec 100644 (file)
@@ -506,13 +506,8 @@ gst_real_audio_demux_parse_data (GstRealAudioDemux * demux)
     const guint8 *data;
     GstBuffer *buf = NULL;
 
-    ret = gst_pad_alloc_buffer_and_set_caps (demux->srcpad,
-        GST_BUFFER_OFFSET_NONE, unit_size, GST_PAD_CAPS (demux->srcpad), &buf);
-
-    if (ret != GST_FLOW_OK) {
-      GST_DEBUG_OBJECT (demux, "pad_alloc flow: %s", gst_flow_get_name (ret));
-      break;
-    }
+    buf = gst_buffer_new_and_alloc (unit_size);
+    gst_buffer_set_caps (buf, GST_PAD_CAPS (demux->srcpad));
 
     data = gst_adapter_peek (demux->adapter, unit_size);
     memcpy (GST_BUFFER_DATA (buf), data, unit_size);
index 91070c1..e6b8ec6 100644 (file)
@@ -1918,7 +1918,7 @@ gst_rmdemux_stream_clear_cached_subpackets (GstRMDemux * rmdemux,
 static GstFlowReturn
 gst_rmdemux_descramble_audio (GstRMDemux * rmdemux, GstRMDemuxStream * stream)
 {
-  GstFlowReturn ret;
+  GstFlowReturn ret = GST_FLOW_ERROR;
   GstBuffer *outbuf;
   guint packet_size = stream->packet_size;
   guint height = stream->subpackets->len;
@@ -1930,12 +1930,8 @@ gst_rmdemux_descramble_audio (GstRMDemux * rmdemux, GstRMDemuxStream * stream)
   GST_LOG ("packet_size = %u, leaf_size = %u, height= %u", packet_size,
       leaf_size, height);
 
-  ret = gst_pad_alloc_buffer_and_set_caps (stream->pad,
-      GST_BUFFER_OFFSET_NONE, height * packet_size,
-      GST_PAD_CAPS (stream->pad), &outbuf);
-
-  if (ret != GST_FLOW_OK)
-    goto done;
+  outbuf = gst_buffer_new_and_alloc (height * packet_size);
+  gst_buffer_set_caps (outbuf, GST_PAD_CAPS (stream->pad));
 
   for (p = 0; p < height; ++p) {
     GstBuffer *b = g_ptr_array_index (stream->subpackets, p);
@@ -1976,8 +1972,6 @@ gst_rmdemux_descramble_audio (GstRMDemux * rmdemux, GstRMDemuxStream * stream)
 
   gst_buffer_unref (outbuf);
 
-done:
-
   gst_rmdemux_stream_clear_cached_subpackets (rmdemux, stream);
 
   return ret;
@@ -2061,12 +2055,8 @@ gst_rmdemux_descramble_sipr_audio (GstRMDemux * rmdemux,
   GST_LOG ("packet_size = %u, leaf_size = %u, height= %u", packet_size,
       stream->leaf_size, height);
 
-  ret = gst_pad_alloc_buffer_and_set_caps (stream->pad,
-      GST_BUFFER_OFFSET_NONE, height * packet_size,
-      GST_PAD_CAPS (stream->pad), &outbuf);
-
-  if (ret != GST_FLOW_OK)
-    goto done;
+  outbuf = gst_buffer_new_and_alloc (height * packet_size);
+  gst_buffer_set_caps (outbuf, GST_PAD_CAPS (stream->pad));
 
   for (p = 0; p < height; ++p) {
     GstBuffer *b = g_ptr_array_index (stream->subpackets, p);
@@ -2091,8 +2081,6 @@ gst_rmdemux_descramble_sipr_audio (GstRMDemux * rmdemux,
   gst_buffer_set_caps (outbuf, GST_PAD_CAPS (stream->pad));
   ret = gst_pad_push (stream->pad, outbuf);
 
-done:
-
   gst_rmdemux_stream_clear_cached_subpackets (rmdemux, stream);
 
   return ret;
@@ -2462,6 +2450,10 @@ gst_rmdemux_parse_video_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream,
         stream->discont = FALSE;
       }
 
+      if (!key) {
+        GST_BUFFER_FLAG_SET (out, GST_BUFFER_FLAG_DELTA_UNIT);
+      }
+
       ret = gst_pad_push (stream->pad, out);
       ret = gst_rmdemux_combine_flows (rmdemux, stream, ret);
       if (ret != GST_FLOW_OK)
@@ -2501,7 +2493,7 @@ gst_rmdemux_parse_audio_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream,
     GstBuffer * in, guint offset, guint16 version,
     GstClockTime timestamp, gboolean key)
 {
-  GstFlowReturn ret, cret;
+  GstFlowReturn ret;
   GstBuffer *buffer;
   const guint8 *data;
   guint size;
@@ -2509,12 +2501,8 @@ gst_rmdemux_parse_audio_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream,
   data = GST_BUFFER_DATA (in) + offset;
   size = GST_BUFFER_SIZE (in) - offset;
 
-  ret = gst_pad_alloc_buffer_and_set_caps (stream->pad,
-      GST_BUFFER_OFFSET_NONE, size, GST_PAD_CAPS (stream->pad), &buffer);
-
-  cret = gst_rmdemux_combine_flows (rmdemux, stream, ret);
-  if (ret != GST_FLOW_OK)
-    goto alloc_failed;
+  buffer = gst_buffer_new_and_alloc (size);
+  gst_buffer_set_caps (buffer, GST_PAD_CAPS (stream->pad));
 
   memcpy (GST_BUFFER_DATA (buffer), (guint8 *) data, size);
 
@@ -2548,14 +2536,6 @@ gst_rmdemux_parse_audio_packet (GstRMDemux * rmdemux, GstRMDemuxStream * stream,
   gst_buffer_unref (in);
 
   return ret;
-
-  /* ERRORS */
-alloc_failed:
-  {
-    GST_DEBUG_OBJECT (rmdemux, "pad alloc returned %d", ret);
-    gst_buffer_unref (in);
-    return cret;
-  }
 }
 
 static GstFlowReturn
index ef752c6..6ae6878 100644 (file)
@@ -145,7 +145,7 @@ gst_rm_utils_descramble_dnet_buffer (GstBuffer * buf)
 static void
 gst_rm_utils_swap_nibbles (guint8 * data, gint idx1, gint idx2, gint len)
 {
-  guint8 *d1, *d2, tmp1, tmp2, tmp1n, tmp2n;
+  guint8 *d1, *d2, tmp1 = 0, tmp2, tmp1n, tmp2n;
 
   if ((idx2 & 1) && !(idx1 & 1)) {
     /* align destination to a byte by swapping the indexes */
index 3d95573..3625c1c 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -1,17 +1,18 @@
 # Bulgarian translation of gst-plugins-ugly.
-# Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-ugly package.
-# Alexander Shopov <ash@contact.bg>, 2007, 2008, 2009.
+# Alexander Shopov <ash@kambanaria.org>, 2007, 2008, 2009, 2010.
+#
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-ugly 0.10.11.2\n"
+"Project-Id-Version: gst-plugins-ugly 0.10.14.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2010-10-15 15:20+0100\n"
-"PO-Revision-Date: 2009-06-15 07:48+0300\n"
-"Last-Translator: Alexander Shopov <ash@contact.bg>\n"
+"POT-Creation-Date: 2011-01-07 14:34+0000\n"
+"PO-Revision-Date: 2010-11-04 14:22+0200\n"
+"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
-"Language: bg\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -31,19 +32,19 @@ msgstr "DVD-то не може да бъде отворено"
 
 #, c-format
 msgid "Could not open DVD title %d"
-msgstr "Част %d от DVD-то не може да бъде отворена"
+msgstr "Ð\97аглавнаÑ\82а Ñ\87аст %d от DVD-то не може да бъде отворена"
 
 #, c-format
 msgid "Failed to go to chapter %d of DVD title %d"
-msgstr "Не може да се премине към раздел %d от част %d на DVD-то"
+msgstr "Не може да се премине към раздел %d от заглавната част %d на DVD-то"
 
 #, c-format
 msgid ""
 "Could not open DVD title %d. Interactive titles are not supported by this "
 "element"
 msgstr ""
-"ЧаÑ\81Ñ\82 %d Ð¾Ñ\82 DVD-Ñ\82о Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð±Ñ\8aде Ð¾Ñ\82воÑ\80ена. Ð\98нÑ\82еÑ\80акÑ\82ивни Ñ\87аÑ\81Ñ\82и Ð½Ðµ Ñ\81е "
-"поддържат от този елемент"
+"Ð\97аглавнаÑ\82а Ñ\87аÑ\81Ñ\82 %d Ð¾Ñ\82 DVD-Ñ\82о Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð±Ñ\8aде Ð¾Ñ\82воÑ\80ена. Ð\98нÑ\82еÑ\80акÑ\82ивни Ñ\87аÑ\81Ñ\82и Ð½е "
+"се поддържат от този елемент"
 
 msgid ""
 "Could not read DVD. This may be because the DVD is encrypted and a DVD "
@@ -75,15 +76,3 @@ msgstr "Потокът не съдържа данни."
 
 msgid "Internal data stream error."
 msgstr "Вътрешна грешка в потока от данни."
-
-#~ msgid "Invalid title information on DVD."
-#~ msgstr "Неправилна заглавна информация в DVD."
-
-#~ msgid "Could not read title information for DVD."
-#~ msgstr "Заглавната информация в DVD не може да бъде прочетена."
-
-#~ msgid "Failed to open DVD device '%s'."
-#~ msgstr "Устройството за DVD — „%s“, не може да бъде отворено."
-
-#~ msgid "Failed to set PGC based seeking."
-#~ msgstr "Не може да се зададе търсене на базата на PGC."
index e2d51e8..fbab84e 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -1,48 +1,49 @@
-# Catalan translation for GStreamer.
-# Copyright © 2004 Free Software Foundation, Inc.
-# This file is distributed under the same licence as the gst-plugins package.
-# Jordi Mallach <jordi@sindominio.net>, 2004.
+# Catalan translation for gstreamer.
+# Copyright © 2004, 2005, 2010 Free Software Foundation, Inc.
+# This file is put in the public domain.
+# Jordi Mallach <jordi@sindominio.net>, 2004, 2005, 2010.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins 0.8.3\n"
+"Project-Id-Version: gst-plugins-ugly 0.10.14.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2010-10-15 15:20+0100\n"
-"PO-Revision-Date: 2004-08-05 15:48+0200\n"
+"POT-Creation-Date: 2011-01-07 14:34+0000\n"
+"PO-Revision-Date: 2010-11-04 23:22+0100\n"
 "Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
 "Language: ca\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n!=1;\n"
 
-#, fuzzy
 msgid "Could not read from CD."
-msgstr "No s'ha pogut escriure al fitxer «%s»."
+msgstr "No s'ha pogut llegir des del CD."
 
 msgid "Could not open CD device for reading."
-msgstr "No s'ha pogut obrir el dispositiu de CD per a la lectura."
+msgstr "No s'ha pogut obrir el dispositiu de CD per a llegir."
 
-#, fuzzy
 msgid "Disc is not an Audio CD."
-msgstr "El dispositiu no està obert."
+msgstr "El disc no és un CD d'àudio."
 
 msgid "Could not open DVD"
-msgstr ""
+msgstr "No s'ha pogut obrir el DVD"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not open DVD title %d"
-msgstr "No s'ha pogut tancar el fitxer vfs «%s»."
+msgstr "No s'ha pogut obrir el títol %d del DVD"
 
 #, c-format
 msgid "Failed to go to chapter %d of DVD title %d"
-msgstr ""
+msgstr "No s'ha pogut anar al capítol %d del títol %d del DVD."
 
 #, c-format
 msgid ""
 "Could not open DVD title %d. Interactive titles are not supported by this "
 "element"
 msgstr ""
+"No s'ha pogut obrir el títol %d del DVD. Els títols interactius no són "
+"implementats per aquest element"
 
 msgid ""
 "Could not read DVD. This may be because the DVD is encrypted and a DVD "
@@ -51,208 +52,28 @@ msgstr ""
 
 #, fuzzy
 msgid "Could not read DVD."
-msgstr "No s'ha pogut escriure al fitxer «%s»."
+msgstr "No s'ha pogut obrir el DVD"
 
 msgid "Failed to configure LAME encoder. Check your encoding parameters."
 msgstr ""
+"No s'ha pogut configurar el codificador LAME. Comproveu els paràmetres de "
+"codificació."
 
 #, c-format
 msgid ""
 "The requested bitrate %d kbit/s for property '%s' is not allowed. The "
 "bitrate was changed to %d kbit/s."
 msgstr ""
+"La taxa de bits %d kbit/s per a la propietat «%s» no és permesa. S'ha "
+"canviat la taxa de bits a %d kbit/s."
 
 msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
 msgstr ""
+"No s'ha pogut configurar el codificador TwoLAME. Comproveu els paràmetres de "
+"codificació."
 
 msgid "This stream contains no data."
-msgstr ""
+msgstr "Aquest flux no conté dades."
 
 msgid "Internal data stream error."
-msgstr ""
-
-#, fuzzy
-#~ msgid "Could not read title information for DVD."
-#~ msgstr "No s'ha pogut escriure al fitxer «%s»."
-
-#~ msgid "Could not open file \"%s\" for writing."
-#~ msgstr "No s'ha pogut obrir el fitxer «%s» per a l'escriptura."
-
-#~ msgid "Error closing file \"%s\"."
-#~ msgstr "S'ha produït un error en tancar el fitxer «%s»."
-
-#~ msgid "Could not open file \"%s\" for reading."
-#~ msgstr "No s'ha pogut obrir el fitxer «%s» per a la lectura."
-
-#~ msgid "Could not open vfs file \"%s\" for reading."
-#~ msgstr "No s'ha pogut obrir el fitxer vfs «%s» per a la lectura."
-
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "No s'ha pogut obrir el fitxer vfs «%s» per a l'escriptura: %s."
-
-#~ msgid "No filename given"
-#~ msgstr "No s'ha donat cap nom de fitxer"
-
-#~ msgid "No filename specified."
-#~ msgstr "No s'ha especificat cap nom de fitxer."
-
-#~ msgid "No or invalid input audio, AVI stream will be corrupt."
-#~ msgstr ""
-#~ "L'entrada d'àudio no existeix o és invàlida, el flux AVI serà corrupte."
-
-#~ msgid ""
-#~ "The %s element could not be found. This element is essential for "
-#~ "playback. Please install the right plug-in and verify that it works by "
-#~ "running 'gst-inspect %s'"
-#~ msgstr ""
-#~ "No s'ha pogut trobar l'element %s. Aquest element és essencial per a la "
-#~ "reproducció. Si us plau, instal·leu el connector adequat i verifiqueu que "
-#~ "funciona correctament executant «gst-inspect %s»"
-
-#~ msgid ""
-#~ "No usable colorspace element could be found.\n"
-#~ "Please install one and restart."
-#~ msgstr ""
-#~ "No s'ha trobat cap element d'espai de color utilitzable.\n"
-#~ "Si us plau, instal·leu un i reinicieu."
-
-#~ msgid "Could not open audio device \"%s\" for writing."
-#~ msgstr "No s'ha pogut el dispositiu d'àudio «%s» per a l'escriptura."
-
-#~ msgid "Could not open control device \"%s\" for writing."
-#~ msgstr ""
-#~ "No s'ha pogut obrir el dispositiu de control «%s» per a l'escriptura."
-
-#~ msgid "Could not configure audio device \"%s\"."
-#~ msgstr "No s'ha pogut configurar el dispositiu d'àudio «%s»."
-
-#~ msgid "Could not set audio device \"%s\" to %d Hz."
-#~ msgstr "No s'ha pogut establir el dispositiu d'àudio «%s» a %d Hz."
-
-#~ msgid "Could not close audio device \"%s\"."
-#~ msgstr "No s'ha pogut tancar el dispositiu d'àudio «%s»."
-
-#~ msgid "Could not close control device \"%s\"."
-#~ msgstr "No s'ha pogut tancar el dispositiu de control «%s»."
-
-#~ msgid "Could not open video device \"%s\" for writing."
-#~ msgstr "No s'ha pogut obrir el dispositiu de vídeo «%s» per a l'escriptura."
-
-#~ msgid "Could not close video device \"%s\"."
-#~ msgstr "No s'ha pogut tancar el dispositiu de vídeo «%s»."
-
-#~ msgid "Could not write to device \"%s\"."
-#~ msgstr "No s'ha pogut escriure al dispositiu «%s»."
-
-#~ msgid "OSS device \"%s\" is already in use by another program."
-#~ msgstr "El dispositiu OSS «%s» ja està en ús per un altre programa."
-
-#~ msgid "Could not access device \"%s\", check its permissions."
-#~ msgstr ""
-#~ "No s'ha pogut accedir al dispositiu «%s», comproveu els seus permisos."
-
-#~ msgid "Device \"%s\" does not exist."
-#~ msgstr "El dispositiu «%s» no existeix."
-
-#~ msgid "Could not open device \"%s\" for writing."
-#~ msgstr "No s'ha pogut obrir el dispositiu «%s» per a l'escriptura."
-
-#~ msgid "Could not open device \"%s\" for reading."
-#~ msgstr "No s'ha pogut obrir el dispositiu «%s» per a la lectura."
-
-#~ msgid "Your OSS device could not be probed correctly"
-#~ msgstr "No s'ha pogut detectar el vostre dispositiu d'OSS correctament"
-
-#~ msgid "Volume"
-#~ msgstr "Volum"
-
-#~ msgid "Bass"
-#~ msgstr "Baixos"
-
-#~ msgid "Treble"
-#~ msgstr "Aguts"
-
-#~ msgid "Synth"
-#~ msgstr "Sintetitzador"
-
-#~ msgid "PCM"
-#~ msgstr "PCM"
-
-#~ msgid "Speaker"
-#~ msgstr "Altaveu"
-
-#~ msgid "Line-in"
-#~ msgstr "Línia-entrada"
-
-#~ msgid "Microphone"
-#~ msgstr "Micròfon"
-
-#~ msgid "CD"
-#~ msgstr "CD"
-
-#~ msgid "Mixer"
-#~ msgstr "Mesclador"
-
-#~ msgid "PCM-2"
-#~ msgstr "PCM-2"
-
-#~ msgid "Record"
-#~ msgstr "Enregistrament"
-
-#~ msgid "In-gain"
-#~ msgstr "Ganància-entrada"
-
-#~ msgid "Out-gain"
-#~ msgstr "Ganància-sortida"
-
-#~ msgid "Line-1"
-#~ msgstr "Línia-1"
-
-#~ msgid "Line-2"
-#~ msgstr "Línia-2"
-
-#~ msgid "Line-3"
-#~ msgstr "Línia-3"
-
-#~ msgid "Digital-1"
-#~ msgstr "Digital-1"
-
-#~ msgid "Digital-2"
-#~ msgstr "Digital-2"
-
-#~ msgid "Digital-3"
-#~ msgstr "Digital-3"
-
-#~ msgid "Phone-in"
-#~ msgstr "Telèfon-entrada"
-
-#~ msgid "Phone-out"
-#~ msgstr "Telèfon-sortida"
-
-#~ msgid "Video"
-#~ msgstr "Vídeo"
-
-#~ msgid "Radio"
-#~ msgstr "Ràdio"
-
-#~ msgid "Monitor"
-#~ msgstr "Monitor"
-
-#~ msgid "No device specified."
-#~ msgstr "No s'ha especificat cap dispositiu."
-
-#~ msgid "Could not open device \"%s\" for reading and writing."
-#~ msgstr ""
-#~ "No s'ha pogut obrir el dispositiu «%s» per a l'escriptura i lectura."
-
-#~ msgid "Device is open."
-#~ msgstr "El dispositiu està obert."
-
-#~ msgid "Device \"%s\" is not a capture device."
-#~ msgstr "El dispositiu «%s» no és un dispositiu de captura."
-
-#~ msgid "Could not get buffers from device \"%s\"."
-#~ msgstr "No s'han pogut obtenir els búfers del dispositiu «%s»."
-
-#~ msgid "Could not get enough buffers from device \"%s\"."
-#~ msgstr "No s'han pogut obtenir búfers suficients del dispositiu «%s»."
+msgstr "S'ha produït un error intern de flux de dades."
index 24d7653..58b28c1 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -1,20 +1,24 @@
 # Translation for gst-plugins-ugly messages to Russian
 # This file is put in the public domain.
+#
 # Артём Попов <artfwo@gmail.com>, 2009.
 # Pavel Maryanov <acid_jack@ukr.net>, 2009.
-#
+# Yuri Kozlov <yuray@komyakino.ru>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-ugly 0.10.9.3\n"
+"Project-Id-Version: gst-plugins-ugly 0.10.14.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2010-10-15 15:20+0100\n"
-"PO-Revision-Date: 2009-02-12 14:26+0200\n"
-"Last-Translator: Pavel Maryanov <acid_jack@ukr.net>\n"
+"POT-Creation-Date: 2011-01-07 14:34+0000\n"
+"PO-Revision-Date: 2011-01-01 14:29+0300\n"
+"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
 "Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 msgid "Could not read from CD."
 msgstr "Не удалось прочесть CD."
@@ -54,7 +58,7 @@ msgid "Could not read DVD."
 msgstr "Не удалось открыть DVD"
 
 msgid "Failed to configure LAME encoder. Check your encoding parameters."
-msgstr "Не удалось настроить кодировщик LAME. Проверьте параметры сжатия."
+msgstr "Не удалось настроить кодировщик LAME. Проверьте параметры кодирования."
 
 #, c-format
 msgid ""
@@ -64,9 +68,9 @@ msgstr ""
 "Запрошенный битрейт в %d кбит/с для свойства «%s» недопустим. Битрейт был "
 "изменён на %d кбит/с."
 
-#, fuzzy
 msgid "Failed to configure TwoLAME encoder. Check your encoding parameters."
-msgstr "Не удалось настроить кодировщик LAME. Проверьте параметры сжатия."
+msgstr ""
+"Не удалось настроить кодировщик TwoLAME. Проверьте параметры кодирования."
 
 msgid "This stream contains no data."
 msgstr "Поток не содержит данных."
index a7eaba9..23e9d87 100644 (file)
@@ -56,7 +56,8 @@ noinst_PROGRAMS =
 
 noinst_HEADERS = elements/xingmux_testdata.h
 
-AM_CFLAGS = $(GST_OBJ_CFLAGS) $(GST_CHECK_CFLAGS) $(CHECK_CFLAGS)
+AM_CFLAGS = $(GST_OBJ_CFLAGS) $(GST_CHECK_CFLAGS) $(CHECK_CFLAGS) \
+               -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
 LDADD = $(GST_OBJ_LIBS) $(GST_CHECK_LIBS) $(CHECK_LIBS)
 
 # valgrind testing
@@ -64,7 +65,7 @@ VALGRIND_TESTS_DISABLE = elements/x264enc
 
 SUPPRESSIONS = $(top_srcdir)/common/gst.supp $(srcdir)/gst-plugins-ugly.supp
 
-elements_cmmldec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS)
-elements_cmmlenc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS)
+elements_cmmldec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(AM_CFLAGS)
+elements_cmmlenc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(AM_CFLAGS)
 
 EXTRA_DIST = gst-plugins-ugly.supp
index ea7b52a..943219b 100644 (file)
@@ -65,6 +65,47 @@ GST_START_TEST (test_format)
 
 GST_END_TEST;
 
+GST_START_TEST (test_caps_proxy)
+{
+  GstElement *bin;
+  GstPad *pad;
+  gchar *pipe_str;
+  GstBuffer *buffer;
+  GError *error = NULL;
+
+  pipe_str = g_strdup_printf ("audiotestsrc num-buffers=1 "
+      "! audio/x-raw-int,rate=48000,channels=1 "
+      "! audioresample "
+      "! lamemp3enc ! audio/mpeg,rate=(int){22050,44100} ! fakesink");
+
+  bin = gst_parse_launch (pipe_str, &error);
+  fail_unless (bin != NULL, "Error parsing pipeline: %s",
+      error ? error->message : "(invalid error)");
+  g_free (pipe_str);
+
+  /* get the pad */
+  {
+    GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "fakesink0");
+
+    fail_unless (sink != NULL, "Could not get fakesink out of bin");
+    pad = gst_element_get_static_pad (sink, "sink");
+    fail_unless (pad != NULL, "Could not get pad out of fakesink");
+    gst_object_unref (sink);
+  }
+
+  gst_buffer_straw_start_pipeline (bin, pad);
+
+  buffer = gst_buffer_straw_get_buffer (bin, pad);
+
+  gst_buffer_straw_stop_pipeline (bin, pad);
+
+  gst_buffer_unref (buffer);
+  gst_object_unref (pad);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
 #endif /* #ifndef GST_DISABLE_PARSE */
 
 Suite *
@@ -77,6 +118,7 @@ lame_suite (void)
 
 #ifndef GST_DISABLE_PARSE
   tcase_add_test (tc_chain, test_format);
+  tcase_add_test (tc_chain, test_caps_proxy);
 #endif
 
   return s;
index f853f54..e1d39b1 100644 (file)
@@ -9,7 +9,7 @@
 #undef AC_APPLE_UNIVERSAL_BUILD
 
 /* Default audio sink */
-#define DEFAULT_AUDIOSINK "directaudiosink"
+#define DEFAULT_AUDIOSINK "directsoundsink"
 
 /* Default audio source */
 #define DEFAULT_AUDIOSRC "audiotestsrc"
@@ -51,6 +51,9 @@
 /* package origin */
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
+/* GStreamer package release date/time for plugins as YYYY-MM-DD */
+#undef GST_PACKAGE_RELEASE_DATETIME
+
 /* Define to enable a52dec (used by a52dec). */
 #undef HAVE_A52DEC
 
 #define PACKAGE_NAME "GStreamer Ugly Plug-ins"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Ugly Plug-ins 0.10.16.1"
+#define PACKAGE_STRING "GStreamer Ugly Plug-ins 0.10.17.1"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-ugly"
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.10.16.1"
+#define PACKAGE_VERSION "0.10.17.1"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
 #undef STDC_HEADERS
 
 /* Version number of package */
-#define VERSION "0.10.16.1"
+#define VERSION "0.10.17.1"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */